news 2026/11/3 1:15:41

冷站通讯中断引发联锁停机?PLC控制逻辑优化与故障排查实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
冷站通讯中断引发联锁停机?PLC控制逻辑优化与故障排查实践

1. 场景还原:凌晨两点的那通电话

做冷站自控的同行应该都有过这种经历——大半夜手机响,一看是运维值班室打来的,心里就是咯噔一下。我接起电话,对面声音很急:“3号主机通讯断了,整个冷站联锁跳机了,现在A区AHU送风温度已经超过26度,领导已经在问情况了。”

赶去现场的路上,我把最近几个月的巡检记录在脑子里过了一遍。这个项目的冷站其实不算大:三台离心式冷水主机、四台冷冻水泵、四台冷却水泵、三台冷却塔,配置上走的是常规的三用一备逻辑。整个冷站由一套PLC做主控,通过Modbus TCP与各主机自带的控制面板通讯,上位机再做监控和记录。按理说这种规模的项目,通讯拓扑并不复杂,不至于闹到全站停机的地步。

到了现场先做两件事:看报警记录、查主机本体状态。报警记录上写着:23:47,A组通讯总线第2节点超时,主机通讯中断;23:47:12,控制器下发联锁停机指令;23:47:18,2号、3号主机相继停运;23:48,冷冻水泵和冷却水泵跟着停,冷却塔风机全部降至低速。整个过程不到40秒,冷站就完成了从正常运行到全部停机的“切换”。这就是典型的由主机通讯中断引发的冷站联锁停机事故。

这篇内容我会从头到尾把这个案例拆开,讲清楚为什么通讯断了会引发联锁停机、联锁逻辑里哪些设计是合理的哪些埋了雷、现场排查的时候该按什么顺序查、以及后续怎么通过软硬件优化让系统在通讯故障时不会再“一刀切停机”。对运营冷站、做BA系统调试、或者写控制策略的工程师来说,这类问题几乎必然会碰到,搞明白一次,后面遇到类似项目就有底了。

2. 冷站联锁停机机制拆解:为什么会“断通讯就停空调”

2.1 冷站系统联动控制关系梳理

冷站不是一台设备独立运行,而是一套需要紧密配合的系统。主机负责制冷,但制冷产生的热量要通过冷却水泵和冷却塔带走;冷冻水侧要有冷冻水泵把冷水送到末端,还要靠电动阀门调节各支路流量。任何一环出问题,主机都无法正常运转。

自控系统做的事,就是把这几环穿成一条联动逻辑:启动顺序必须是冷却塔→冷却水泵→冷冻水泵→主机,停机顺序则相反。这个顺序靠的就是各级状态反馈:冷却塔风机运行确认、冷却水泵运行状态与水流开关信号、冷冻水泵运行状态与水流开关信号、冷冻水供回水压差、主机自身的报警与运行状态,全部满足才允许主机点启动。

联锁停机也同理,当运行条件不再满足,系统就要按安全优先级执行保护动作。所谓“联锁”,本质就是把多台设备的状态统一纳入一个判定逻辑里,任何关键信号异常,则触发对应设备的保护动作,甚至整站停机。设计这套逻辑的初衷是保护设备安全——防止水泵跳了主机却还在运转,造成蒸发器冻裂或冷凝器超压,那是几百万元的损失。

2.2 主机通讯中断为什么会被视为“故障信号”

但这个项目的关键问题在于:主机的“通讯状态”也被纳入联锁判定,而且权重很高。系统怎么知道主机活着?主要靠两部分:一是主机的硬IO点,包括运行状态、故障状态、水流信号等;二是通讯交互的数据,包括实际负荷率、蒸发器进出水温度、冷凝器压力、导叶开度等。

在多数冷站项目里,主机的启停指令是硬接线干接点,而状态读取和参数监控靠通讯。但这个项目的控制器和主机之间走的是纯通讯控制——启动、停机指令通过Modbus TCP下发,运行状态、报警状态也依赖通讯回传。这样做节省了IO模块和电缆,价格上确实有优势,但把“安全”也押在了通讯可靠性上。

