一、先说信号定义
假设一个气动阀:
Y0 :阀门开指令(DO 输出)
X0 :阀门开反馈(开到位限位 / 接近开关,DI)
X1 :阀门关反馈(关到位限位 / 接近开关,DI)
报警类型我们一般做 3 种:
开反馈丢失报警(给开信号,但没开到位)
关反馈丢失报警(给关信号,但没关到位)
反馈故障报警(开、关反馈同时亮,或同时灭)
二、标准报警逻辑
1. 开阀超时 / 开反馈丢失报警
给开指令后,一段时间内没收到开反馈 → 报警。
plaintext
// 开指令接通,开始计时 LD Y0 TON T0, K30 // 延时 3 秒(根据阀门速度调整) // 开指令有效,但开反馈一直没来 → 报警 LD T0 AN X0 = M0 // M0 = 开阀故障报警
2. 关阀超时 / 关反馈丢失报警
plaintext
// 关指令 = 开指令取反(或单独用 Y1) LDN Y0 TON T1, K30 // 关指令有效,但关反馈没来 → 报警 LD T1 AN X1 = M1 // M1 = 关阀故障报警
3. 反馈故障报警
两种情况都算故障:
X0、X1 同时 ON(短路 / 干扰 / 卡阀)
X0、X1 同时 OFF(中间位置,超时不动作)
plaintext
// 1. 开、关反馈同时亮 → 故障 LD X0 AND X1 = M2 // 2. 既不开也不关,且已过动作时间 → 故障 LD Y0 TON T0, K30 LD T0 AN X0 AN X1 OLD = M2 // M2 = 阀反馈故障总报警
4. 总报警输出
plaintext
LD M0 OR M1 OR M2 = Y1 // 外部报警灯 / 蜂鸣器
三、现场常用简化版
如果你只需要最简单的故障判断,用这个:
plaintext
// 开指令给了,却无开反馈 → 报警 LD Y0 AN X0 = M0 // 关指令给了,却无关反馈 → 报警 LDN Y0 AN X1 = M1 // 双反馈 → 故障 LD X0 AND X1 = M2。




