139、运动控制中的安全功能:安全PLC与安全总线
运动控制中的安全功能:安全PLC与安全总线
从一次差点“炸机”的调试说起
几年前调试一台六轴机器人,客户要求末端执行器在碰到人时必须100ms内停止。我们用了标准PLC加普通EtherCAT,逻辑上写了“碰撞检测→急停输出”,现场测试时却出了大问题——信号从传感器到PLC再到驱动器,中间经过了普通IO模块的滤波、PLC扫描周期、总线抖动,实测响应时间到了350ms。机器人直接怼上了操作员的手臂,虽然没受伤,但客户脸都绿了。
那次之后我才真正理解:运动控制里的“安全”不是靠软件逻辑堆出来的,而是靠硬件架构和专用协议硬生生“焊”出来的。今天聊聊安全PLC和安全总线,这两个东西在工业安全里就像保险丝和漏保——平时看不见,出事时才知道多重要。
安全PLC:不是“加了安全功能的普通PLC”
很多人以为安全PLC就是普通PLC多写几行安全逻辑,这是大错特错。安全PLC的硬件架构从根上就不一样。
普通PLC的CPU是单核跑循环扫描,万一CPU内部寄存器被电磁干扰翻转了,输出可能直接“飞车”。安全PLC内部至少有两套独立的处理通道(比如双CPU或双逻辑单元),它们同时执行同一段安全程序,结果通过“交叉比较”来验证。如果两个通道的输出不一致,系统直接进入安全状态(通常是切断动力电源)。
这里踩过坑:早期我用某品牌“安全型”PLC,以为只要选安全型号就万事大吉。结果发现它的安全输入模块和普通输入模块混用,安全程序里读了一个普通输入点的状态。现场调试时普通输入点因为线路老化产生了抖动,安全PLC误判为“通道不一致”,直接停机。后
