IEC 104规约报文格式

  IEC 104是基于TCP/IP网络传输的电力自动化核心通信协议,定义了主站与子站之间进行实时数据监控与控制的标准。其报文格式严谨、结构清晰,是理解和实现该协议的基础。

  一、 IEC 104报文的总体结构

  IEC 104的报文基于应用规约数据单元(APDU)进行组织。一个完整的APDU通常包含两个核心部分:应用规约控制信息(APCI)和应用服务数据单元(ASDU)。

  APCI (Application Protocol Control Information) :负责传输控制信息,如报文类型、序列号等。所有类型的APDU都包含APCI。

  ASDU (Application Service Data Unit) :承载实际的遥测、遥信、遥控等应用数据。只有信息传输帧(I帧)才会包含ASDU。

  APDU的通用封装格式以起始字符 0x68 开头,后跟一个字节的APDU长度域(该长度指从控制域开始到报文结束的字节数),接着是控制域和数据域。

  二、 IEC 104的三种报文格式及其控制域详解

  IEC 104规约定义了三种报文格式,它们由控制域的第一个字节的低2比特位来区分。这三种格式分别是:I格式(信息传输帧)、S格式(监视帧)和U格式(未编号的控制帧)。

  下表对三种格式的关键特性进行了总结:

报文格式控制域标识(首字节低2位)包含ASDU主要用途帧长度
I格式00传输带编号的遥测、遥信、遥控等应用数据可变(>6字节)
S格式01对接收到的I帧进行编号确认固定(6字节)
U格式11用于建立、维护和终止数据连接的控制命令固定(6字节)

  1. I格式 (Information Transfer Format) 报文

  I格式是承载实际数据的核心帧,用于传输遥测、遥信、遥控命令、事件记录等信息。

  帧结构:起始字符(0x68) + APDU长度 + 控制域(4字节) + ASDU(可变长度)。

  控制域详解:I格式的控制域长度为4个字节,主要用于实现可靠的、按序传输。

  发送序列号 N(S) :由控制域的第1、2字节组成(最低位为0),表示当前发送的I帧的序号。用于检测报文丢失或重复。

  接收序列号 N(R) :由控制域的第3、4字节组成(最低位为0),表示期望接收的下一个I帧的序号。用于向对端确认已成功接收了序号小于N(R)的所有I帧。

  核心作用:这种带编号的机制实现了TCP之上的可靠数据传输,确保主站与子站间的数据交换是完整和有序的。

  2. S格式 (Supervisory Format) 报文

  S格式不包含任何应用数据,其唯一的功能是进行流量控制和确认。

  帧结构:起始字符(0x68) + APDU长度(0x04) + 控制域(4字节)。由于没有ASDU,其APDU长度固定为4.

  控制域详解:S格式的控制域也为4个字节。

  第1、2字节用于标识S格式(1000 0001 0000 0000),不包含N(S)。

  接收序列号 N(R) :由控制域的第3、4字节组成(最低位为0),其功能与I格式中的N(R)完全相同,用于确认已收到的I帧。

  典型应用:当设备收到I帧但暂时没有数据需要发送时,会回复S帧,告知对方“我收到了你的第N个包之前的所有数据”。

  3. U格式 (Unnumbered Format) 报文

  U格式用于在两个通信站之间执行控制功能,而不传输数据或进行顺序确认。

  帧结构:起始字符(0x68) + APDU长度(0x04) + 控制域(4字节)。与S帧相同,长度固定为6字节。

  控制域详解:U格式的控制域结构相对简单,主要用来标识具体的控制命令。

  通过第1、2字节中的特定比特位来区分三种命令,这三种命令互斥,只能同时激活一个:

  TESTFR (测试帧) :用于测试链路是否通畅。包含 TESTFR act (激活) 和 TESTFR con (确认)。

  STOPDT (停止数据传输) :用于停止对方的数据传输。包含 STOPDT act (激活) 和 STOPDT con (确认)。

  STARTDT (启动数据传输) :用于启动对方的数据传输,是建立数据连接的关键步骤。包含 STARTDT act (激活) 和 STARTDT con (确认)。

  核心作用:U帧是控制整个通信会话生命周期的关键。

  三、 ASDU (应用服务数据单元) 的详细组成

  只有I帧才会包含ASDU。ASDU的结构是标准化的,包含了所有需要传输的远动信息。

  一个ASDU主要由两部分构成:

  数据单元标识符:固定长度为6个字节,提供ASDU的通用描述信息。

  一个或多个信息对象:承载实际数据。一个ASDU可以包含一个或多个同类信息对象,最多可达127个。

  1. 数据单元标识符结构

字节偏移字段名称长度(字节)描述
0类型标识 (TypeID)1标识ASDU的类型,例如单点遥信(0x01)、遥测(0x0D)、SOE事件(0x1E)等。
1可变结构限定词 (VSQ)1指示信息对象的排列方式。最高位(SQ)表示地址是连续的(0)还是单个的(1);低7位表示本ASDU中信息对象的个数。
2-3传送原因 (COT)2说明数据传输的原因,如周期、总召唤、突发、响应站命令等。
4-5公共地址 (Common Address)2标识数据源站的地址。通常一个ASDU对应一个物理设备或逻辑站点。

  2. 信息对象 (Information Object) 结构

  每个信息对象都包含唯一的地址和具体的数据值及品质。

字段名称长度(字节)描述
信息对象地址 (IOA)3在特定站内唯一标识一个数据点。例如,第一个遥测点地址为 0x000001
信息元素 (Information Element)可变包含实际的数据值。例如,遥测可以是规约值或工程值;遥信可以是单点或双点状态。
品质描述词 (QDS)1 (可选)描述数据的品质,如是否有效、是否被取代、是否溢出等。
时标 (Time Tag)3或7 (可选)为带时标的事件记录(如SOE)提供精确的时间戳。

  四、 典型报文实例解析

  为了更直观地理解,以下提供一个典型通信流程和报文示例。

  场景:主站发起总召唤,子站返回遥测数据。

  建立TCP连接:主站作为TCP客户端连接子站的2404端口。

  U帧启动数据

  主站 -> 子站:68 04 43 00 00 00 (U格式,STARTDT act)

  子站 -> 主站:68 04 43 00 00 00 (U格式,STARTDT con) //链路建立成功

  I帧总召唤请求

  主站 -> 子站:68 10 00 00 00 00 64 01 06 00 01 00 00 00 00 14

  68 起始字符

  10 APDU长度(16字节)

  00 00 发送序N(S)=0

  00 00 接收序N(R)=0

  64 类型标识=100.表示总召唤命令

  01 可变结构限定词(SQ=0. 1个对象)

  06 00 传送原因=6(激活)

  01 00 公共地址=1

  00 00 00 信息对象地址=0

  14 总召唤限定词(QOI)

  S帧确认

  子站 -> 主站:68 04 01 00 02 00 (S格式,N(R)=1.确认收到第0号I帧)

  I帧返回遥测数据

  子站 -> 主站:68 0C 02 00 00 00 09 03 01 00 01 00 00 00 10 00 (示例)

  … (具体解析需按ASDU结构分析)

  总结

  IEC 104规约通过精心设计的I、S、U三种报文格式,构建了一个可靠、高效的远动通信系统。I帧承载核心数据并使用序列号保证可靠传输;S帧提供轻量级的确认机制;U帧负责管理通信连接。深入理解这种报文格式是开发、配置和维护基于IEC 104的电力自动化系统的基础。

滚动至顶部