外观
IEC 104:从现场事件到可信远动
IEC 104用于调度主站与变电站、RTU或网关之间的远动通信。它关心的不只是“怎样传一个数”,而是:
主站怎样通过可能中断的广域网络,及时看见现场、恢复可信状态,并得到可追踪的控制结果。
先建立两个视角
业务视角:它要解决什么问题
- 及时看见现场:断路器变位、保护动作等事件发生后,应尽快上送,而不是一直等待轮询。
- 恢复可信状态:网络重连后,主站不能继续相信断线前的缓存,需要重新获得当前站端状态。
- 追踪远方控制:命令发出、被接受、执行结束和设备实际到位是不同阶段,必须分别确认。
协议视角:它采用什么方案
| 业务问题 | IEC 104的核心方案 |
|---|---|
| 及时看见现场 | 长连接、自发上送、类型化信息、传送原因、时标和质量 |
| 保持连接内有序 | I/S帧、发送与接收序号、确认窗口和定时器 |
| 发现连接假死 | 空闲检测和测试帧 |
| 重连后恢复状态 | 重新启动数据传送,再通过总召唤重建当前快照 |
| 追踪控制结果 | 类型化命令、选择—执行、肯定/否定确认、执行终止和状态反馈 |
协议提供基础机制,客户端仍要补充连接代次隔离、旧回调失效、缓存时效判断,以及断线控制的“结果未知”状态。IEC 104也不替代权限、联锁、审计和加密等安全措施。
Modbus与IEC 104的简单对比
下面比较的是两种协议最典型的使用方式,而不是对所有设备实现作绝对限定。
| 对比项 | 典型Modbus | IEC 104 |
|---|---|---|
| 主要模型 | 主站读取或写入寄存器、线圈 | 主站与站端交换有业务语义的信息对象 |
| 数据到达 | 主站周期轮询 | 变化可由站端主动上送,也支持召唤 |
| 数据上下文 | 地址和值为主,含义依赖点表 | 类型、原因、时间和质量随数据传递 |
| 断线恢复 | 应用自行重新读取所需地址 | 新连接重新启动传送,并可用总召唤重建站端快照 |
| 远方控制 | 常表现为写线圈或寄存器 | 有选择、执行、确认、终止等控制阶段 |
| 典型场景 | 设备级、局部网络、简单采集控制 | 调度主站与多个厂站之间的广域远动 |
可以粗略理解为:
Modbus擅长“主站问设备某个地址现在是什么”;IEC 104更关注“现场发生了什么、这条信息能否使用、断线后怎样重新对账、命令执行到了哪一步”。
两者并不互相排斥。工程中常由网关通过Modbus采集设备,再通过IEC 104向调度主站提供远动服务。
一个断路器案例
断路器从合位跳到分位时,典型Modbus主站通常在下一次轮询时发现变化;IEC 104站端可以立即自发上送变位,并附带原因、源端时间和质量。网络中断后,旧状态只能作为缓存;IEC 104重连并启动数据传送后,通过总召唤重新获得当前站端快照。
演示边界
动画用于说明典型通信思路,不代表所有Modbus设备都没有额外事件机制。总召唤恢复的是当前状态快照;断线期间完整的事件顺序能否补齐,还取决于站端事件缓存等工程能力。
记住三句话
- IEC 104让现场变化带着业务语义主动到达主站。
- 恢复的目标不是“TCP又通了”,而是“主站重新获得可信状态”。
- 控制的目标不是“命令发出去了”,而是“接受、结束和实际状态都有明确记录”。