主机通讯中断意味着控制器对主机的状态判定瞬间变成“未知”。而控制器的逻辑里有一条:任何主机在没有运行状态反馈,而且通讯超时的情况下,视为设备故障,进入联锁停机流程。这就解释了为什么通讯中断40秒内整个冷站全部停了——不是主机坏了,而是控制系统认为主机“状态不明且无法控制”,按照安全逻辑执行了保护。

这里把联锁停机和设备本身故障的保护混在了一起,是设计层面值得商榷的地方。用一个生活类比:你家里的门锁如果指纹模块失灵,系统就自动把所有门窗全部反锁,防止有人进来。听起来安全,但更合理的设计应该是指纹失灵时保持当前状态、切换到钥匙开锁模式、同时发出提醒,而不是把全屋门窗锁死。

2.3 通讯中断后的故障传播路径

故障传播路径值得仔细复盘一遍。23:47通讯超时,首先触发的是“主机通讯故障”这个软报警。接着,控制逻辑判断当前主机处于运行状态但无状态反馈,同时存在通讯超时,自动将主机标记为“故障停机”。这个动作一旦执行,联锁逻辑里“主机运行正常”这个条件就不成立了,下游的冷冻水泵、冷却水泵、冷却塔依次被连锁关停,末端供冷中断。

整个过程没有一个环节在“保护设备”,完全是在“保护逻辑”。设备本身没有过流、没有超压、没有低温,纯粹因为通讯链路抖动,就被按故障处理。从影响范围看,这一停导致整个A区供冷中断将近3小时,直到第二天重新启动系统并确认一切正常才恢复供冷。被影响的包括办公区、实验室和一个对温度敏感的机房。算下来损失比一次主机故障换压缩机还要大。

我在现场和同事复盘时说过一句话:这根本不是什么设备故障,是我们的控制系统在通讯异常时没有选择“保守但可用”的策略,而是选择了“绝对安全但全停”的策略。这类设计在工厂里可能说得通——你宁可让产线停下来也不能烧设备,但冷站不一样,冷站全停并不会保护主机,反而会因为水流停滞、温度骤升造成更麻烦的后果。

3. 主机通讯中断的现场排查全流程实录

3.1 第一步:区分“主机故障”和“通讯故障”

应急处理的第一件事,不是急着重启,而是先搞清楚主机本身到底有没有故障。当时我人还没到中控室,就在电话里让值班员先做两个操作:一是看3号主机的本地控制面板,面板上有没有故障代码;二是看另外两台主机的本地面板,按“远程模式”观察通讯指示灯的状态。

这个动作很关键,它能把问题一分为二:如果本地面板显示正常,说明主机本体没问题;如果三台主机同时显示“通讯丢失”,说明问题大概率出在通讯链路或者控制器侧。值班员反馈:3号主机本地面板没有报警,但显示通讯超时;2号主机本地面板正常,也在报通讯超时;1号主机因为控制器已经完全和它失去联系,本地面板还在坚持运行,直到联锁停机指令从硬接线送过去才跳掉。

这就基本确诊了:不是三台主机坏了,而是控制器到主机之间的通讯总线出了问题。到这一步,处理方向就从“抢修设备”变成了“排查通讯链路”。

3.2 第二步:从物理层开始逐段排查通讯链路

通讯链路排查有一个铁律:先物理、再链路、最后应用。物理层主要查介质和接口,链路层查协议和超时参数,应用层查数据解析和轮询逻辑。这次排查从控制器侧开始,顺序如下:

先查控制器到交换机的网线,插拔确认可靠,水晶头弹性正常。再查交换机的端口指示灯,看当前端口是亮绿色还是橙色闪烁——绿色代表链路正常,橙色闪烁代表有数据但错误多。当时交换机的第5、6、7三个端口指示灯都在闪烁,但第7端口的橙色灯占比明显偏高,说明物理链路有但质量不好。

