浏览量:43 次 发布时间:2025-12-02 23:26 作者:明扬工控商城 下载docx
【明扬工控商城 · PLC 基础系列】 很多现场程序“能跑”,但一出问题就没人看得懂报警。不是没有报警,而是:没分类、没互锁、没记录、上位机只有一行模糊提示。这一讲,我们做一件事——教你写一套“工程师+操作工都看得懂”的报警逻辑,并在 PLC 中保留最后一次故障。
| 类别 | 典型信号 | 处理方式 |
|---|---|---|
| 致命类(急停) | 急停按钮、光栅遮挡、安全门打开、伺服严重故障、变频器故障 | 立即停止输出,切断危险动作,等待人工确认和复位 |
| 工艺类(停机) | 气压低、料不足、超行程、超温等 | 停止当前工艺循环,保留状态,人工处理后可继续 |
| 提示类(可运行) | 保养到期、生产计数到达、温度趋近上限 | 仅提示,不影响自动运行 |
无论西门子、三菱、台达还是欧姆龙,报警逻辑都可以抽象为:
// 标准报警位(示意逻辑) // A_Cond:报警条件(比如气压低) // A_Latch:报警锁存位 // A_Reset:报警复位按钮(且报警条件已消失) A_Latch = (A_Latch OR A_Cond) AND (NOT A_Reset)
// Rung 1:报警锁存 |---[ A_Cond ]-------------------------(SET A_Latch)---| |---[ A_Latch ] AND [ NOT A_ResetOK ]--(SET A_Latch)---| // Rung 2:报警可复位条件 A_ResetOK = A_Reset_Button AND NOT A_Cond
也可以用“自锁触点”的写法:
|---[ A_Cond ]------------------------+----( A_Latch )---| | | |---[ A_Latch ] AND [ NOT A_ResetOK ]+
// 各子报警位 A1_Latch:急停 A2_Latch:安全门 A3_Latch:伺服故障 A4_Latch:气压低 ... // 总报警 Alarm_Global = A1_Latch OR A2_Latch OR A3_Latch OR A4_Latch ... // 致命报警(强制停机) Alarm_Emergency = A1_Latch OR A2_Latch OR A3_Latch
很多 PLC 都有错误记录,但工程师自己做一层“最后一次故障记录”很有价值:
| 变量名 | 类型 | 说明 |
|---|---|---|
| Last_Alarm_Code | INT/WORD | 最后一次触发的报警代码 |
| Last_Alarm_Time | TIME/字符串 | 最后一次报警时间 |
| Last_Alarm_Mode | BYTE | 报警发生时的模式(手动/自动/调试) |
// 假设:A1_Latch = 急停;报警代码为 101
// A2_Latch = 安全门;报警代码为 102
// 需要检测“从 0 到 1”的上升沿
IF RisingEdge(A1_Latch) THEN
Last_Alarm_Code := 101;
Last_Alarm_Time := Now();
Last_Alarm_Mode := Mode; // 当前模式变量
END_IF;
IF RisingEdge(A2_Latch) THEN
Last_Alarm_Code := 102;
Last_Alarm_Time := Now();
Last_Alarm_Mode := Mode;
END_IF;
// ……依次对每个报警做相同处理
注意:不同 PLC 的“当前时间获取”“上升沿指令”写法不同,思路是一样的。
现场调试时,有些报警需要暂时屏蔽(例如安装阶段没有安全门),但屏蔽本身必须可控。
// A_Cond:原始报警条件 // A_Mask:屏蔽标志(工程师密码进入后才允许改) A_Effective_Cond = A_Cond AND (NOT A_Mask)
为了让上位机好用,PLC 侧可以整理出一张“报警表”,包括:
| 字段 | 说明 | 示例 |
|---|---|---|
| Alarm_ID | 整型代码 | 101、102、201... |
| Alarm_Bit | 对应的 PLC 报警位 | M100.0、D200.0 |
| Alarm_Text | 报警文本 | “X 轴伺服报警,请检查驱动器” |
| Alarm_Level | 等级 | 1=提示,2=停机,3=急停 |
| Alarm_Group | 分组 | 电气/机械/气动/安全 |
HMI 只需要循环扫描这些报警位,将“=1”的报警按时间顺序显示即可。
下一讲预告:PLC 基础课 第 8 讲|配方与参数:如何设计一套易于维护的参数结构,从 D 区/DB 结构,到配方下载与版本管理。
PLC 基础课 第 8 讲|一个完整小项目:水泵控制柜,从电气原理图到 PLC 梯形图
PLC 基础课 第 7 讲|报警与状态:怎么写出一个好用的报警逻辑 + 保留最后一次故障
PLC基础课 第6讲|PLC 与变频器通讯:DI/DO + 模拟量 + 简单串口的三种常见组合
PLC基础课 第5讲|顺控/步进:从“顺序动作表”到一个简易顺控程序
将本文的Word文档下载到电脑
推荐度: