IEC104协议详解

  IEC 60870-5-104(简称IEC 104)是国际电工委员会(IEC)制定的电力自动化领域核心通信协议,基于TCP/IP网络传输,属于IEC 60870-5-101标准的网络扩展版本。该协议定义了控制中心(调度主站)与变电站或其他远程终端(如RTU、智能保护设备)之间通过网络进行数据传输和通信的规范,广泛应用于电力系统远程控制和监视场景。

  一、IEC 104协议概述

  1. 基本定义

  IEC 104协议是一种基于TCP/IP的通信协议,用于实现电力自动化设备间的实时数据监控与控制。它采用平衡式传输模型,定义了I/S/U三种报文格式,支持遥测、遥信、控制命令等37类标准化功能。技术特征包含滑动窗口协议、应用层地址分段规则及毫秒级时标记录机制,通过发送/接收序号实现数据完整性保障。

  2. 协议定位

  简单来说,IEC 104协议是一种用于电力系统监控的通信规约,它继承了IEC 60870-5-101协议的应用层,并基于TCP/IP协议栈进行网络通信,适应了现代网络的发展需求。

  二、历史背景与发展历程

  1. IEC 60870-5系列标准的起源

  IEC 60870-5系列标准最早于20世纪80年代开始制定,最初主要关注的是点对点和多点链路的通信,即IEC 60870-5-101协议。当时的电力系统使用铜缆、电力线载波、串行无线电链路、拨号调制解调器和低带宽租用线路进行通信,由于这些链路速度慢且噪声大,协议在设计时非常重视错误检测、链路监督和时序控制。

  2. IEC 104的诞生

  随着计算机网络技术的飞速发展,特别是TCP/IP网络的广泛应用,为了满足电力系统在网络环境下的通信需求,国际电工委员会在IEC 60870-5-101协议的基础上,制定了IEC 60870-5-104协议。该协议于1997年首次发布(另有资料显示1993年开始制定,1996年发布,2000年正式发布),之后经过不断的修订和完善,逐渐成为电力系统自动化领域广泛应用的网络通信标准。

  3. IEC 104的设计理念

  IEC 104作为IEC 101的“网络接入配套标准”,其核心设计思想是:保留IEC 101的数据模型,但替换传输机制。具体而言,它将IEC 101的ASDU(应用服务数据单元)封装到网络帧中,去除了IEC 101使用的严格串行链路机制。IEC 101仍用于许多偏远或老旧变电站,而IEC 104已成为现代能源管理系统和国家控制中心的主导协议。

  三、技术架构与通信原理

  1. 网络架构

  IEC 104协议基于TCP/IP网络,采用客户机/服务器(C/S)模式。在电力系统中,调度主站通常作为客户机(控制站),变电站自动化设备等作为服务器(被控站)。客户机发起连接请求,服务器响应连接并提供数据服务。

  •   主站(客户端)‍ :接收数据、发送命令
  •   从站(服务器)‍ :发送数据、接收命令

  2. 协议分层结构

  IEC 104协议采用明确的分层结构,主要包括:

  APCI(应用协议控制信息)

  APCI包含启动字符0x68、长度域及控制域(I/S/U帧标识)。APDU(应用协议数据单元)包含APCI或带有ASDU的APCI。

  ASDU(应用服务数据单元)

  ASDU承载业务数据,包含两个主要部分:

  数据单元标识符:固定长度为6字节,包含类型标识、可变结构限定词、传送原因、公共地址等

  数据本身:由一个或多个信息对象组成,每个信息对象有唯一的地址

  3. 帧格式详解

  IEC 104协议定义了三种帧格式,每种帧都有特定的用途和控制功能:

  I帧(信息帧)

  I帧用于传输应用数据,包含发送序号和接收序号,用于实现数据传输的确认和排序。I帧的控制域编码采用左移存储方式优化存储效率。

  I帧结构:

  启动字符(0x68)

  长度域

  控制域(4字节,包含发送序号和接收序号)

  ASDU(应用服务数据单元)

  S帧(监视帧)

  S帧用于确认已经接收到的I帧,不包含ASDU数据,只包含接收序号。攻击者可能伪造S帧干扰序号同步,这一点在安全分析中需要特别关注。

  S帧结构:

  启动字符(0x68)

  长度域(固定为0x04)

  控制域(4字节,仅包含接收序号)

  U帧(控制帧)

  U帧用于链路控制功能,如建立连接、测试连接、断开连接等。U帧不包含序号,通过特定的控制命令码实现链路管理。

  U帧结构:

  启动字符(0x68)

  长度域(固定为0x04)

  控制域(4字节,包含控制命令码)

  4. 通信机制

  连接建立

  IEC 104协议使用TCP端口2404进行通信。连接建立过程包括:

  客户端发起TCP连接请求

  服务器接受连接

  发送U帧启动指令(STARTDT)

  接收U帧启动确认

  数据传输

  数据传输采用滑动窗口协议,通过发送/接收序号实现数据完整性保障。主要流程包括:

  总召唤命令:主站发起总召唤,从站按点表返回所有数据

  变化数据上报:从站主动上报状态变化的数据

  周期性数据上传:定时上传遥测等周期性数据

  超时管理

  IEC 104协议定义了多种超时参数,用于控制连接建立、数据传输和链路维护:

  •   T0:连接建立超时
  •   T1:数据发送/确认超时
  •   T2:接收确认延迟
  •   T3:空闲链路测试周期

  5. 数据封装与解码

  IEC 104协议将应用层的数据封装在TCP报文段中进行传输。应用层数据遵循IEC 60870-5-101协议的格式,包括启动字符、长度、控制域、ASDU等部分。在实现中,解码器通常通过LengthFieldBasedFrameDecoder实现动态报文分割,支持最大253字节的APDU。信息体地址采用3字节小端序编码,遥测值为IEEE754浮点型,遥信状态为单字节。

  四、应用层功能详解

  1. 四遥操作

  IEC 104协议的核心功能包括“四遥”操作,这是电力系统监控的基础:

  遥测(YC)

  遥测用于采集电压、电流、功率、频率等模拟量数据(如类型标识0x0D)。这些数据反映了电网的实时运行状态,是调度决策的基础。遥测值通常以IEEE754浮点数格式传输,保证精度。

  遥信(YX)

  遥信用于监测开关状态等数字量信号(如M_SP_NA_1单点遥信)。它包括断路器分/合闸状态、开关位置、报警信号等信息,以二进制位表示。

  遥控(YK)

  遥控用于远程控制断路器分合闸(如C_SC_NA_1指令)。它是电力系统中最重要的控制功能之一,直接影响电网的安全运行。遥控命令通常需要选择-执行机制以确保操作安全。

  遥调(YT)

  遥调用于参数调节,如变压器分接头调整、设定值修改等(模拟量输出AO)。遥调命令允许调度中心远程修改设备工作参数,实现更精细化的电网控制。

  2. 其他应用功能

  除了四遥操作,IEC 104还支持:

  •   遥脉:计数器传输,用于电度量采集
  •   保护事件:传输故障记录、事件序列等信息
  •   时标记录:毫秒级时标记录机制,用于事件排序和故障分析

  3. 传送原因机制

  传送原因字段用于标识数据传输的动机,包括:

  •   周期性传送
  •   变化数据上传
  •   总召唤响应
  •   命令激活/确认
  •   事件触发等

  五、安全性与加密机制

  1. 原生安全缺陷

  IEC 104协议在设计之初并未将安全性作为优先考虑因素,存在显著的安全缺陷:

  缺乏加密机制:协议本身不强制使用加密,数据以明文形式传输,存在数据窃听和篡改风险

  无身份认证:仅通过公共地址(通常2字节)识别设备,容易受到伪造攻击

  会话劫持风险:攻击者可以伪造S帧干扰序号同步,实现会话劫持

  完整性保护缺失:没有内置的完整性验证机制

  2. 安全增强方案

  尽管IEC 104协议本身缺乏安全机制,但可以通过以下方式增强安全性:

  VPN隧道:使用IPsec或VPN隧道封装IEC 104通信,实现数据加密和隧道保护

  TLS加密:在TCP层之上使用TLS协议提供加密传输

  网络隔离:采用强网络分段策略,将IEC 104通信与公司网络隔离开

  防火墙策略:配置严格的防火墙规则,限制对TCP端口2404的访问

  IEC 62351安全标准:IEC技术委员会发布的专门安全标准,实现端到端加密,可防止重放、中间人和数据包注入等攻击。但由于实现复杂性增加,许多供应商不愿意部署此标准。

  3. 安全现状

  尽管存在已知的安全缺陷,不安全的IEC 104协议仍在欧洲电力系统中广泛使用。华为等设备厂商在其产品中默认禁用使用IEC 104连接到第三方管理系统的功能,以降低网络安全风险。

  六、IEC 104与相关协议对比

  1. IEC 104 vs IEC 101

  IEC 104是IEC 101在TCP/IP网络上的自然延伸,两者共享相同的ASDU结构和应用层语义,但在多个维度存在显著差异:

