⚡ IEC 60870 电力远动通信协议族:从101串口到104 TCP/IP的SCADA架构、工程设计与安全防护








IEC 60870 电力远动通信协议族:从101串口到104 TCP/IP的SCADA架构、工程设计与安全防护


在现代电力系统中,调度中心与远方变电站之间的数据通道就是电网运行的”神经系统”。而支撑这条神经系统的核心标准之一,就是 IEC 60870——全球电力行业应用最广泛的远动(telecontrol)通信协议族。从中国国家电网的调度数据网到欧洲输电网的RTU通信,从火力发电厂的DCS到配网自动化的FTU,IEC 60870的身影无处不在。与许多工程师熟悉的Modbus不同,IEC 60870是一个为电力系统量身定制、具有严格状态机和丰富数据类型的工业级协议体系。

📚 标准体系速览:IEC 60870 分为六大部分——第1部分为通用原则与术语;第2部分为运行条件(环境与电磁兼容);第3部分为接口电气特性;第4部分为性能要求;第5部分(传输协议)是整个标准族的技术核心;第6部分为控制中心间数据交换(TASE.2/ICCP)。工程实践中接触最多的四个子协议:101(串行链路)、102(电能累计量传输)、103(继电保护通信)、104(TCP/IP网络访问)。

🛠 一、IEC 60870-5 协议体系架构:两层模型与核心机制

IEC 60870-5 的设计哲学与OSI七层模型明显不同——它采纳了源自EPA(Enhanced Performance Architecture)的增强性能三层模型,仅保留物理层、链路层和应用层,故意舍弃了网络层和传输层。这一”瘦身”设计源于远动通信的硬实时约束:在9600 bps的串行通道上,报文每多一层封装就多一层延迟,而对断路器跳闸信号的传送而言,20 ms的额外延迟可能就是一次电网事故的升级

1.1 物理层:从V.24/RS-232到TCP/IP的跨越

IEC 60870-5 系列的物理层选择极具工程实用性:101协议运行在基于ITU-T V.24/V.28(即RS-232)或RS-485的串行异步通信链路上,典型速率为9600 bps或19.2 kbps,可采用专线、电力线载波或拨号Modem。104协议则彻底”互联网化”——将101的应用层直接映射到TCP/IP之上,默认使用TCP端口2404,实现了从串行时代到IP时代的平滑过渡。

1.2 链路层:FT1.2帧格式与非平衡/平衡传输

IEC 60870-5 的链路层采用了FT1.2(Frame Type 1.2)帧格式,这是协议族的标志性设计之一。FT1.2支持三种帧长:固定帧长(仅用于控制功能如确认、链路状态请求)、可变帧长(承载ASDU数据)和单控制字节帧。可变帧长最多可携带255个字节的用户数据,通过精心设计的帧头/帧尾校验(包括起始字符0x68、长度字段重复、结束字符0x16和校验和)实现极高的传输完整性。

特性 IEC 60870-5-101 IEC 60870-5-102 IEC 60870-5-103 IEC 60870-5-104
应用场景 通用远动:遥测/遥信/遥控/遥调 电能累计量(积分电量)传输 继电保护设备信息交换 101的网络版:通过TCP/IP传输
物理/传输层 串口 RS-232/RS-485, 专线/拨号/载波 串口(与101共享物理层) 串口 RS-232/RS-485 或光纤 TCP/IP(默认端口 2404)
链路层 FT1.2, 平衡/非平衡模式 FT1.2, 非平衡模式 FT1.2, 非平衡模式 无链路层(由TCP保证可靠传输)
传输方向 双向:监控方向 + 控制方向 监控方向为主(计量数据上传) 监控方向为主(保护事件上传) 双向:全双工TCP连接
典型数据类型 单/双点遥信, 测量值, 积分电量, 遥控命令, 设点命令, 步调节 电能累计量, 周期/非周期冻结, 费率切换 保护事件, 保护定值, 故障录波, 装置自检信息 同101,增加文件传输、时钟同步增强
ASDU地址长度 1 或 2 字节(公共地址) 1 或 2 字节 1 字节 2 字节(公共地址)
适用标准 IEC 60870-5-101:2003 IEC 60870-5-102:1996 IEC 60870-5-103:1997 IEC 60870-5-104:2006
⚠️ 理解非平衡与平衡传输的关键区别:非平衡模式(unbalanced)下,只有主站(控制中心)有权发起数据传输——从站(RTU)必须等待主站轮询后才能响应。这是经典的主从架构,适合星形拓扑的集中监控。在平衡模式(balanced)下,主站和从站具有对等的链路访问权,任何一方都可以主动发起传输,大大降低了事件报告的延迟。101协议同时支持两种模式,而102和103仅支持非平衡模式。工程中常见的错误是:在平衡模式下配置了非平衡的链路超时参数,导致链路反复复位。

1.3 应用层:ASDU与COT——协议族的语言核心

IEC 60870-5 的应用层设计是其最重要的技术遗产。ASDU(Application Service Data Unit,应用服务数据单元)COT(Cause of Transmission,传送原因)这两个概念构成了协议族的”语法”和”语义”。

ASDU的结构包括:类型标识(Type ID,定义遥信/遥测/遥控/参数等数十种数据类型)、可变结构限定词(VSQ,定义信息体数量及寻址方式)、传送原因(COT)、公共地址(Common Address)以及信息体(Information Objects)。信息体又包含信息体地址、信息元素和时标。这种严谨的分层结构使得IEC 60870-5能够以统一框架承载从简单开关量到复杂保护定值的各类电力系统数据。

COT(传送原因)是IEC 60870区别于多数工业协议的关键特征之一。每一条报文都携带一个6位的COT码,精确描述这条数据”为什么被发送”:是周期/循环传送(periodic/cyclic,COT=1)?是背景扫描(background scan,COT=2)?是突发/自发传送(spontaneous,COT=3)?是总召唤(general interrogation,COT=20)?还是在响应对方请求(request/requested,COT=5/6)?这一设计使得接收方不仅能获取数据,还能理解数据的上下文和触发机制,为高级应用(如SOE事件顺序记录分析)提供了关键元信息。

✅ 工程设计洞察:在处理来自不同厂家RTU的互操作问题时,COT的使用不一致是最常见的故障源之一。例如,某厂家将SPI(Station-specific interrogation,站召唤)的COT定义为21,而另一个厂家可能将其定义为22。根据IEC 60870-5-101:2003的规定,COT 20用于总召唤(GI),COT 21用于组召唤1,COT 22~36用于其他组召唤。在工程实施阶段,务必对照各厂家的PICS(Protocol Implementation Conformance Statement,协议实现一致性声明)逐一确认COT映射表,这是避免调试阶段大面积返工的关键步骤。

🔎 二、IEC 61850 vs DNP3:三大SCADA协议的路线之争

全球电力自动化领域存在三套主流SCADA通信协议——IEC 60870-5(以101/104为代表)、DNP3(分布式网络协议,IEEE 1815)和IEC 61850(变电站通信网络与系统)。理解三者的技术定位和演进关系,是电力通信工程师的基本素养。

2.1 IEC 60870-5 vs DNP3:同根同源,市场分流

IEC 60870-5和DNP3在技术基因上高度同源——DNP3的基础帧结构直接借鉴了IEC 60870-5的FT1.2格式,两者都使用ASDU概念。但两者在市场化路径上出现了显著分化:

DNP3由美国Harris公司(后经GE演进)在1990年代早期开发,天然支持IP网络,在美国和澳大利亚的电力市场占据主导地位。DNP3的一大技术优势是自带安全认证(SAv5/SAv6)机制,在协议层面内置了挑战-响应认证。

IEC 60870-5-101/104则在全球范围(特别是欧洲、中国、中东、亚洲)获得了更广泛的应用。IEC标准体系的规范性更强——每个厂家必须提供PICS和PIXIT文件,这使得多厂家互操作的理论基础更为扎实。但原生的IEC 60870-5-101/104没有任何安全机制,所有报文以明文传输,这是它最大的设计局限(详见第三节)。

可以做一个简明的总结:如果说DNP3是一个”自带安全锁的美国标准”,那么IEC 60870-5就是一个”靠外部围墙保护的欧洲标准”。

2.2 IEC 60870-5 vs IEC 61850:从信号列表到对象模型的时代跨越

IEC 61850代表了变电站通信的更高维度。IEC 60870-5-101/104本质上是一个面向信号(signal-oriented)的协议——它的设计思路是将物理信号(开关位置、电压值、电流值)逐点编码传输。而IEC 61850是一个面向对象(object-oriented)的建模体系——它将整个变电站的一次设备、保护功能以标准化对象模型(Logical Node)组织,并通过MMS、GOOSE和SV三种通信机制实现站控层、间隔层和过程层的全面数字化。

两者的关系并非替代,而是分属不同的自动化层级:IEC 60870-5-101/104主要负责变电站与控制中心之间的远动通信;IEC 61850主要负责变电站内部设备之间的通信。实际工程中最常见的架构是:站内采用IEC 61850,对外网关/远动装置通过IEC 60870-5-101或104与调度中心通信。这种”IEC 61850站内 + IEC 60870-5站外”的混合架构预计将在未来10~15年内持续存在。

对比维度 IEC 60870-5-101 IEC 60870-5-104 DNP3 IEC 61850
通信模型 面向信号 (signal-oriented) 面向信号 面向信号 面向对象 (object-oriented),逻辑节点模型
传输层 串行链路 (RS-232/485) TCP/IP (端口2404) 串行或TCP/IP (端口20000) TCP/IP + 以太网 (MMS:102, GOOSE/SV: L2多播)
数据组织 ASDU + 信息体地址 (IOA) ASDU + IOA 对象组 + 变体 (Object Group/Variation) 逻辑设备/节点/数据对象/数据属性 (LD/LN/DO/DA)
实时性 秒级(串行带宽限制) 百毫秒级 百毫秒级 GOOSE < 3 ms, SV 采样值 < 10 µs
原生安全机制 无 (依赖外部加密机/防火墙) 无 (依赖TLS/防火墙) SAv5安全认证 (IEC 62351-5认证) 无 (依赖外部认证/IEC 62351)
主要市场 欧洲、中国、中东、亚洲 全球(通用) 北美、南美、澳大利亚、南非 全球新建数字化变电站
典型工程应用 RTU↔调度中心、老站改造 远动网关↔调度数据网 RTU↔SCADA主站、北美配电自动化 智能变电站站控层/间隔层/过程层
📚 技术趋势观察:IEC TC57 技术委员会近年来持续推动 101/104 的安全增强标准 IEC 62351-3/5,要求在 104 的 TCP 连接之上增加 TLS 加密层,并在 101 的串行链路上引入挑战-响应认证。然而,大量已投运的老旧 RTU 设备不支持这些增强功能,使得存量和网络安全要求之间的矛盾成为当前行业的主要痛点之一。

🛡 三、SCADA协议网络安全:IEC 60870-5 的”阿克琉斯之踵”

IEC 60870-5 诞生于1990年代——彼时电网通信是孤立的专线系统,网络安全几乎不是设计考量。而当这些协议通过TCP/IP(104协议)进入调度数据网的广域互联时代,协议本身缺乏认证、加密和完整性保护的三个”原生缺陷”被急剧放大。

3.1 三个致命的原生缺陷

  • 无身份认证(No Authentication):任何能够访问TCP端口2404的设备理论上都可以伪装成合法的控制中心,向RTU下发遥控命令。2015年乌克兰电网攻击事件中,攻击者正是利用SCADA协议的认证缺失,直接通过合法协议通道对变电站断路器实施了批量远程分闸。
  • 无加密传输(No Encryption):所有遥测、遥信、遥控报文——包括关键一次设备的运行参数——均以明文方式在网络上传输。任何在网络节点上部署流量嗅探的攻击者,都能完整重建电网的实时运行画面。
  • 无完整性校验(No Integrity beyond link checksum):链路层的校验和只能检测随机传输错误,无法防御攻击者的蓄意篡改。攻击者可以在截获合法报文后、修改关键数据域(如将”合闸命令”改为”分闸命令”)、重新计算校验和后注入网络——对于TCP/IP上的104协议,这种中间人攻击(MITM)的实施门槛极低。
🚨 实战安全警示:2020年代以来的多起针对电力SCADA系统的APT攻击事件表明,攻击者不再依赖零日漏洞——他们直接利用协议的”设计缺陷”。一个典型的攻击链:首先通过钓鱼邮件或VPN漏洞进入调度中心办公网 → 横向移动至SCADA数据网边界 → 在104报文转发节点上部署流量重放/篡改工具 → 向RTU发送伪造的A_ACTCON(确认/执行)报文 → 造成断路器误分闸。在IEC 62351安全加固普及之前,纵深防御(defense-in-depth)是唯一可行的防护策略。

3.2 纵深防御:多层安全实践

