IEC 104规约,全称IEC 60870-5-104.是国际电工委员会(IEC)第57技术委员会为电力系统控制及通信制定的核心协议标准。它基于TCP/IP网络传输,专门用于电力系统主站与子站(如变电站、RTU、智能保护设备)之间的实时数据监控与控制。简单来说,IEC 104定义了控制中心(如调度主站)和远程终端之间如何通过网络进行标准化、可靠的数据传输和通信。
一、IEC 104规约的定义与核心定位
IEC 104并不是一个凭空诞生的协议,它是IEC 60870-5-101(简称IEC 101)在TCP/IP网络环境下的自然延伸。两者共享完全相同的应用服务数据单元(ASDU)结构和应用层语义,这意味着熟悉IEC 101的工程师可以快速掌握IEC 104.IEC 104通过将底层链路功能委托给标准的TCP/IP协议栈,使得远动信息的网络通信获得了标准化依据,并且能够有效保证通信的可靠性和互操作性。该规约广泛应用于电力系统、城市轨道交通、石油化工等行业的远程监控与数据采集(SCADA)系统中。

二、IEC 104的协议栈分层结构
IEC 104协议的网络参考模型采用五层结构,与标准TCP/IP协议栈紧密对应。其层次从下至上依次为:物理层、数据链路层、网络层、传输层和应用层。在OSI七层模型中,IEC 104跳过了表示层和会话层(标注为“n/a”),直接构建在TCP/IP之上。
1. 各层功能详细说明
| 层级 | 对应协议/标准 | 功能说明 |
|---|---|---|
| 应用层(L7) | IEC 60870-5-104配套标准 | 定义应用协议数据单元(APDU),由应用协议控制信息(APCI)和应用服务数据单元(ASDU)组成。该层负责解析遥信、遥测、遥控、遥调等具体业务数据。 |
| 传输层(L4) | TCP(RFC 793) | 提供面向连接的、可靠的端到端数据传输,确保数据包顺序正确、无丢失。IEC 104默认使用TCP端口号2404. |
| 网络层(L3) | IP(RFC 791) | 负责数据包的路由与寻址,使通信可以跨越局域网(LAN)和广域网(WAN)。 |
| 数据链路层(L2) | 以太网(IEEE 802.3)、PPP(RFC 1661/1662) | 管理帧的封装与传输,将IP数据报封装成以太网帧或PPP帧。 |
| 物理层(L1) | 以太网(Ethernet)、X.21、光纤等 | 在物理介质上实现比特流的传输。IEC 104支持多种物理介质,包括以太网、光纤、GPRS、UMTS、E1等。 |
值得强调的是,IEC 104的应用层以下完全基于标准的TCP/IP网络协议套件,因此物理层和数据链路层的具体选项由TCP/IP提供,协议本身无需额外指定。这一设计使得IEC 104具备极强的网络适应性和可扩展性。
2. 三种APDU帧格式
IEC 104的应用层数据单元(APDU)有三种格式,由控制字段的前两位比特区分:
I-格式(Information Frame,信息帧) :用于传输应用数据(ASDU)。包含发送序列号(N(S))和接收序列号(N(R)),支持流量控制和确认机制。
S-格式(Supervisory Frame,监视帧) :仅用于确认已收到的I-格式帧,不携带ASDU数据。包含接收序列号N(R)。
U-格式(Unnumbered Frame,无编号帧) :用于建立/关闭连接、测试链路等控制功能,无序列号。
这三种帧格式的配合使用,实现了高效可靠的数据传输。例如,主站通过I-格式下发遥控指令,被控站通过S-格式确认收到;U-格式则用于心跳检测(TESTFR)和连接建立(STARTDT)等操作。
三、APDU报文结构详解
一个完整的IEC 104 APDU报文由两部分组成:应用协议控制信息(APCI)和应用服务数据单元(ASDU)。其结构示意如下:
APDU = APCI + ASDU(可选)
1. APCI格式
APCI以启动字符0x68开始,紧跟着一个字节的APDU长度(不包括启动字符本身),然后是四个字节的控制字段。控制字段的具体含义根据帧类型(I/S/U)有所不同。
对于I-格式,控制字段分为:
高16位:发送序列号N(S)(bit1~bit15有效,bit0=0)
低16位:接收序列号N(R)(bit1~bit15有效,bit0=0)
对于S-格式:
高16位固定为0x01 0x00(表示S帧)
低16位:接收序列号N(R)
对于U-格式:
控制字段用于承载STARTDT、STOPDT、TESTFR等命令及确认。
2. ASDU结构
ASDU由两部分构成:数据单元标识符(固定长度为6字节)和一个或多个信息对象,最多可传输127个对象。
数据单元标识符(6字节)
| 字节 | 字段 | 说明 |
|---|---|---|
| 1 | 类型标识(TypeID) | 定义信息对象的具体类型,如单点遥信(1)、双点遥信(3)、遥测(9/11)、SOE(30)、遥控(45/46)等。 |
| 2 | 可变结构限定词(VSQ) | 高位bit7表示是否连续(0=不连续,1=连续),低7位表示信息对象个数。 |
| 3~4 | 传送原因(COT,Cause of Transmission) | 如周期召唤(1)、背景扫描(2)、突发(3)、初始(4)、请求(5)、激活(6)、激活确认(7)等。 |
| 5~6 | 公共地址(Common Address) | 通常为1~2字节,标识RTU或变电站地址,IEC 104支持更大的地址空间。 |
信息对象(可变长)
每个信息对象包含:
信息对象地址(IOA) :通常3字节,标识该数据点在设备中的唯一ID。
信息元素:根据类型标识不同,信息元素长度和含义各异。例如:
单点遥信:1字节(bit0表示合/分状态,其他位为品质描述)。
双点遥信:1字节(bit1~0:00=不确定,01=分,10=合,11=不确定)。
遥测(归一化值):2字节(带符号整数,实际值=原始值×系数)。
遥测(标度化值):2字节。
遥测(短浮点数):4字节(IEEE 754单精度)。
SOE(带时标的遥信):时间戳占7字节(CP56Time2a格式)。
品质描述(QDS) :一般占用1字节,包含是否有效(IV)、是否被取代(SB)、是否被阻塞(BL)等标志。
3. 典型报文示例
以下列举几个核心通信过程的报文结构:
(1)总召唤报文(主站→子站)
I-格式,TypeID=100(总召唤命令),COT=6(激活),公共地址=1.信息对象地址=0x000000
(2)总召唤确认(子站→主站)
I-格式,TypeID=100.COT=7(激活确认)
(3)单点遥信上送(子站主动)
TypeID=1.VSQ=0x01(不连续,1个对象),COT=3(突发),IOA=0x000001.数据=0x01(合位),品质描述=0x00
(4)遥控选择/执行(主站→子站)
选择命令:TypeID=45.COT=6.IOA=目标点,SCO=0x81(选择+合)
执行命令:TypeID=45.COT=6.IOA=目标点,SCO=0x01(执行+合)
(5)对时报文(时钟同步)
TypeID=103(时钟同步命令),COT=6.信息对象为CP56Time2a格式的7字节时间戳
四、IEC 104与IEC 101的核心区别
IEC 104与IEC 101是姊妹标准,但针对不同通信环境进行了适配。下表从多个维度进行对比:
| 对比维度 | IEC 101(IEC 60870-5-101) | IEC 104(IEC 60870-5-104) |
|---|---|---|
| 物理层 | 基于串行通信(RS-232、RS-485),距离受限于串口速率 | 基于以太网、光纤等网络介质,支持LAN/WAN |
| 传输层 | 未指定,依赖串行链路协议(如FT1.2帧格式) | 使用TCP协议,提供可靠端到端传输 |
| 网络层 | 无,通常采用点对点或星形拓扑 | 使用IP协议,支持路由和互联 |
| 报文长度 | 受限于串口速率,报文较短(ASDU最大约253字节但实际受链路限制) | 可利用高带宽网络,ASDU长度可达253字节,且单帧可携带更多对象 |
| 地址范围 | 公共地址和信息对象地址空间较小 | 地址空间更大,适应大规模系统 |
| 连接方式 | 主从半双工/全双工,需处理链路层冲突与重发 | 基于TCP长连接,自动处理重传和确认 |
| 表示层/会话层 | 不适用 | 不适用(均直接跳过) |
| 应用层语义 | 与IEC 104完全相同(ASDU结构一致) | 与IEC 101完全相同 |
| 典型应用 | 电力系统远程监控,通常用于偏远站点或低速链路 | 变电站自动化、调度系统、智能电网等高速网络场景 |
两者的根本差异在于:IEC 101的链路层功能(帧同步、差错控制、重发机制)由协议自身实现,而IEC 104将这些职责完全交给了TCP/IP协议栈,从而大大简化了实现复杂度,并获得了互联网的灵活性和扩展性。因此,IEC 104可以视为IEC 101的“网络化演进版本”。
五、典型应用场景
IEC 104凭借其基于TCP/IP的特点,在现代电力系统中扮演着不可替代的角色。以下列出几个核心应用场景:
1. 电网调度自动化系统
在省调、地调等各级调度中心,IEC 104协议连接着数百个变电站的RTU和智能电子设备(IED)。主站通过周期召唤(总召唤、电度召唤)获取全网负荷分布、潮流信息,实时监控开关状态,并下发遥控指令调整运行方式。例如,当电网出现潮流越限时,调度员可通过IEC 104快速远程调整变压器分接头或切负荷。
2. 配电网自动化
配电自动化终端(DTU)部署在开闭所、环网柜内,通过IEC 104将馈线电流、电压、功率等遥测量,以及故障指示器信号、开关状态等遥信量上传至配网主站。当线路发生故障时,主站能够快速定位故障区段,并远程遥控分段开关隔离故障、恢复非故障区域供电,从而缩短停电时间。
3. SCADA系统与发电厂监控
作为SCADA系统的核心通信协议,IEC 104实现控制中心对远程终端的数据采集和命令控制。在水电站(如二滩水电站)中,IEC 104用于解决与调度中心的远动通信问题,实现无人值班和高效节能。在发电厂中,它帮助实现对发电机组等设备的远程监视和控制,优化生产过程。
4. 智能变电站与可再生能源
在智能变电站中,IEC 104规约用于实时监测和控制,确保电网稳定运行。随着分布式能源(如光伏、风电)的大规模接入,IEC 104也广泛应用于新能源场站的监控,支持遥测数据的实时上报和调度指令的执行。
六、实施中的常见问题与解决方案
在实际工程部署和运维中,IEC 104通信可能遇到以下几类典型问题:
1. 点位值读取失败(错误码3002)
可能原因:
公共地址(Common Address)或信息对象地址(IOA)配置错误,与实际设备不一致。
数据类型不支持:设备使用了主站不支持的ASDU类型。
设备初始化时间不足:TCP连接已建立,但终端尚未完成初始化(如未发送初始化结束标志),导致主站过早请求数据。
设备使用非标准数据类型:部分设备厂商可能对ASDU进行扩展或修改,导致互操作性问题。
解决方案:
核对并修正地址配置,建议通过设备互操作性文档确认地址映射。
查看主站/子站通信日志,获取错误的具体ASDU信息,对比标准判断类型是否合规。
适当增加设备初始化等待时间(如TCP连接建立后延迟2~5秒再发送总召唤)。
与设备厂家确认其实现是否遵循标准,必要时添加自定义解析模块。
2. 数据类型不匹配(错误码3007)
可能原因:从设备上报的数据类型与主站配置的数据类型不一致。例如,设备以短浮点数(TypeID=13)上报遥测,但主站配置了归一化值(TypeID=9);或设备上报双点遥信(TypeID=3),但主站按单点遥信(TypeID=1)解析。
解决方案:
严格依据设备提供的点表配置数据类型。
对于支持多种编码方式的遥测,建议统一采用短浮点数(IEEE 754)以保证精度。
利用协议分析工具(如Wireshark配合IEC 104解析插件)抓取原始报文,手动确认TypeID和元素格式。
3. TCP连接异常断开与重连问题
常见场景:网络抖动导致TCP连接中断,主站与子站序列号不同步,或者子站未正确处理连接复位后的状态机。
解决方案:
主站应实现心跳机制(U-格式TESTFR命令),定期检测连接活性。
当连接断开后,子站应清空所有待发送的I-格式帧序列号状态,重新等待STARTDT激活。
主站重连后应发送STARTDT命令重新激活应用层连接,并且子站应重置发送/接收序列号计数器。
4. 时钟同步失败
场景:子站时间与主站不同步,导致SOE事件时间戳不准确,影响故障分析。
解决方案:
主站定期(如每小时)下发时钟同步命令(TypeID=103)。
要求子站接收时钟同步命令后立即更新RTC,并回应激活确认。
对于高精度要求(如±1ms),可考虑使用NTP或IEEE 1588(PTP)作为时钟源,IEC 104仅作为辅助同步手段。
七、网络安全与性能考量
随着IEC 104在关键基础设施中的广泛应用,其安全性日益受到关注。由于IEC 104基于明文TCP传输,缺乏内置加密与认证机制,容易遭受中间人攻击、报文篡改、重放攻击等威胁。建议采取以下加固措施:
- 网络隔离:将IEC 104通信通道部署在专用VPN或MPLS网络中,与公共互联网隔离。
- 认证与加密:在传输层使用TLS对TCP流加密(如IEC 62351定义的传输层安全方案)。
- 入侵检测:在网络中部署针对IEC 104的深度包检测(DPI)设备,监控异常报文(如非法的TypeID、超时的总召唤等)。
- 防火墙规则:仅允许来自白名单IP的TCP 2404端口访问,并限制连接频率。
- 日志审计:记录所有控制操作(遥控、设点)的报文,便于事后追溯。
在性能方面,IEC 104支持长连接模式,主站与子站之间保持持续的TCP连接,可实现低延迟(数十毫秒)的数据刷新。单个连接上可以承载多个ASDU,支持高效的批量数据上送。
八、总结
IEC 60870-5-104规约是电力系统自动化和SCADA领域最重要、应用最广泛的通信协议之一。它继承了IEC 101的应用层语义和数据结构,同时利用TCP/IP网络技术实现了高速、可靠、灵活的远程数据传输。通过理解其五层协议栈结构、三种APDU帧格式、ASDU的详细字段定义以及与IEC 101的差异,可以有效地进行工程配置、故障排查和系统集成。随着智能电网、分布式能源和5G通信的不断发展,IEC 104将继续作为核心协议在电力行业发挥关键作用,同时也需要与时俱进地加强网络安全防护。对于从事电力系统自动化、工业通信或网络安全的技术人员而言,深入掌握IEC 104是不可或缺的专业技能。
