报警不是三选一,是三层组合:安全相关、急停、硬保护必须在 PLC 里做硬接线(灯柱、急停回路),这是底线,不依赖网络和上位机;车间日常报警在上位机弹窗、确认、记历史;远程/无人值守用 Grafana Alerting + 钉钉/企微推手机。安全报警永远不能只放在上位机或云上——上位机死机、网络断了,现场灯还是得亮。
01 先搞清楚:三层报警各管什么
报警系统设计的第一原则:安全相关的报警不能依赖网络和上位机。基于这个原则,工业报警自然分成三层:
- 第一层 PLC 报警(安全底线):硬接线输出,灯柱、蜂鸣器、急停回路、安全继电器。PLC 不停就有效,上位机死了也亮。
- 第二层上位机报警(车间操作):画面弹窗、设备变色、报警列表、确认和处理记录。给操作员看,记历史。
- 第三层远程告警(手机通知):Grafana/EMQX 规则触发,钉钉/企微/短信推手机。给维修和管理层,不适合现场急停。
下面 10 个维度,把三层放在一起比。
02 10 个维度逐项对比
| 对比维度 | PLC 硬接线报警 | 上位机报警 | 远程告警(Grafana+钉钉) |
|---|---|---|---|
| 实时性 | 最快,PLC 程序周期内响应,毫秒级,急停直接硬接线 | 快,和上位机通讯周期同步,1~2 秒内弹窗 | 慢,3~10 秒(采集+规则+推送+手机),不适合现场急停 |
| 响应方式 | 现场灯柱、蜂鸣器、硬接线输出,工人听到看到 | 画面弹窗、设备变色、报警列表、声光提示 | 手机钉钉/企微/短信推送,远程知道出问题了 |
| 确认/处理 | 硬件复位按钮,不确认不能开机 | 操作员在画面上确认、填写处理记录 | 手机点已读,或远程派单 |
| 历史记录 | 基本不存,靠 PLC 程序记录报警发生位 | 完整存报警时间、级别、确认人、恢复时间、处理备注 | Grafana/时序库存告警历史,可做统计分析 |
| 通知范围 | 只有现场旁边的人知道 | 车间现场和控制室知道 | 手机、总部、维修人员、管理层都能收到 |
| 报警分级 | 简单,按输出点分几级灯色 | 可分紧急/重要/提示,不同级别不同弹窗方式 | 可按级别路由不同人(紧急打钉钉电话,提示发群消息) |
| 成本 | 灯柱+硬接线,几百到几千元 | 上位机软件自带报警功能,零额外成本 | Grafana 开源免费,钉钉机器人免费,主要是配置时间 |
| 可靠性 | 最高,不依赖网络和上位机,PLC 不停就有效 | 上位机死机/通讯断就失效,不能作为唯一报警 | 依赖网络和云,现场断网就收不到,不能作为唯一报警 |
| 维护 | 改报警条件要改 PLC 程序,下载 | 改报警阈值和文案在上位机配置里,快 | 改规则在 Grafana/EMQX 里配,最快 |
| 典型用途 | 安全相关、急停、设备故障硬保护 | 车间日常报警、操作提示、工艺参数超限 | 无人值守、夜间值班、多工厂远程监控、管理层通知 |
03 按项目规模对号入座
| 项目规模 | 特点 | 关键诉求 | 报警方案 | 历史存储 | 建议路线 |
|---|---|---|---|---|---|
| 单机小设备 | 1~3 台机 | 有人值守 | PLC + 灯柱 | 上位机弹窗即可 | 两层够用 |
| 产线 / 车间 | 多台设备 | 要报警历史 | PLC + 上位机 | 报警历史存库 | 两层完整 |
| 无人值守 / 夜间 | 要远程通知 | 维修要手机收 | 三层全上 | Grafana + 钉钉 | 三层体系 |
| 正式数字化项目 | 要报警分析 | MTBF/MTTR 统计 | 三层 + 分析 | 报警历史存时序库 | 三层 + 分析 |
04 报警分级:别让操作员被报警淹没
很多项目的报警系统最后没人看,不是因为没报警,而是因为什么都报警。温度高 0.1 度报、气压低 0.01 报、换料提醒也弹窗——操作员很快就麻木了。建议分三级:
- 🔴 紧急(红色):设备可能损坏、有安全风险、产品批量报废。必须立即处理。响应:现场灯柱+上位机强制弹窗+声光+钉钉电话。
- 🟡 重要(黄色):工艺参数超限、可能影响质量但不紧急。响应:上位机弹窗+群消息,操作员有空处理。
- 🔵 提示(蓝色):换料提醒、保养到期、普通状态变化。响应:只在报警列表记录,不主动弹窗不推送。
再配合报警聚合(同一设备 1 分钟内同类报警合并)和死区(阈值附近抖动不重复报),好的报警系统是让操作员"听到一次就知道出事了",而不是被几十条报警刷屏。
05 丁丁的实战建议
第一,安全报警永远走 PLC 硬接线。不管上位机多先进、云告警多方便,急停、安全门、超温超压这些安全相关的信号,必须硬接线到安全继电器和灯柱。上位机死机、网线被碰掉、交换机故障,现场灯还是得亮。这是底线,不能省。
第二,远程告警是补充不是替代。Grafana + 钉钉机器人配起来很快,但别指望它替代现场报警。它的价值是"没人在现场的时候,维修人员手机上能收到消息"——夜间、周末、无人值守车间。白天有人看着,钉钉告警反而是噪音。
第三,报警历史要能做分析。报警记下来不是为了存着,是为了回答"哪台设备最常出问题""哪个报警最频繁""平均处理多久"。简单项目存 SQLite 就行,正经数字化项目报警流水进时序库,配 Grafana 做报警频次排行,这才是报警系统的长期价值。
常见问题 FAQ(选型时最常被问)
Q:报警到底在 PLC 里做还是上位机做?
A:不是二选一,是分层做。安全相关、急停、设备硬保护必须在 PLC 里做(硬接线、灯柱、急停回路),这是底线,上位机死了报警也有效。工艺参数超限、操作提示、需要记录和确认的报警在上位机做。远程通知、手机收消息在第三层做。三层各管一摊,不要把安全报警只放在上位机里。
Q:Grafana 告警能不能替代上位机报警?
A:不能,只能作为补充。Grafana 告警依赖网络、采集链路、时序库,任何一环断了告警就失效,而且是 3~10 秒延迟,不适合现场急停和操作员即时响应。它的定位是"远程通知"——让维修和管理层在手机上知道出问题了,不是替代车间现场的弹窗和灯柱。现场报警必须有独立于网络的硬手段。
Q:报警历史存在哪里?
A:分两种:①需要确认人、处理记录、工单联动的报警,存 MySQL/SQLite(关系库),因为要写、要改、要关联用户;②纯事件流水(报警发生时间、点位、值)可以存时序库,方便做趋势和统计。简单项目全存 SQLite/MySQL 就行,别为了报警专门上时序库。
Q:钉钉/企业微信报警通知怎么做?
A:最简单的做法:Grafana Alerting 配好规则,通知渠道选 Webhook,指向钉钉/企微机器人的 webhook 地址。报警触发自动发消息到群里,带设备名、报警值、时间。如果要更复杂(分级路由、@到人、恢复通知),可以用 EMQX 规则引擎或 Node-RED 转发。整个过程不用写代码,配置半小时搞定。
Q:报警风暴怎么办?一晚上几十条报警
A:这是报警系统设计最常见的坑。三招:①分级——紧急报警才弹窗+声光+钉钉,普通提示只在列表里记一条,不打扰;②聚合——同一设备 1 分钟内同类报警合并成一条,不要刷屏;③死区——温度在阈值附近抖动的,加 ±5% 死区,不要超一点就报。好的报警系统是让操作员"听到一次就知道出事了",而不是被几十条报警淹没。
Q:报警要分级吗?分几级?
A:建议分三级:①紧急(红色)——设备可能损坏、有安全风险,必须立即处理,弹窗+声光+钉钉电话;②重要(黄色)——工艺参数超限、产品可能不合格,画面弹窗+群消息;③提示(蓝色)——换料、保养提醒、普通状态变化,只在报警列表记录,不主动弹窗。分级后操作员不会被低级报警骚扰,真正紧急的事也不会被淹没。
Q:上位机死机了,报警是不是就失效了?
A:是的,所以上位机报警不能作为唯一手段。安全相关的报警必须在 PLC 里做硬接线输出(灯柱、急停回路、安全继电器),即使上位机断电、网络断了,现场灯还是会亮、蜂鸣器还是会响。上位机报警是"锦上添花"的记录和通知,不是"安全兜底"。这是设计报警系统的第一原则。
Q:小项目能不能就用 PLC 报警灯柱,不做上位机报警?
A:能,单机小设备、有人值守、出问题工人就在旁边,PLC 灯柱+蜂鸣器足够。但要注意:灯柱只能"现在出问题了",不能告诉你"什么时候开始的、谁确认的、处理了多久"。当你要做报警历史、要统计故障频次、要远程通知的时候,再加上位机和远程告警就行,不用一开始就全上。