在协议层安全增强无法覆盖存量设备的情况下,工程师必须在网络架构和运维层面构建多层防线:

  • 第一层——物理/网络隔离:101串口链路天然具有”气隙”优势。对于104 TCP/IP通道,必须严格落实电力监控系统安全防护方案(如中国电监会的”安全分区、网络专用、横向隔离、纵向认证”16字方针),将SCADA数据网与办公信息网严格隔离。
  • 第二层——VPN/IPSec加密隧道:在104协议的TCP连接之上封装IPSec或SSL VPN隧道,为通信通道提供传输层加密和节点身份认证,弥补协议层的安全缺失。这是当前存量设备最实用的安全增强手段。
  • 第三层——协议深度包检测(DPI):在SCADA网络边界部署支持IEC 60870-5-104协议解析的工业防火墙/IDS,能够实时检测异常的ASDU类型(如非业务时段出现大量遥控命令)、非法的COT组合(如带时标的总召唤响应)、以及超出正常范围的IOA地址访问。
  • 第四层——操作安全制度:严格的双因子认证、操作票制度、遥控闭锁逻辑在应用层的实现(闭锁逻辑不应仅依赖于RTU端,调度主站端也应有独立的闭锁校验),以及完善的审计日志记录。
✅ 工程师的实用检查清单:对于任何一个使用IEC 60870-5-104的变电站,上电前至少应确认以下条目:(1)104端口2404是否仅对调度数据网IP地址开放,而不是对全网段开放;(2)防火墙规则是否限制了只允许控制中心IP地址作为TCP客户端发起连接;(3)关键遥控对象(断路器、隔离开关)是否在RTU本地实现了”选择-确认-执行”操作序列(Select-Before-Operate),且两次操作之间的超时窗口不超过30秒;(4)RTU是否配置了对非法IOA地址访问的日志记录与告警功能。

🔧 四、远动通信系统工程设计实战:从调试故障到可靠运行

4.1 互操作性与PICS/PIXIT

IEC 60870-5 定义了非常庞大的可选功能集——类型标识超过50种,COT超过40种,平衡/非平衡两种模式,以及各种定时参数。这种”菜单式标准化”虽然提供了灵活性,但也意味着两个都声称”符合IEC 60870-5-101″的设备很可能无法直接通信。解决这一问题的关键是要求各厂家提供 PICS(Protocol Implementation Conformance Statement,协议实现一致性声明)PIXIT(Protocol Implementation eXtra Information for Testing,协议实现额外测试信息)两份互操作文档。PICS是厂家的”功能菜单勾选表”,PIXIT是具体参数的取值和限制。

在工程实践中,建议在设备招标阶段就将PICS/PIXIT列为必备文件——而不是等到现场调试时才发现双方对”支持ASDU type 31 (Double-point information with time tag CP56Time2a)”的理解不一致。

4.2 时钟同步与SOE精度

电力系统的事件顺序记录(SOE,Sequence of Events)要求跨多个变电站的事件时间戳精度达到1 ms级别。IEC 60870-5 采用 CP56Time2a 格式——一种从1980年1月1日起算、单位为毫秒的56位时间戳。然而,串行101协议的传输延迟(报文从RTU发送到主站接收约需数十毫秒至数百毫秒)会严重破坏SOE精度。工程解决方案是:所有RTU必须与GPS/北斗时钟源同步,并在报文中使用信息体自带的时标(而非依赖主站接收时间)。对于104协议,还应合理配置网络NTP时钟同步,确保RTU、网关和主站前端服务器之间的时钟偏差不超过1 ms。

4.3 常见调试故障诊断表

以下整理了IEC 60870-5 工程调试中最常见的故障模式及其诊断思路,供现场工程师参考:

故障现象 可能原因 诊断方法 推荐解决方案
链路反复Link Reset,无法建立稳定连接 链路超时参数(t0/t1/t2/t3)不匹配;非平衡模式下主站轮询间隔过短 抓取串行报文(如使用Wireshark的IEC 60870-5-101解析插件),检查链路状态机的时序 对齐双方的链路定时参数t0(连接超时)、t1(响应超时)、t2(非活动超时)、t3(确认超时)
104协议连接建立后立即断开 TCP端口配置错误(不是2404);防火墙拦截;APDU长度超过255字节导致接收方拒绝 使用telnet/nc测试TCP连通性;检查防火墙日志;验证ASDU是否在APDU长度约束内 检查StartDT/StopDT消息序列;确认APDU长度不超过I帧的最大K值(通常K=12)
总召唤GI收到数据但与就地值不一致 ASDU的IOA地址映射表不一致;数据类型标识(TI)不匹配 逐点对比主站配置库与RTU侧的IOA映射表 以PICS/PIXIT为依据,建立标准化的IOA地址分配表;建议使用电子表格进行逐点校核
遥控操作失败(Select成功但Execute失败) SBO超时间隔过短;COT错误(Execute阶段使用了错误的通知原因码) 检查SBO操作的Select-Execute间隔是否在RTU允许的超时窗口内 增大SBO超时参数(通常设为10~30秒);确认Execute报文COT=6 (Activation) 而非COT=7 (Activation Confirmation)
主站收到大量重复事件(SOE风暴) RTU发生故障后重新上电,缓冲区积压导致;或SQ位设置错误 检查ASDU的SQ位(单个/序列)是否与信息体数量一致 正确设置SQ位(单个信息体×序列信息体);在RTU配置中启用事件过滤去重