接着查交换机到主机通讯模块的线路。这个项目因为距离主机房比较远,从控制柜到机组用的是光纤,两端有光电转换器。检查光电转换器时发现一个容易被忽略的问题:A端转换器的光纤收发指示灯忽明忽暗,而且用手摸外壳时明显偏烫。工业级光电转换器的工作温度上限一般是60到70度,当时控制柜内温度已经在55度左右,长期烤下来收发模块性能已经开始衰减。

再往下查主机侧通讯模块。打开3号主机的电气柜,通讯扩展模块的RUN灯正常,但RX/TX灯基本不亮,说明数据到了一半就断了。用万用表量通讯模块供电端,DC 24V实际只有21.8V,波动幅度超过15%。通讯模块对供电质量非常敏感,电压偏低或者纹波过大都会导致收发电路工作异常,重载时直接丢包。

综合来看,这次通讯中断实际是一场慢慢积累的“慢性故障”:光纤链路老化导致信号衰减、光电转换器过热导致误码率上升、通讯模块供电不足导致丢包率变大,三种因素叠加,最终在某一次数据传输中超过了超时阈值,触发了联锁停机。没有单一雷点,全是边缘压力叠加后的结果。

3.3 第三步:解析报警时序,还原停机逻辑链

排查到物理层之后,还得把报警记录完整调出来看一遍。不能只看控制器侧报警记录,主机的运行记录、通讯网关的日志、上层SCADA的SOE(事件顺序记录)都要对齐看。这样才能搞清楚“谁先谁后”“谁触发谁”。

现场调到的时序是这样:

  • 23:46:58,3号主机通讯模块最后一次正常回应控制器轮询,数据包正常。
  • 23:47:02,通讯网关连续两次未收到3号主机应答,按配置标记“第2节点超时”。
  • 23:47:05,网关再发一次读请求,仍然无应答,确认通讯中断。
  • 23:47:09,控制器将3号主机状态改为“通讯故障”,并按预设逻辑触发联锁停机。
  • 23:47:12,控制器同时向三台主机下发停机指令,开始停冷冻水泵、冷却水泵。
  • 23:47:18,全部主机停止运行。

有个细节值得注意:1号主机在主控器下发停机指令前已经失联,按照逻辑它也应该被判定为“通讯故障”。但因为三台主机共用一条总线,总线上一旦出现链路问题,往往就是“跳闸一大片”而不是单点故障。也就是说,这个项目的通讯拓扑存在单点故障风险——一条总线坏了,三台主机一起被拉进故障状态,联锁逻辑又被设计成“任何一台主机故障就全站停机”,两个因素叠加,放大效应非常明显。

3.4 几种常见的通讯中断根因对照

这次是链路老化叠加供电问题。我在其他项目里还碰到过不同根因,放在一起对照着看比较直观:

根因类型表现特征出现频次排查手段
物理线路老化/断纤光纤收发衰耗增大、数据丢包高OTDR光时域反射仪测试、替换短接法
通讯模块供电异常电压偏低、纹波大、模块发热高万用表测电压、示波器看纹波
交换机端口故障/拥塞端口指示灯异常、广播风暴中抓包分析、更换端口测试
主机侧通讯模块损坏模块RUN灯正常但RX/TX不动作中替换模块、观察指示灯
接地干扰/浪涌偶发丢包、通讯时序错乱高检查屏蔽层接地、加装信号隔离器
控制器程序跑飞/资源耗尽轮询停止、网关无数据输出低查看程序扫描周期、CPU负荷、重启恢复

这次故障属于第一类加第三类的高频组合。很多项目做完验收之后就不再关注通讯质量,线缆老化、模块超温、端口误码都在慢慢发展,直到某一次触发阈值才爆发。平时运维如果只看设备温度、压力这些过程量,很难发现通讯正在恶化。

4. 整改方案:让通讯中断不再“一刀切全停”

4.1 硬件链路改造的四个优先方向

