每个 HMI 都应显示的 9 种电机状态
给控制室操作员看一个只有开或关的泵符号,你给他们的是一个布尔值,而他们需要的是一个诊断。泵可能被命令启动却已跳闸。可能在运行,但振动超过设定值。也可能处于维护旁路,技术人员正在更换密封。这些情况没有一种能被绿/灰二元表示出来。
这就是为什么这些指南——和大多数遵循 ISA-101 的风格指南一样——把电动设备建模为一个 9 状态的状态机。每种状态都有独一无二的视觉特征,操作员学一次,就能在整个职业生涯中跨所有项目的所有画面认出来。
9 种状态一览
1. 停止
电机被命令停止 (OFF),运行反馈也为 OFF。以中性灰色绘制。这是正常画面上最常见的状态——按设计,它不应吸引注意力。
2. 启动中
电机已被命令启动 (ON),但运行反馈尚未确认。公认的惯例是绿色闪烁,周期短(1 Hz)。如果反馈始终未到,在可调的超时(通常 3–10 秒)之后转为无反馈。
3. 运行
已命令启动且运行反馈已确认。以实心绿色绘制——绝不闪烁,绝不动画,因为这是正常的运行状况。在这个状态下使用动画是最常见的 ISA-101 违规。
4. 无反馈
已命令启动但运行反馈始终未到(或已命令停止但运行信号仍为 ON)。这是一个诊断状态,以黄色绘制。它通常表示辅助触点故障、接触器卡住或接线故障——也是改造旧 HMI 时操作员最常要求的状态。
5. 手动
电机处于就地/手动模式——通常是 MCC 上的就地隔离开关或手动-关-自动选择开关绕过了 HMI 的自动逻辑。以蓝色绘制。这对操作员至关重要:它告诉他们此刻存在一条 HMI 之外的命令路径,在推断状态之前应先到现场核实。
6. 禁用
电机被有意停用——通常是为了维护,通常通过 PLC 中的允许条件实现。以深灰色绘制。这种视觉语言传达的是“它变暗是因为它本来就应该停用”。
7. 运行 + P1 报警
电机在运行,但有一个严重报警处于活动状态(比如轴承温度高高、即将振动跳闸)。绘制为运行状态并叠加一个红色 P1 标记。标记是提醒装置——符号主体仍然告诉你设备在运行。
8. 运行 + P2 报警
与上面相同,但优先级为 P2——通常是高报警而不是高高报警。橙色标记。
9. 故障
电机已跳闸,或存在阻止运行的活动 P1 故障。以红色绘制。与运行 + P1 的区别在于设备没有运行——通常是因为故障已让它停下。
可逆电机需要 FWD/REV
压实机电机、可正反转的输送皮带,以及需要反转退出堵料的螺旋输送机,都需要符号的可逆变体。9 种状态依然适用——但运行和启动中状态会在符号主体内增加一个小的 FWD 或 REV 箭头来区分方向。正向取决于项目惯例;通常在画面图例中标注。
实现:PLC 位号映射
最干净的实现是每台电机一个 UINT16 状态位号:
| 数值 | 状态 |
|---|---|
| 0 | 停止 |
| 1 | 启动中 |
| 2 | 运行 |
| 3 | 无反馈 |
| 4 | 手动 |
| 5 | 禁用 |
| 6 | 运行 + P1 |
| 7 | 运行 + P2 |
| 8 | 故障 |
PLC 根据底层信号(命令、反馈、报警、模式、故障)计算出这个状态,HMI 只需渲染一个位号。这种解耦让画面维护成本低:在 PLC 中修改状态机,每个画面都会随之更新,无需改动 HMI 项目。
各平台上的 HMI 实现
Weintek EasyBuilder Pro
- 以 256×128 或 512×256 的透明背景导出 9 张 PNG(cMT-X 可用 9 张 SVG):在符号编辑器 (Symbol Builder) 中把电机画一次,每种状态颜色导出一份,或者从社区电机符号开始并在编辑器中打开。
- 在 EBPro 中:Library → Picture Library → Import。按电机类型分组。
- 在画面上放置一个多状态指示灯 (Multi-state Lamp),并绑定到你的 PLC 状态位号(UINT16)。把数值 0..8 映射到导入的图片。
- 如果想在符号上方显示位号(
M-101),请放置一个单独的文本对象 (Text Object),而不是把位号烧进图片。这样就可以在不重新导出符号的情况下,把项目切换成西班牙语、英语或葡萄牙语。
Siemens WinCC Unified
使用自定义面板(Custom Web Control),以 SVG 主体作为背景图像,由状态值驱动 CSS 类切换。WinCC 的符号库已经有电机块,但默认只带 3 种状态——换成 9 状态套件可以在不改动控制代码的前提下获得态势感知。
Rockwell FactoryTalk View ME / SE
带图片库的多状态指示器 (Multi-state Indicator)。与 Weintek 相同的模式:9 种状态映射到 9 张导入的 PNG。
Ignition Perspective
把 SVG 放进项目的 icons 文件夹,然后把 Image 组件的 icon 属性绑定到一个把状态位号映射为对应 SVG 路径的表达式。或者每种状态使用一个嵌入视图,再用按状态选择的 Tab Container。
常见实现错误
- 把显示状态和命令状态混在一起。HMI 显示的是设备正在做什么,而不是有人要求它做什么。如果操作员按了启动却没有任何反应,符号就停留在无反馈,直到反馈到来。
- 跳过“无反馈”状态。这是最有用的诊断状态,也是最常被跳过的。一定要接上它。
- 把手动当成故障。手动模式是一种正常的运行状况——它只是意味着 HMI 不是控制权所在。用蓝色,不要用红色。
- 把位号烧进符号 PNG。这会让本地化和位号变更变得痛苦。位号始终作为单独的文本对象叠加。
构建 9 状态套件。在符号编辑器中把电机主体画一次——灰色填充,内置 ISA-101 配色——每种状态导出一张 PNG/SVG;P1/P2 报警标记和状态标记在通用图标库中。或者从某位工程师已经发布的电机符号开始,在编辑器中打开它。
打开符号编辑器 → 浏览社区电机符号 →