为什么不能直接传原始报警位
PLC 里的报警是按地址组织的(如 M100.0、D200 位),MES 和管理层看不懂“M100.0”,而且不同设备地址重复、含义各异。需要一层标准化映射,把原始报警转成统一、可读、可统计的报警记录。
第一步:建统一报警代码映射表
为每条报警分配全局唯一编码,例如:设备类型-系统-序号(PRESS-HYD-001)。
| 原始地址 | 统一编码 | 中文描述 | 默认级别 |
|---|---|---|---|
| Line1.Press1.M100.0 | PRESS-HYD-001 | 液压油温过高 | 警告 |
| Line1.Press1.M100.1 | PRESS-SAF-001 | 安全门未关 | 严重 |
映射表是核心资产,建议在配置文件/数据库中维护,新增设备只加配置不改程序。
第二步:报警分级
- 提示:不影响运行,记录即可
- 警告:需关注,可能劣化
- 严重:影响生产/质量,需立即处理
- 紧急:安全相关,立即停机并最高级通知
级别决定后续动作:是否弹窗、通知谁、是否停机、是否必须上传 MES。
第三步:报警生命周期管理
一条完整报警要记录:产生(发生时间)→ 确认(谁确认)→ 恢复(消除时间),从而能计算持续时长。不要只记“发生”,否则无法统计故障停机时间。
第四步:去重与防抖
- 同一活跃报警未恢复前,不重复产生新记录(合并计数)
- 临界点抖动用延时确认(持续 N 秒才报)
- 一次扫描里的多条报警批量处理,避免刷屏
哪些报警需要上传 MES
不是所有报警都要上 MES。建议:
- 影响生产、质量、安全的报警必须上传
- 纯提示类只在本地 HMI 记录
- 在映射表里用“是否上报 MES”字段控制,便于调整
上传方式
报警状态变化(产生/恢复)时,通过接口或消息推给 MES,携带:统一编码、设备、级别、发生/恢复时间、确认人。MES 据此做停机分析、质量追溯和班组考核。
落地建议
先把报警映射表和分级标准定下来,这是跨设备、跨系统统一“报警语言”的地基;采集侧负责标准化,MES 侧负责业务分析,职责清晰才能长期维护。