恢复运行以后,我们要面对的核心命题是:怎么改,才能让系统在下次通讯中断时不会全站停机?先从硬件上动手。这个项目最明显的单点风险就是“一条总线带全部主机”,所以首选项是把单总线改为每台主机独立通讯链路,或者拆成两组总线,每组挂一到两台主机。这样即使某一台主机的通讯链路出问题,也只影响那一台,不会波及其它设备。

第二方向是加通讯链路冗余。主用链路走光纤,备用链路走硬接线IO点,包括主机的运行状态、故障状态、远程/本地状态,全部硬接线送回控制器。哪怕通讯全断,控制器至少能通过硬接点掌握主机关键状态,不至于盲判“通讯故障=设备故障”。

第三方向是升级通讯介质与转换设备。光纤用单模替代多模、光电转换器选宽温型、通讯模块供电改成独立DC 24V电源回路并加装电容滤波。成本不高,但能显著提升链路稳定性。第四方向是所有通讯端口加浪涌保护器,同时确保控制柜与主机之间的等电位连接良好,减少共模干扰对通讯的影响。

硬件改造的意义不只是提升稳定性,还有一个更重要的作用:让联锁逻辑有可靠的“降级方案”。通讯再不稳定,控制系统的判断基础依然存在。

4.2 控制逻辑上的关键调整:分级报警,别一刀切停机

硬件改造解决了单点问题,但控制策略如果还是老样子,遇到单台主机通讯断依然可能连锁反应。所以第二块方案重点是修改控制逻辑。核心思路是“分级处理”:把通讯中断按严重程度分成三档,我只把第三档才会触发停机。

第一档:单台主机通讯超时,但未超过设定次数(比如连续超时3次以下)。此时仅报警,不动作,维持当前运行状态,控制器自动重试通讯。

第二档:单台主机通讯连续超时超过阈值,或通讯恢复正常后又在短时间内反复中断。此时将该主机切为“降级控制模式”,保持该主机当前运行状态,禁止自动增减载,同时通过硬接点信号确认主机运行状态;如果主机运行状态正常,则继续维持运行,只是把控制权交给本地面板,通知运维人员到场确认。其他主机不受影响,系统整体供冷继续。

第三档:主机通讯中断的同时,硬接线反馈也丢失,或者主机本身报出故障代码。这种情况下才允许触发该主机单独的联锁停机,以保护设备安全。停机只针对故障主机,其它主机根据需要自动增载接替负荷。

这套逻辑的核心是把“通讯状态”和“设备状态”解耦。通讯断了不代表设备会坏,只是观察不到。在设备本身没有故障信号的情况下,维持运行比贸然停机更安全。这就像仪表盘速度表失灵,你不会立刻靠边停车,而是保持当前速度、缓慢靠边再检查。

4.3 增加自愈与自动恢复机制

光有分级告警还不够,还得让系统在通讯恢复之后能够自动回到正常控制模式。自愈机制这块当时做了三个方面:

第一是通讯恢复自动重连。控制器每2秒轮询一次,通讯中断后继续尝试,连续成功3次即判定恢复,并把对应的主机切回自动模式。这个参数不建议太短,否则通讯一抖又立刻判定恢复,来回切换反而容易造成振荡。

第二是负荷自动再分配。当某台主机通讯中断进入降级模式时,控制器会重新计算剩余主机负荷,对仍在通讯的主机做加减载。逻辑上要留手操余量,不能让主机直接拉满,防止其他主机因为负荷过高而报警。

第三是故障记录与自诊断。控制器把每次通讯中断的时刻、时长、误码率、重连次数全部记录到历史库,并在上位机显示趋势。这些数据后期可以用来分析通讯质量走向,提前发现链路劣化,把故障消灭在爆发之前。运维日报里每周增加一项“通讯质量统计”,一旦某条链路周丢包率超过0.1%就安排检查。

这套自愈机制不是凭空想的,我在几个改造过的项目里都落地过,效果明显。其中最典型的一个,改造前每季度至少因为通讯问题停机一次,改造后一年多再没出现过通讯导致的联锁停机。

4.4 上位机监控与告警增强方案

