4. 安全回路功能块程序结构分析

矿井提升机安全回路的PLC程序通常被封装为一个独立的功能块(FB),例如命名为FB_SafetyCircuit。调试这类功能块,第一步不是急着在线改参数,而是把它的“外壳”和“内脏”看清楚:接口定义了哪些输入输出、内部逻辑按什么顺序串联、什么条件下允许投入、故障后靠什么复位。只有把这几件事理清,才能知道在线监视时该盯哪几个变量,出现异常时该往哪一段逻辑去查。

一、接口定义:先分清“采集量”与“命令量”

安全回路功能块的接口一般可分为四类。第一类是安全条件输入,来自现场开关量和模拟量比较结果,例如井口安全门关闭到位、罐笼位置正常、过卷开关未动作、闸瓦磨损未超限、液压站油压正常、测速机超速未触发等,通常为BOOL型,命名如i_DoorClosed、i_OverWindOK、i_OilPressureOK。第二类是操作与复位命令,如i_Reset(复位按钮)、i_StartPermit(开车允许)、i_EStop(急停)。第三类是状态输出,如q_SafeLoopOK(安全回路接通)、q_TripLatched(故障锁存)、q_FirstOutCode(首出故障码)。第四类是调试与监视接口,如q_DiagWord(诊断字)、q_TripCount(动作次数),供上位机或编程软件在线观察。

接口定义中最容易被忽视的是输入的有效电平约定。矿井现场大量使用常闭触点串联构成安全链,PLC输入为“1”往往代表“条件正常”,为“0”代表“条件断开”。如果功能块内部按常开逻辑编写,就会出现“现场正常、程序报故障”的假象。因此调试前必须逐点核对:该输入是常开还是常闭、PLC模块是否做了取反、功能块内部是否又取反一次,避免“双重取反”导致逻辑颠倒。

二、内部逻辑:串联判断、首出记忆与输出驱动

安全回路功能块的内部逻辑通常由三段构成。第一段是条件汇总:把所有安全条件输入按“与”关系串联,任一条件不满足即判定安全链断开。第二段是首出故障记忆:当安全链由通变断时,用上升沿/下降沿检测配合置位指令,把第一个断开的条件锁存下来,形成首出故障码,便于事后判断是哪一路先动作。第三段是输出驱动与延时:安全链断开后,输出q_SafeLoopOK立即置0,同时驱动安全制动输出;部分场合还要求对油压、测速等模拟量条件加短延时滤波,防止瞬时抖动误停车。

下面这张图给出该功能块的典型内部结构关系,重点表现输入条件如何汇聚、首出记忆如何形成、输出如何驱动,以及调试时应重点监视的变量位置。

安全回路功能块 FB_SafetyCircuit 内部结构与监视点 安全条件输入(BOOL) i_DoorClosed 安全门到位 i_OverWindOK 过卷正常 i_OilPressureOK 油压正常 i_SpeedOK 测速未超限 i_BrakeWearOK 闸瓦未超限 i_EStop 急停(常闭) 有效电平约定:1=条件正常 常闭点需核对是否取反 条件汇总 全部输入相“与” 模拟量加滤波延时 任一为0即断开 首出故障记忆 下降沿检测 置位锁存首出码 q_FirstOutCode 输出驱动 q_SafeLoopOK q_TripLatched 驱动安全制动 使能与复位 使能:i_StartPermit=1 且 无急停 复位:i_Reset 上升沿 + 条件已恢复 复位后 q_TripLatched 清零 监视点A 监视点B 监视点C A:条件汇总结果(安全链通断) B:首出故障码 C:安全回路输出与锁存状态 调试时按 A→B→C 顺序在线监视,可快速定位是“条件未满足”还是“复位未生效”

三、使能条件与复位方式

使能条件决定功能块“是否允许投入运行”。典型做法是:只有当提升机处于停车状态、操作手柄在零位、i_StartPermit为1且无急停时,才允许安全回路进入“待接通”状态;运行中若安全链断开,则立即跳闸并锁存,不允许自动恢复。这种“使能—运行—跳闸—锁存”的状态划分,是安全回路区别于普通控制回路的关键。

复位方式通常有两种。一种是手动复位:故障排除后,操作人员按下复位按钮,i_Reset产生上升沿,功能块在确认所有安全条件已恢复的前提下清除锁存,安全回路重新接通。另一种是自动复位:仅用于少数非关键条件(如短时油压波动),通过延时确认后自动恢复。调试时必须明确每一路条件是手动复位还是自动复位,绝不能把过卷、急停等关键保护做成自动复位。

复位逻辑中常见的坑是“复位条件不完整”:只判断了复位按钮,没有判断故障是否真正消失,导致一按复位就再次跳闸,形成反复动作。正确的做法是在复位支路中串联“所有安全条件已恢复”的判断,即i_Reset AND 条件汇总结果=1,才允许清锁存。

四、调试关键变量与监视点

结合上面的结构图,调试时应重点监视三类变量。第一类是条件汇总结果(监视点A),它直接反映安全链当前是通还是断;若为0,再逐个查看各条件输入,找出为0的那一路。第二类是首出故障码(监视点B),它记录的是“第一个断开”的条件编号,是判断故障源头的最直接依据。第三类是输出与锁存状态(监视点C),包括q_SafeLoopOK和q_TripLatched,用于确认跳闸是否已执行、锁存是否已建立、复位后是否已清除。

实际调试可按以下顺序进行:先在线监视A点,确认正常时A=1;再人为断开某一路条件(例如模拟安全门打开),观察A是否立即变0、B是否记录对应故障码、C是否跳闸并锁存;然后恢复该条件,按复位按钮,观察锁存是否清除、A是否恢复为1。若复位后A仍为0,说明还有其它条件未恢复;若A恢复但C未恢复,说明复位支路或锁存逻辑有问题。通过这样“单点触发—观察三点—复位验证”的步骤,可以把功能块的接口、逻辑、使能和复位一次性验证清楚,也为后续整机联调打下基础。

调试记录建议至少包含:触发条件名称、A点变化、B点首出码、C点输出与锁存状态、复位后是否恢复。这份记录既是本次调试的依据,也是日后排查同类故障的对照资料。