❓ 常见问题解答

Q1: 我们现有的RTU只支持IEC 60870-5-101串行通信,但调度中心要求采用104网络协议,应该如何过渡?

A: 推荐采用协议转换网关方案。核心思路是在变电站侧部署一台支持101-to-104的通信管理机或远动网关——该设备在RTU侧通过串口以101协议采集数据,在调度数据网侧以104 TCP客户端/服务器模式与调度中心通信。网关需要完成三项转换:链路层转换(FT1.2 ↔ TCP/IP)、ASDU地址映射(保持IOA一致性)、以及定时参数的适配。在设备选型时,务必确保网关支持101的平衡和非平衡两种模式,并且能够处理至少2000个IOA信息点的数据吞吐量。网关自身的时钟同步(NTP客户端或IRIG-B接口)同样不可忽视。

Q2: IEC 60870-5-104 的 K 值和 W 值如何正确设置?设错了会怎样?

A: K 和 W 是 104 协议流控的核心参数。K 值表示发送方在收到确认之前最多可以发送多少个I格式APDU(默认 K=12),W 值表示接收方在发送确认之前最多可以接收多少个I格式APDU(默认 W=8)。这两个参数必须小于或等于对端对应的K/W限制值。K 值设得过大 → 接收方缓冲区溢出导致报文丢失;K 值设得过小 → 频繁的确认报文浪费带宽并增加延迟。W 值决定了”最新的W个接收帧中最多有K个未被确认”。对于典型的调度自动化通道(2 Mbps带宽,2000个遥测点),建议设置 K=12, W=8,与标准默认值一致。在带宽受限(如GPRS无线)的场景下,可将K适当减小至6~8。

Q3: 我们使用IEC 60870-5-104时遇到一个奇怪的问题——主站看到的开关变位时间戳比实际发生时间晚了近1秒。这是协议本身的延迟吗?

A: 大概率不是协议导致的,而是RTU内部处理延迟。IEC 60870-5-104 在正常网络条件下的端到端传输延迟通常在50 ms以内。你遇到的近1秒延迟很可能是以下原因之一:(1)RTU的对时偏差——如果RTU的时钟与GPS/主站时钟之间存在秒级偏差,需要检查RTU的对时机制(建议采用SNTP或直接IRIG-B同步);(2)RTU的事件缓冲区内的处理延迟——某些RTU在发生大量事件时(SOE风暴)会将事件排队,导致时间戳虽然是准确的但报文被延迟发送——应检查RTU的事件处理优先级机制,确认SOE具有最高的处理优先级;(3)通信中间件/前置机的缓存延迟——检查是否是调度主站前置服务器的处理延迟,而不是通信链路的传输延迟。

Q4: 在一个已经运行了10年的变电站,如果将101升级为104时,现有二次回路是否需要改动?对SCADA系统有什么影响?

A: 二次回路无需改动,但SCADA侧需要配套升级。从101到104的升级仅限于通信层——RTU的交流采样输入(CT/PT二次回路)、遥信输入接点、遥控输出继电器均保持不变。你需要关注的是:(1)RTU本身是否具备104通信接口——老款RTU可能需要更换通信模块或通过外部协议网关实现;(2)SCADA主站端需要增加104协议的通信驱动程序(包括前置机软件升级和数据库配置);(3)信息点表(IOA映射表)需要完整迁移,建议逐点核对——任何两个厂家对同一点的定义偏差都可能在切换后导致数据错位;(4)改造期间需要考虑过渡方案——通常采用”双协议并行运行”策略,即改造后的一段时间内,101和104同时运行,待104运行稳定后再退出101通道。

© 2026 TNLab — 用工程知识守护电网通信安全


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注