主题
基础控制例程 4:故障锁存、确认与消音
这一页只讲这一个例程。母页 b-01-basic-control 里留着例程 1,其余例程各自一页、在那一页的目录里点。
场景:故障闪一下也要记住;人工确认后停蜂鸣器但灯继续亮;故障真正消失才自动解除。现场最能减少误操作的报警结构。
软元件
| 软元件 | 作用 |
|---|---|
M10 | 故障输入(1 = 故障) |
X11 | 确认 / 消音按钮 |
M100 | 报警锁存 |
M101 | 已确认(消音) |
Y10 | 报警灯 |
Y11 | 蜂鸣器 |
块图(照着拖即可)
对应的 ddc.json(点「生成 JSON」得到的就是它;也可存成 .ddc.json 导入)
json
{
"version": 1,
"name": "故障报警与消音",
"scan_ms": 200,
"lines": [
{
"op": "assign",
"target": {"op":"ref","device":"M","addr":100},
"expr": {
"op": "rs",
"id": "rs_alarm",
"args": [
{"op":"ref","device":"M","addr":10},
{
"op": "and",
"args": [
{"op":"ref","device":"X","addr":11},
{"op":"not","args":[{"op":"ref","device":"M","addr":10}]}
]
}
]
}
},
{
"op": "assign",
"target": {"op":"ref","device":"M","addr":101},
"expr": {
"op": "rs",
"id": "rs_ack",
"args": [
{"op":"ref","device":"X","addr":11},
{"op":"not","args":[{"op":"ref","device":"M","addr":100}]}
]
}
},
{
"op": "assign",
"target": {"op":"ref","device":"Y","addr":10},
"expr": {"op":"ref","device":"M","addr":100}
},
{
"op": "assign",
"target": {"op":"ref","device":"Y","addr":11},
"expr": {
"op": "and",
"args": [
{"op":"ref","device":"M","addr":100},
{"op":"not","args":[{"op":"ref","device":"M","addr":101}]}
]
}
}
]
}要点
- 锁存用启停控制的启动孔接故障:比扫描周期还短的瞬时故障也锁得住。
- 解除条件是「确认 且 故障已消失」两个都要满足——避免故障还在时按一下就把报警清掉。
- 消音标志 M101 的停止孔接
非 M100:报警一解除就自动复位,下一次报警必定重新响。
验证:M10 给一个短脉冲 → Y10 亮、Y11 响;按 X11 → Y11 停、Y10 仍亮;M10 回 0 → 稍等一轮 Y10 灭、M100/M101 自动复位。
注意事项
- 两颗启停控制块必须有不同实例标识(这里的 rs_alarm / rs_ack),否则校验报「实例标识重复」。
- 把 X11 直接接到报警锁存的停止孔:故障还在时按一下就清掉报警,等于漏报。
- 忘了给消音标志接停止条件:确认标志一直留着,下次故障蜂鸣器不响。