最后一个要改的点是监控体验。原来的SCADA画面上,只有主机启停状态和几个温度压力测点,没有任何通讯质量信息。运维人员巡检时看到通讯中断报警,根本不知道严重程度和影响范围,也就无法做出正确判断。

改造之后,主机画面上增加了三个关键内容:一是每台主机的通讯状态指示灯,绿色代表正常、黄色代表降级控制、红色代表通讯中断;二是通讯中断倒计时条,显示当前已连续中断时间和距触发停机的时间;三是历史事件滚动列表,按时间顺序显示每次通讯中断与恢复动作。

另外一个操作性很强的功能是“通讯中断预演测试”。系统里加了一个模拟通讯中断的测试按钮,运维人员可以在运行状态下模拟单台主机通讯中断,观察系统是否正确执行了降级控制而不是全站停机。这个测试每季度做一次,既能验证逻辑,也能提升运维人员应对真实故障的信心。我当时让值班同事测试完以后,他心里就踏实多了——看到通讯变红的时候,系统没有乱跳,保持供冷正常。

5. 常见问题排查速查表与现场经验总结

5.1 通讯类故障的排查速查表

整理这份速查表,算是这几年冷站通讯故障处理的经验浓缩。每次遇到类似问题,我基本按这套顺序过一遍,大部分情况都能快速定位。

故障现象可能原因排查步骤处理方案
单台主机通讯超时偶尔出现光电转换器过热、模块供电不稳摸温度、测电压、看误码率清洗散热片、改造供电回路
多台主机同时通讯中断交换机端口故障、总线链路断开看交换机端口灯、逐段ping测试更换端口、重新压接光纤跳线
通讯恢复后频繁重复中断线路接头氧化、屏蔽层接地不良检查所有接口、测量接地电阻更换接头、重新做等电位连接
通讯灯正常但数据不刷新控制器程序扫描周期过长、资源不足看CPU负荷率、程序在线监视优化程序任务、减少无关通讯
主机面板显示通讯丢失但控制器显示正常主机通讯模块与控制器匹配参数不一致核对波特率、站号、寄存器地址重新配置从站参数
通讯中断但主机本地运行正常逻辑误判,缺少分级处理查看报警时序、确认联锁逻辑按第4节方案修改控制策略

特别要提醒的是,遇到通讯故障别急着改参数。把波特率调低、把超时时间拉长,表面上问题“消失”了,但实际上是掩盖了物理层的劣化。超时时间从2秒拉到10秒,看起来系统稳定了,但万一真的出现设备故障,响应时间也慢了5倍,存在安全风险。通讯参数应该根据现场需要的响应速度来定,而不是依据链路质量来妥协。

5.2 冷站通讯改造项目里的避坑经验

这个项目执行下来,有几条经验值得单独拎出来说。

第一:联锁停机逻辑必须有“屏蔽/投用”切换开关,而且这个开关要放在触摸屏二级菜单、需要密码才能操作。没有这个开关,运维人员在传动测试阶段根本没法单独模拟通讯故障,因为一模拟就全站停机,谁敢按下按钮?

第二:控制器程序里的联锁逻辑要做“首次故障保持”。通讯中断超时后,程序不能反复在“故障”和“恢复”之间跳变,否则会反复触发一些设备的保护动作。一定要做延时和确认次数,让状态跳转有稳定的判断间隔。

第三:通讯网关的看门狗机制要单独查看。不少网关设备本身有自动重启功能,但重启过程需要10到30秒,这个时间段内控制器如果轮询不到,会判定故障。要让控制器的超时判定时间长于网关重启时间,否则网关一重启,冷站就跟着重启。我见过不少项目就是因为这个时间差没处理好,导致莫名其妙的周期性停机。

第四:改造完成后要做48小时连续通讯质量测试。这不是简单跑一跑就完事,要记录每一台主机的通讯超时次数、最长中断时间、平均响应时间。我当时做这个测试的时候,把数据做成趋势图放在会议室里,项目验收之前先让甲方看到通讯线是直线,再谈其他功能。这套数据很有说服力,也帮后续运维定了个基准参照。