对比维度IEC 60870-5-101IEC 60870-5-104
传输介质串行通信(RS-232/485)以太网(TCP/IP)
通信模式点对点/轮询多点并发、网络化
数据速率低速(≤19.2kbps)高速(>10Mbps)
安全机制简单校验TCP可靠传输、可配合SSL/VPN
网络拓扑单主多从多主多从、跨网络
配置复杂度较高(需网络配置)
应用场景变电站内部、配电终端调度中心、广域监控、远程站点
兼容性与老设备兼容性强与现代SCADA系统无缝集成

  核心区别总结

  •   通信层:IEC 101依赖串行链路,需处理链路层冲突、重发等机制;IEC 104将链路层功能交给TCP/IP协议栈,简化了实现
  •   传输效率:IEC 104利用网络的高带宽,可承载更长的报文(ASDU长度可达253字节),而IEC 101受限于串口速率,报文较短
  •   地址范围:IEC 104的公共地址和信息对象地址空间更大,适应大规模系统

  2. IEC 104与IEC 103

  IEC 103协议主要用于继电保护设备间的通信,与IEC 101/104在物理层和链路层存在差异。IEC 101使用串行通信,IEC 103也使用串行通信,而IEC 104使用以太网通信。三者都是IEC 60870-5标准家族的成员。

  七、典型应用场景

  1. 电网调度自动化系统

  在省调、地调等各级调度中心,IEC 104协议连接着数百个变电站。主站通过周期召唤获取全网负荷分布、潮流信息,实时监控开关状态,并下发遥控指令调整运行方式。这是IEC 104最核心的应用场景。

  2. 配电网自动化

  配电自动化终端(DTU)部署在开闭所、环网柜内,通过IEC 104将馈线电流、故障指示等信息上传至配网主站。这有助于实现配电网络的自动化控制与监视,减少停电时间和提高供电可靠性。

  3. 智能变电站

  IEC 104规约在智能变电站中扮演着至关重要的角色,用于实时监测和控制,确保电网的稳定运行。变电站自动化系统通过IEC 104实现远程控制、数据采集和状态监控。

  4. 发电厂监控

  帮助实现对发电设备的远程监视和控制,优化电力生产过程。水电站分布式监控系统也广泛应用IEC 104协议,如二滩水电站的监控系统使用IEC 104解决与调度中心远动通信中的问题,实现无人值班和高效节能的目标。

  5. SCADA系统

  作为电力系统SCADA系统的重要组成部分,IEC 104用于实现远程终端设备的数据采集和命令控制,连接控制服务器、变电站和远程终端单元(RTUs)等设备。

  八、实现与开发要点

  1. 主站程序设计

  IEC 104主站程序设计的核心包括:

  程序流程:建立连接、发送启动帧、总召唤命令、对时请求及数据传输

  数据解析:遥信、遥测解析,遥控、遥调组合

  技术实现:Java多线程、Socket编程、JDBC和数据库连接池技术

  数据库操作:设备信息加载、遥信遥测数据写入数据库、遥调数据比对与发送

  2. 从站实现注意事项

  报文结构:正确封装APCI和ASDU

  时序控制:遵守超时参数(T0-T3)要求

  变化检测:准确识别数据变化并主动上传

  命令处理:正确响应遥控、遥调命令

  3. 互操作性与协议转换

  许多网关设备和工业路由器同时支持101/104协议转换,以实现新旧系统的平滑过渡。协议网关将IEC 101的ASDU封装为IEC 104帧,实现兼容。

  九、总结

  IEC 104协议作为电力系统自动化的核心通信协议,其设计兼顾了简单性与功能性

  •   继承性:保留了IEC 101成熟的应用层数据模型和ASDU结构
  •   网络化:基于TCP/IP协议栈,适应现代高速网络环境
  •   标准化:定义了37类标准化功能,确保不同厂商设备的互操作性
  •   实时性:毫秒级时标记录机制,支持高精度事件排序和故障分析

  然而,该协议在安全性方面的先天不足是需要警惕的问题。在部署IEC 104系统时,必须配合VPN、TLS、网络隔离等安全措施,或者逐步向IEC 62351安全标准迁移,以应对日益严峻的网络安全威胁。

  IEC 104已成为现代能源管理系统和国家控制中心的主导协议,但IEC 101仍在许多老旧系统中使用。随着智能电网和数字化变电站的快速发展,IEC 104的重要性将持续增长,同时也需要更加关注其安全增强和与新兴技术(如IEC 61850)的融合。

滚动至顶部