1. 先搞懂IEC104到底解决什么问题
1.1 电力调度通信的真实场景
先说说IEC104通信协议在我实际工作中到底是怎么冒出来的。如果你在电力自动化、新能源电站、储能站、智能变电站、配网自动化这些领域待过,一定绕不开一件事:站内的测控装置、保护装置、电度表、环境监测设备,需要把电压、电流、有功、无功、开关位置、告警信号这些数据送到调度主站或者集控中心去。反过来,调度主站也要能下发遥控命令,比如分合闸、调节有功出力、设置定值。这套站端设备与主站之间“数据上送+命令下发”的通信规则,就是远动通信协议要干的事。
IEC104通信协议,全称是IEC 60870-5-104,它本质上是把早期基于串口的IEC 60870-5-101协议,映射到TCP/IP网络传输层上的一套应用层协议。简单理解:101是“老式串口邮局”,104是“互联网化之后的快递系统”。它默认跑在TCP 2404端口上,主站作为TCP客户端去连接作为服务端的站端设备(当然角色也可以互换,但工程上绝大多数是主站主动连接)。为什么这么多年过去了,IEC104还是绝对主力?因为稳定性好、实现成本低、调试方便、上下游生态成熟,不管是南瑞、国电南自、许继、四方这些国内主流厂家的设备,还是西门子、ABB、施耐德的保护测控装置,基本都支持。
如果你刚入行,或者准备做电力监控系统集成、储能EMS系统开发、光伏电站SCADA系统,又或者要对接调度侧数据网,这篇文章可以帮你把IEC104从报文层面、交互流程层面、工程排障层面整个串起来。我不会只讲理论,更多是这些年调试设备时踩过的坑和总结的规律。
1.2 为什么不是Modbus,也不是IEC61850
很多人会拿IEC104和Modbus、IEC61850作比较。Modbus在工业现场确实统治级存在,但它有一个先天问题:没有标准的对象寻址体系,数据点表全靠自己约定,而且功能码设计偏向寄存器读写,做遥信变位、SOE(事件顺序记录)、时钟同步这些电力业务时非常别扭。而IEC104天生定义了信息体地址,四种基本数据类型(遥测、遥信、遥控、遥调)分类清晰,还内置了召唤、时钟同步、档位调节、SOE等电力行业专用功能。
IEC61850则是另一条路线,它面向变电站站内通信,基于MMS、GOOSE、SV,建模思想是面向对象、自描述,非常强大但也非常复杂,调试门槛高,对设备性能要求也高。对于“站端到调度主站”这条远动链路,IEC104恰好处于一个甜点位:比Modbus更规范,比IEC61850更轻量。用一句话概括:做站内保护联锁选61850,做出站远动上送选104,做本地设备互联选Modbus。
1.3 一个典型系统的通信架构长什么样
我参与过不少光伏电站和储能电站的远动通信项目,结构基本是这样:站内各间隔的测控装置、保护装置、电能表,先通过RS485(Modbus)、IEC61850或者硬接线汇总到一台远动通信管理机(或者叫远动机、数据采集器)。远动通信管理机再按照IEC104协议,把整理好的点表数据封装成报文,通过电力调度数据网(通常是专用的路由器加纵向加密装置)送到调度主站。
这里有个关键点:站内采集用什么协议随意,但面向调度侧的出口协议,调度主站会明确要求是IEC104,点表也是双方提前核对签字的。所以做工程的人,可以不完全熟悉站内每种设备协议,但必须把IEC104这一层吃得透透的。否则点表对不上、报文发不出去、遥控被拒,现场会非常被动。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 协议核心机制拆解:从APDU到ASDU
2.1 报文结构:APCI和ASDU各管什么事
IEC104的报文全部基于APDU(应用协议数据单元)来组织,一个APDU由APCI(应用协议控制信息)和ASDU(应用服务数据单元)组成。如果你抓包看过,会在Wireshark里看到类似这样的十六进制片段:
text复制68 0E 00 00 00 00 64 01 06 00 01