5.3 运维侧需要养成的三个习惯

技术改造是一方面,运维习惯也得跟上,不然过两年设备老化了同样的问题还会再来。

第一个习惯是每月检查一次通讯链路健康度。进入控制器后台,查看每条总线的通讯统计数据,重点看误码率和连续超时次数。如果有异常,立即对应排查。这个检查用不了十分钟,但能提前发现大部分潜在问题。

第二个习惯是备好独立的通讯模块和光电转换器备件。通讯类设备属于电子产品,带病运行比较常见,现场出了问题再申请采购往往要等很久。备件放在现场,故障时直接换上,把停机时间压缩到最短。我还在备件盒上贴了标签,注明适配型号和参数设置要求,避免急用时拿错或用错配置。

第三个习惯是人员培训要过“实操关”。光会看报警列表是不够的,得让运维人员亲手操作过模拟通讯中断测试,亲眼看到系统在通讯故障时能保持供冷稳定,再到真实故障发生时,他才不会慌。

6. 冷站通讯可靠性设计的整体复盘心得

处理完这个项目之后,我自己也在反思:为什么我们的第一反应是“通讯断了就要停机”?因为控制系统设计的出发点天然偏向安全——不知道主机状态,就不敢继续让系统跑。这在设备单机保护上没错,但放在系统层面上要重新权衡,停一台冷机可能只是降低供冷能力,停掉全站则是彻底失去供冷能力。两者风险等级完全不同。

这个案例里最值得记住的一个判断是,从控制逻辑角度而言,“停在安全状态”不等于“安全停运”。冷却水泵全停、冷冻水泵全停、主机全停,留给系统的并不是一个安全状态。主机在满负荷运行时突然切断冷冻水,属于典型的违规操作,有造成蒸发器结冰的风险。也就是说,这套联锁逻辑不仅没有起到保护作用,还可能因为不合理的停机顺序带来二次伤害。实际应急处置时,我们启动系统前的第一件事反而是先恢复冷冻水泵、冷却水泵,让水系统先循环起来,再逐台启机,避免主机在无水流状态下启动。

另外一点体会是,很多项目在做控制策略时,默认把通讯可靠性作为前提条件。但实际上,现场铜缆、光纤、交换机、电源模块,任何一个环节都可能失效。设计联锁逻辑时应当把这些失效模式摆到桌面上,逐个分析“如果这个环节失效了,系统应该做什么”。联锁不是越多越好,联锁要分层次、分优先级。保护设备安全的联锁应该直接源于设备本体的硬信号,而不是间接源于通讯链路。

这个案例从故障发生到彻底整改完成,前后大约三周。第一周处理故障、恢复运行;第二周做链路改造和控制逻辑修改;第三周做48小时测试和验收。整个过程中最大的成本不是材料和工时,而是把原有逻辑推倒重来所需要跨部门协调。好在我们把报警记录、通讯日志和故障时序留存得很完整,论证整改方案的依据非常充分,甲方也认可“通讯中断应该降级控制而不是全站停机”这个思路。

最后分享一个实用的小技巧:故障复盘文档里,一定要附上“事件顺序记录表”和“修改前后控制逻辑对比图”。这两样东西比任何文字描述都有说服力,也是后续做验收和培训时的重要素材。下次再遇到类似故障,直接翻出这套文档,按图索骥,排查速度能快一倍不止。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/20 5:55:38

嵌入式工业电源路径保护:TPS259483+R7FA4C1B智能防护设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/20 7:55:41

ConvLSTM视频分类实战:从结构搭建到训练避坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/21 10:23:08

工业电源路径保护:eFuse与MCU协同实现反向电流阻断与故障溯源

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/28 1:25:47

扫地机器人双脑架构:Linux与FreeRTOS/STM32的职责隔离设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/21 11:03:49

动物图片数据集JPG预处理实战:从10类28K图像到PyTorch训练全链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/21 21:46:01

嵌入式电源路径保护设计:eFuse与MCU协同实现工业级主动防护

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华