1. 基本概念

IEC60870-5-104 是一种电力自动化系统中常用的通信协议,使用 TCP/IP 协议作为底层通信协议,用于监视和控制电力系统中的各种设备,如变电站、发电机、开关等。

1.1 控制站(client)\受控制站(server)

IEC104 协议是基于TCP的应用层协议。其架构为client/Server 模式。 TCP Server 负责和实际的硬件控制,数据采集,命令执行等功能,因此也叫受控制站/分站, IEC101 中还被叫做Slave。TCP Client 负责远程控制,获取server采集的数据,配置server等,因此也叫控制站,IEC101 中还被叫做Master
在这里插入图片描述

1.2 链路层传输模式

IEC104 支持两种传输模式: 平衡传输模式, 和非平衡传输模式

  • 非平衡传输模式
    在该模式下,只有控制站(client)才能启动一次消息传输受控站(server) 只能响应控制站(client)的请求。在这种模式下,控制站(client)通过依次轮询 所控制的 受控站(server)来获取对应的业务数据。该种模式下,支持的传输服务类型如下表:
    在这里插入图片描述

  • 平衡传输模式
    当使用平衡模式传输时,每个站(client和server)都可以启动消息传输。该种模式下,支持的传输服务类型如下表:

服务 描述
SEND/CONFIRM
SEND/NO REPLY 这只能由具有多点对点配置中的广播地址的控制站启动

在IEC104 协议中,平衡模式是最常用的。

1.3 数据对象 & 编址

Iec104 的数据对象 就是 信息对象,本文第三章有非常详细的描述,在此不必赘述。
IEC104 定义了数据链路层的地址和应用层级的地址。
链路地址(COT), 也叫传输原因,长度可以是, 0, 1 ,2 byte 的长度,后面会有详细描述。
ASDU地址(通用地址,COA):就是站点地址,区分位于那个站点。

1.4 基础的应用功能

1.4.1 数据采集

iec104 协议中,所有的数据都被缓存在受控站中(Server),因为数据产生的速度可能会比传输的速度更快。

  • 在非平衡传输的链路模式下,受控站(Server)总是等待控制站发送的数据polling请求,并给以回应。也就是常说的一问一答,不问不答模式。
  • 在平衡传输的链路模式下,受控站(Server)既可以回应 控制站 的各种请求, 也可以当数据产生变化时,或者周期性上报对象值时,主动将对应的数据传输给控制站(client)。 现总结该模式下受控站(Server)的数据采集行为如下:
    • 当数据对像的值产生改变时,受控站(Server)主动上报其产生的数据;
    • 当周期性上报数据时,受控站(Server)主动上报其产生的数据;
    • 回应控制站(client)的控制命令,如总召唤等;
    • 回应读请求;

1.4.2 事件采集

受控站(Server)的应用层级事件会自动发生。其在平衡传输模式和非平衡模式下采集方式和数据采集完全相同。

1.4.3 召唤(Interrogation)

英文翻译叫询问,官方翻译叫召唤。其实感觉询问更切近。
当一个控制站初始化后,或者控制站探测到相应信息有丢失,控制站(client) 就需要发送召唤命令去请求受控站(Server)发送其 【所有】过程变量 的实际值
控制站(client)可以在仍何时候发送召唤命令,以同步受控站(Server)中的所有过程变量的值。召唤命令分为总召唤群组召唤,现详细描述如下:

  • 总召唤/general interrogation (GI)
    总召唤命令会请求受控站(Server)中所有群组的所有数据对象的值的更新给控制站。
  • 群组召唤
    在受控站(Server)端,数据对象可以通过配置COT的值为20~36来设定数据对象的召唤群组。20代表总召唤,21~36 分别对应INRO1~INRO16,分别对应16个召唤群组。控制站(client) 在召唤时,可以通过指定召唤群组,来让该召唤组中的数据对象值更新。

1.4.4 时钟同步

受控站(Server)和 控制站(client)必须保证时钟同步,这样才能传输给控制站的数据和事件拥有保证精确的时标。
系统初始化完成后,控制站(client)应该应当发送一次一次时钟同步指令, 此后,通过发送时钟同步命令(C_CS ACT)来周期性地重新同步时钟。

1.4.5 命令传输(遥控)

命令(也被称作遥控)是 控制站(client) 用来改变受控站(Server)操作设备的状态的API。一个命令可以由操作员发起,也可以由控制台中的自动监控程序发起。命令(遥控)分为直控命令(单步命令)选控命令
命令传输有两种类型:

  • 直控命令(Single command)
    直控命令实际上就是去掉选择命令,直接发执行命令。一般来说保护压板、保护复归为直控;
    直控的一般流程如下: 主站下发执行命令→装置回执行确认报文。

  • 选控命令(Select and execute)
    和直控命令(Single command)相比,该命令包含两个执行过程

    • Select 阶段
      控制站发送一个该命令的Select的操作,受控站会检查该命令该命令是否正确,确认该命令是否已经有正确的执行操作。并把结论返回给控制站。
    • execute阶段
      Select 返回预期时,执行命令。执行完成后, 装置回执行确认报文。

1.4.6 累计量传输

累计量是一个值在指定时间内的积分值。累计量的连续采集时间间隔和Clock 是系统参数。有两种方法获取累计值的计数器信息:

  • Freeze-and-Read: 累计量采集
  • Clear-and-Read: 增量信息的采集
    控制站(client) 可以根据需要,使用计数器召唤命令(counter interrogation) 获取累计量计数器对象的值。累计量也可以被配成,当计数器冻结操作(counter freeze operations)发生时,主动上报其计数值。

1.4.7 协议和链路参数的更改

当协议和链路参数的值发生更改时,新值在提交后生效。

1.4.8 传输延迟的采集

时间校正值由传输延迟和内部设备延迟之和确定,传输延迟是可以通过参数化单独获取的值,或者通过控制站启动一个时间校准进程来实现的。

2. iec104 协议的帧结构

在这里插入图片描述
iec104 基于TCP/IP 传输,是一个应用层协议, 其帧结构被称为 APDU,APDU 一般由 APCI 和 ASDU组成。

2.1 APDU (Application Protocol Data Unit)

APDU 被称为应用协议数据单元,也就是一个iec104 的协议帧的官方叫法。一个APDU(也就是协议帧),可以只包含一个APCI, 或者 一个APCI + ASDU。

APDU = APCI 
or
APDU = APCI + ASDU

APDU 的最大长度为255byte。

2.2 APCI (Application Protocol Control Information)

APCI(应用控制信息,类似于帧头),由一个1byte 的起始字节0x68 + 1 byte ADPU 的长度 + 4 个1 byte控制位域(CF)组成。详细如下图所示。
在这里插入图片描述
APCI 中第一个控制位域(CF1)的最低2bit,确定了帧的格式,iec104 定义了3种格式的帧。其如下图所示:
在这里插入图片描述

  • I-format (information transfer format), last bit of CF0 是0
    • 它用于控制RTU(server, slave) 和 类SCADA(master, client)之间的信息传输,其位可变长度。
    • I-format 的数据帧(APDU)总是包含ASDU。
    • I-format 的控制位域表明了消息的方向,其包含了两个15bit 的序号数字,每个方向上,每个APDU的序号数字都会被有序的加1。并且在0~32767之间循环。
      • 发送器在发送一个iFrame后,会将发送端的发送序号自动加1,同时将该iFrame保存在发送缓冲区中, 直到它接受到一个ADPU,该APDU中接收序号表明接收到发送端发送的对应发送序号&以下的iFrame,这些iFrame会被从发送缓冲区移除。
      • 接受器接收到一个iFrame后,会将接收端的接收序号自动加1,当接收序号到达设定的数量后,会给发送端回应一个sFrame 的Ack。如果在一定的时间内,接收端接收的iFrame 未到达该设定的数量,接收端也会发送一个sFrame的Ack。如果接收端在一定的时间内都处于idle状态,且存在没有回应的iFrame, 接收端就会给其回应一个sFrame的Ack。
      • TCP 连接建立后,发送/接收序号应当被置0;
    • 发送/接收序号由CF位域由LSB 和MSB 构成,I-Format的帧序号只有15bit, 如下图所示:
      在这里插入图片描述
  • S-format (numbered supervisory functions), last bits of CF1 是 01
  • 一般作为一个/多个iFrame的Ack , 固定APDU 长度
  • S-format APDU 只有APCI, 没有ASDU。
  • 在iFrame只是单向情况下, S-format的APDUs 必须被发送出去,当相应的iFrame 超时,溢出,或者到达IFrame 接收的最大允许数量。
  • U-format (unnumbered control functions), last bits of CF2 是 11
    • 被用于有序的控制功能, 固定APDU 长度

    • U-format 的APDU只有一个APCI,没有ASDU。其功能包括TESTFR
      (测试帧), STOPDT (停止数据传输) or STARTDT (开启数据传输,它们可以同时被激活。其CF1的二进制值,如下图所示:
      在这里插入图片描述

    • uFrame 用于STARTDT(开启数据传输),STOPDT(关闭数据传输)和TESTFR(测试帧)的激活&确认机制。

    • STARTDT和STOPDT 用于client(master,也称控制站点)去控制Server(Slave,也称被控制站点)去开启/关闭数据传输
      当连接建立时,用户数据传输是没有被使能的(默认是处于STOPDT状态的),在这种状态下,客户端通过这个连接是不能发送仍何用户数据的(uFrame是可以发送的)。客户端必须发送一个**STARTDT 激活(STARTDT activate)指令去激活用户数据的传输,服务器端将会回应一个STARTDT 确认(STARTDT confirm)**消息。如果没有收到该确认消息,client将会关闭此连接。

      只有client才可以发送STARTDT 激活指令。当连接建立好后,client 才可以向server 发送STARTDT激活指令,该指令只能被发送一次。激活后,该连接才可以在仍何时间发送仍何消息, 直到连接被STOPDT激活指令终止。

    • client & server必须周期性地发送TESTFR帧,去检测所有连接的连接状态,和通信问题等.

      client & server必须周期性地发送**TESTFR 激活(TESTFR activate)指令,对应的TESTFR确认(TESTFR confirm)**帧必须被回应。

      在一定的时间内,连接没有数据传输时,client/server 就可以启动这个测试进程。

2.3 ASDU格式

ASDU包含两个主要的段:数据单元识别符(长度固定为6Byte), 和数据段数据段由一个或者多个信息对象构成。数据单元识别符定义了数据的类型,提供数据标识的寻址,包含额外的信息,如传输原因等。 每一个ASDU可以传输最大127个信息对象。 ASDU 的结构如下:
在这里插入图片描述

2.3.1 数据单元识别符

数据单元识别符包含以下位域:

  1. Type identification (TypeID, 1 byte)

    • TypeID 的值,0不可用,1~127用于标准的IEC101协议定义。128~135 用于消息路由,135~255为特殊使用。
    • 对于标准的IEC101协议,有58个类型被定义,其定义如下:
      在这里插入图片描述
    • 值的注意的是TypeID 贯穿于整个ASDU,如果有多个信息对象被包含在该ASDU中,这些信息对像就有相同的类型。
  2. SQ (Structure Qualifier) bit
    SQ 位域指定了信息对象&信息元素如何被编址。

    • SQ=0 (一系列的信息对象):
      单个/多个信息元素的寻址如下图所示。
      • 信息元素被信息对象地址,ASDU 可能由一个或者多个相同类型的信息对象组成,这个信息对象的长度被变码成二进制,并被定义在Number of Objects 位域。
      • SQ=0 表示了一系列的信息对象,这些信息对象都自己的地址,数据单元识别符中用一个7bit 的数据表示信息对象的个数。其如下图所示。因此它们可以装载多达127个信息对象。
    • SQ=1 (仅仅只有一个信息对象)
      编址一种信息对象的单个或者多个信息元素。
      • 一系列相同的信息对象(例如,相同格式的测量值)被通过information object address 位域寻址。信息对象的地址就是第一个信息元素的地址。信息元素根据不同的偏移被寻址。这个信息元素的长度被变码成二进制,并被定义在Number of Objects 位域。在这种情况,该ASDU只有一个信息对象,信息对象由一系列的信息元素组成。
      • 当SQ=1时,ASDU只有一个信息对象, 这个对象包含了一系列的信息元素。仅仅只有一个信息对象地址,这个信息对象的地址就是第一个信息元素的地址。
        其如下图所示:
        在这里插入图片描述
  3. Number of objects/elements

    • 范围为0~127
    • 0 表示没有包含信息对象
    • 1~127 表示信息对象/信息元素的个数
  4. T (test) bit
    只用于测试,不会控制处理器&更改系统状态

    • T=0 (非测试模式), T=1 (测试模式)
  5. P/N (positive/negative) bit
    积极/消极的激活确认。

    • 当使用控制命令时,这个位域是有意义的。该位域通常表示控制命令是否被成功执行。P=0表示肯定确认,P=1表示否定确认。 非控制命令,这个位域总是置0。
  6. Cause of transmission (COT)

    • COT 用于控制通信种的消息路由,该消息路由会把ASDU路由到正确的程序&任务。控制方向的ASDU会相应的服务确认。
    • COT 是一个6位码, 它被用于描述目标栈点的信息。
    • 0 没有被定义, 1~47用于标准定义。48-63 为特殊目的使用。
  7. Originator Address (ORG)

    • 这个是可选的,它为控制栈点提供了一种明确识别自己的方式。当系统中只有一个控制栈点时,是没有必要的。但多个控制栈点,或者一些栈点是双栈模式是,是有用的。在这种情况下,始发方地址可用于将命令确认引导回特定的控制站而不是整个系统
  8. ASDU Address Field (Common Address of ASDU, COA),

    • 该地址称为公共地址,是因为它与包含在ASDU内的所有对象相关联。其经常被解释为栈点地址。然而,它可以被构造为形成一个站点/扇区地址,其中各个站点由多个逻辑单元构成。
    • COA 总是一个或者两个字节的长度。
    • 全局地址也叫做广播地址,它会发送给所有的栈点。控制方向上的广播类ASDU,必须要要被回应,回应是监控方向上的,且必须带上自己的栈点地址。
    • 0不被用, 1~65534 被定义为站点地址。 65535 被定义为广播地址。
    • 当相同功能的应用被启动时,使用广播地址。它仅限于以下ASDU:
      • TypeID=100 (询问命令): 在公共时间使用特定系统数据快照进行回复
      • TypeID=101 (反询问命令): 在公共时间冻结总计
      • TypeID=103 (时钟同步命令): 同步时钟到通用时间。
      • TypeID=105 (复位进程命令): 同时复位

2.3.2 信息对象

ASDU在其结构中传输信息对象,每一个信息对象都被信息对象地址(IOA)编址。IOA用以识别站点内定义的数据。IEC104中,信息对象地址(IOA)的长度为3byte。在控制方向上,该地址为目标地址,监控方向上,该地址为源地址。

  • 通常情况下,IOA 的地址范围被限制到最大35535(2 byte)。在特殊情况下,IOA的第三个字节仅用于结构化信息对象地址的情况,以便在特定系统中定义明确的地址。
  • 如果ASDU 的信息对象地址,没有被用,将被设置为
    0。

在一个ASDU中被传输的所有信息对象,都必须有相同的ASDU Type。如果有多个不同类型的信息对象,它们必须被装载进不同的ASDU中传输。
在IEC104 协议中,每一个ASDU类型,都有一对应的消息对象格式。
例如信息对象有哪些信息元素构成等。

  • 下图展示了一个单点没有时间的信息对象(ASDU
    type=1), 这个对象有两种格式:一个是 SQ=0 和另一个是 SQ=1。这个对象的合法COT 是: 2 (background scan), 3 (spontaneous), 5 (requested), 11, 12 (feedback), 20 +G
    (interrogated by station interrogation)。
    在这里插入图片描述
  • 一些信息对象包含一些元素,例如,下图显示了信息对象类型10(测量值,归一化的时间标签), 这个对象的SQ进为0,包含了3个信息元素: 归一化值NVA(3byte),质量描述符(1byte),和二进制的时间戳(3bytes)。其COT 的合法值为spontaneous (code 3) or requested (code 5)。
    在这里插入图片描述

2.3.3 信息元素

3. ASDU类型&描述

对于每一种ASDU的类型,IEC104 都定义了对应的信息对象类型。 下面我们将分类描述

3.1 监视方向上的过程信息

类型标识 描述 引用 信息对象格式 合法的COT
1 单点信息 M_SP_NA_1 SIQ 2,3,5,11,20,20+G
3 双点信息 M_DP_NA_1 DIQ 3,5,11,12
5 步位置信息 M_ST_NA_1 VTI + QDS 2,3,5,11,12,20,20+G
7 32比特串 M_BO_NA_1 BSI + QDS 2,3,5,11,12,20,20+G
9 归一化测量值 M_ME_NA_1 NVA + QDS 2,3,5,11,12,20,20+G
11 标量化测量值 M_ME_NB_1 SVA + QDS 2,3,5,11,12,20,20+G
13 浮点型测量值 M_ME_NC_1 IEEE STD 754 + QDS 2,3,5,11,12,20,20+G
15 累计值 M_IT_NA_1 BCR 2,37,37+G
20 带状态检出的成组单点信息 M_PS_NA_1 SCD+QDS 2,3,5,11,12,20,20+G
21 不带品质描述的归一化测量值 M_ME_ND_1 NVA 1,2,3,5,11,12,20,20+G
22~29 为将来的兼容定义保留
30 带时标CP56Time2a的单点信息 M_SP_TB_1 SIQ+ CP56Time2a 3,5,11,12
31 带时标CP56Time2a的双点信息 M_DP_TB_1 DIQ+ CP56Time2a 3,5,11,12
32 带时标CP56Time2a的步位置信息 M_ST_TB_1 VTI + QDS+ CP56Time2a 2,3,5,11,12
33 带时标CP56Time2a的32比特串 M_BO_TB_1 BSI + QDS+CP56Time2a 3,5
34 带时标CP56Time2a的归一化测量值 M_ME_TD_1 NVA + QDS+CP56Time2a 3,5
35 带时标CP56Time2a的标量化测量值 M_ME_TE_1 SVA + QDS+CP56Time2a 3,5
36 带时标CP56Time2a的浮点型测量值 M_ME_TF_1 IEEE STD 754 + QDS+CP56Time2a 2,3,5,11,12,20,20+G
37 带时标CP56Time2a的累计值 M_IT_TB_1 BCR+CP56Time2a 3,37,37+G
38 带时标CP56Time2a的继电器保护装置事件 M_EP_TD_1 QDP+CP16Time2a+CP56Time2a 3
39 带时标CP56Time2a的继电器保护装置成组启动事件 M_EP_TE_1 SEP + QDP+CP16Time2a+CP56Time2a 3
40 带时标CP56Time2a的继电器保护装置成组输出电路信息 M_EP_TF_1 OCI + QDP+CP16Time2a+CP56Time2a 3

类型表示1~15中,单数是不带时标的信息元素,双数是带时标CP24Time2a的对应信息元素。其对象格式,是给不带时标的信息元素格式的基础上+CP24Time2a。
引用的命名格式如下:
M_ :监视方向的信息元素
_Nx:不带时标
_Tx: 带时标
_xA:type A: 有质量描述副的状态或归一化值
_xB:type B: 有质量描述副的标量值
_xC:type C: 有质量描述副的浮点值
_xD:type D: 没有有质量描述副的归一化值
信息对象格式描述了信息对象由那些信息元素组成。

3.2 控制方向上的过程信息

类型标识 描述 引用 信息对象格式 合法的COT
45 单命令 C_SC_NA_1 SCO 6,7,8,9,10,44,45,46,47
46 双命令 C_DC_NA_1 DCO 6,7,8,9,10,44,45,46,47
47 步调节命令 C_RC_NA_1 RCO 6,7,8,9,10,44,45,46,47
48 设点命令,归一化值 C_SE_NA_1 NVA + QOS 6,7,8,9,10,44,45,46,47
49 设点命令,标量值 C_SE_NB_1 SVA + QOS 6,7,8,9,10,44,45,46,47
50 设点命令,短浮点值 C_SE_NC_1 IEEE STD 754 +QOS 6,7,8,9,10,44,45,46,47
51 32比特串 C_BO_NA_1 BSI 6,7,8,9,10,44,45,46,47
52~57 为将来的兼容定义保留
58 带时标CP56Time2a的单命令 C_SC_TA_1 SCO+CP56Time2a 6,7,8,9,10,44,45,46,47
59 带时标CP56Time2a的双命令 C_DC_TA_1 DCO+CP56Time2a 6,7,8,9,10,44,45,46,47
60 带时标CP56Time2a的步调节命令 C_RC_TA_1 RCO+CP56Time2a 6,7,8,9,10,44,45,46,47
61 带时标CP56Time2a的设点命令,归一化值 C_SE_TA_1 NVA + QOS+CP56Time2a 6,7,8,9,10,44,45,46,47
62 带时标CP56Time2a的设点命令,标量值 C_SE_TB_1 SVA + QOS+CP56Time2a 6,7,8,9,10,44,45,46,47
63 带时标CP56Time2a的设点命令,短浮点值 C_SE_TC_1 IEEE STD 754 +QOS+CP56Time2a 6,7,8,9,10,44,45,46,47
64 带时标CP56Time2a的32比特串 C_BO_TA_1 BSI+CP56Time2a 6,7,8,9,10,44,45,46,47
65~69 为将来的兼容定义保留

引用的命名格式 C_ :控制方向的信息对象。
注意:控制方向的信息对象(也叫命令),必须要和对应类型的监视方向上的过程信息对象 产生Map才可以起作用,否则,命令无法起作用。

3.3 监视方向上的系统信息

类型标识 描述 引用 信息对象格式 合法的COT
70 初始化结束 M_EI_NA_1 COI 4
71~99 为将来的兼容定义保留

3.4 控制方向上的系统信息

类型标识 描述 引用 信息对象格式 合法的COT
100 总召唤命令 C_IC_NA_1 QOI 6,7,8,9,10,44,45,46,47
101 电能脉冲召唤命令 C_CI_NA_1 QCC 6,7,8,9,10,44,45,46,47
102 读命令 C_RD_NA_1 5
103 时钟同步命令 C_CS_NA_1 CP56Time2a 3,6,7,44,45,46,47
104 (IEC 101) Test command C_TS_NB_1 FBP 6,7,44,45,46,47
105 复位进程命令 C_RP_NC_1 QRP 6,7,44,45,46,47
107 带时标CP56Time2a的测试命令 C_TS_TA_1
108~109 为将来的兼容定义保留

3.5 控制方向上的参数

类型标识 描述 引用 信息对象格式 合法的COT
110 归一化测量值 P_ME_NA_1 NVA + QPM 6,7,9,10,20,20+G,44,45,46,47
111 标量化测量值 P_ME_NB_1 SVA + QPM 6,7,20,20+G,44,45,46,47
112 浮点测量值 P_ME_NC_1 IEEE STD 754 +QPM 6,7,20,20+G,44,45,46,47
113 参数激活 P_AC_NA_1 QPA 6,7,8,9,44,45,46,47
114~119 为将来的兼容定义保留
参数都是控制方向上的,和监控方向的对象相比,其值发生变化时,不会上报,只有总召唤时,可以上报给数据的值。

3.6 文件传输

类型标识 描述 引用 信息对象格式 合法的COT
120 文件已准备好 F_FR_NA_1 NOF + LOF + FRQ 13
121 节点已准备好 F_SR_NA_1 NOF + NOS + LOF +SRQ 13
122 召唤目录,选择文件,召唤文件,选择节 F_SC_NA_1 NOF + NOS + SCQ 5,13
123 最后的节,最后的段 F_LS_NA_1 NOF + NOS + LSQ +CHS 13
124 确认文件,确认节 F_AF_NA_1 NOF + NOS + AFQ 13
125 F_SG_NA_1 NOF + NOS + LOS +segement 13
126 目录 F_DR_TA_1 NOF + LOF + SOF +CP56Time2a 3,5
127 日至查寻-请求存档文件 F_SC_NB_1

4. 信息元素详解

信息元素是构成信息对象的基本单元,就像OOP 中的变量一样,是构成Object的基础。

我们给出一个IEC104的信息元素列表:
监视方向的过程信息

元素类型 描述 长度(byte) 使用的信息对象
SIQ 有质量描述符的单点信息 1 1, 2, 30
DIQ 有质量描述符的双点信息 1 3
BSI 二进制状态信息 4 7, 8, 33, 51
SCD 状态更改探测 4 20
QDS 质量描述符 1 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 20, 32, 33, 34, 36
VTI 具有瞬态指示值 1 5, 6, 32
NVA 归一化值 2 9, 10, 21, 34, 48, 110
SVA 标度值 2 11, 12, 49, 111
IEEE STD 754 短浮点数 4 13, 14, 36, 50, 112
BCR 二进制计数器读数 5 15, 16, 37

保护

元素类型 描述 长度(byte) 使用的信息对象
SEP 保护设备的单个事件 1 17, 38
SPE 保护设备启动事件 1 18, 39
OCI 保护设备输出电路信息 1 19, 40
QDP 保护设备事件的质量描述符 1 18, 19, 39, 40

命令

元素类型 描述 长度(byte) 使用的信息对象
SCO 单个命令 1 45
DCO 双命令 1 46
RCO 调节阶跃指令 1 47

时间

元素类型 描述 长度(byte) 使用的信息对象
CP56Time2a 七字节二进制时间 7 4, 6, 8, 10, 12, 14, 16, 17, 18, 19, 31,32, 33, 34, 36, 37, 38, 39, 40, 103, 126
CP24Time2a 三字节二进制时间 3 4, 5, 6, 8, 10, 12, 14, 16, 17, 18, 19, 31, 32, 33, 34, 36, 37, 38, 39, 40
CP16Time2a 二字节二进制时间 2 17, 18, 19, 38, 39, 40, 106

限定符

元素类型 描述 长度(byte) 使用的信息对象
QOI 讯问资格 1 100
QCC 反询问命令限定符 1 101
QPM 测量值参数限定符 1 110, 112
QPA 参数激活的限定符 1 111, 113
QRP 重置过程命令的限定符 1 105
QOC 命令的限定符 1 45, 46, 47, 48, 49, 50
QOS 设定值命令的限定符 1 48, 49, 50

文件传输

元素类型 描述 长度(byte) 使用的信息对象
FRQ 文件就绪限定符 1 120
SRQ 节就绪限定符 1 121
SCQ 选择并调用限定符 1 122
LSQ 最后一节或段限定符 1 123
AFQ 确认文件或节限定符 1 124
NOF 文件名 2 120, 121, 122, 123, 124, 125, 126
NOS 段命名 2 121, 122, 123, 124, 125
LOF 文件/段的长度 3 120, 121
LOS 分段长度 1 125
CHS Checksum 1 123
SOF 文件状态 1 126

杂项

元素类型 描述 长度(byte) 使用的信息对象
COI 初始化原因 1 70
FBP 固定测试位模式,两个八位字节 1 104

4.1 SIQ 的数据格式

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
IV NT SB BL 0 0 0 SPI
  • IV:VALID (0) / INVALID (1)。数据值是否有效,当采集系统识别到异常的情况(如更新设备丢失或无法运行),将这个位域标为1。该情况下信息对象的值,不会被定义。这个位为1表示信息对象的值是不正确的,不能被用。
  • NT: TOPICAL (0) / NOT TOPICAL (1) NT为刷新标志位,若最近的刷新成功则值就称为当前值,若一个指定的时间间隔内刷新不成功或者其值不可用,值就称为非当前值。设备处于调试态或装置通讯中断都有可能造成非当前值。
  • SB:NOT SUBSTITUTED (0) / SUBSTITUTED (1) SB为取代标志位,当信息对象的值由值班员(调度员)输入(即人工置数)或者由当地自动原因(模拟遥信)所提供时,即为被取代。如人工置数情况下。这意味着该值不是从正常测量中得出的。
  • BL:NOT BLOCKED (0) / BLOCKED (1) BL为封锁标志位,信息对象的值为传输而被封锁,值保持封锁前被采集的状态。封锁和解锁可以由当地联锁机构或当地自动原因启动。
  • SPI: OFF (0) / ON (1) SPI为遥信状态值。单点遥信,0分1合;双点遥信,1开2合,0和3为中间状态。

4.2 DIQ的数据格式

bit7 bit6 bit5 bit4 bit3 bit2 bit1~bit0
IV NT SB BL 0 0 DPI
  • DPI: Double Point Information SPI为遥信状态值。双点遥信,1=OFF, 2=ON,0和3为不确定中间状态。

4.3 BSI的数据格式

32 位宽度的数据,可以认为为uint32。

4.4 SCD的数据格式

 **32 位宽度的数据,可以认为为uint32。**

4.5 QDS的数据格式

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
IV NT SB BL 0 0 0 OV
  • OV: NO OVERFLOW (0) / OVERFLOW (1) OV为溢出标志位,信息对象的值超出了预先定义值的范围(主要适用模拟量值)。仅在遥测品质结构词中出现。

4.6 VTI的数据格式

bit7 bit6~bit0
是否处于瞬变状态 比他6为符号位,取值范围为<-64…63>

4.7 NVA的数据格式

16位的标量值,可以认为int16,转化为归一值需要除以32768。
归一化值(NVA),值的范围为[-1,1]。归一化,即是将大于1的数映射到1以内的空间,通常就是用实际值除以额定值,即得到归一化的小数。具体表示法可以有F13或F16位的。占2个字节。
在电力行业中,通常是将数值归一到满码值。满码值是通信双方约定的一个值,它会影响数值的误差。一般来说,所内监控后台满码值为4095或2047,地调满码值为4095,中调满码值为32767(通常会要求P、Q、I按1倍额定值对应15000的码值的关系转换后上送;母线电压、频率则按1.2倍额定值对应15000的码值的关系转换后上送)。

4.8 SVA的数据格式

  16位的标量值,可以认为int16 

4.9 IEEE STD 754的数据格式

   32位,可以认为float32  

4.10 BCR的数据格式

bit39 bit38 bit37 bit36~bit32 bit31~bit0
IV: 无效 CA:计数量被调整 CY:是否有进位 顺序号SQ 计数器读数

4.11 SEP的数据格式

bit7~bit6 bit5 bit4 bit3 bit2 bit1 bit0
预留 SRD:反向保护启动 SIE:接地电流保护启动 SL3:C相保护启动 SL2:B相保护启动 SL1:A相保护启动 GS:总启动

4.12 OCI的数据格式

bit7~bit4 bit3 bit2 bit1 bit0
预留 CL3:C相保护命令输出至输出电路 CL2:B相保护命令输出至输出电路 CL1:A 相保护命令输出至输出电路 GC:总命令输出至输出电路

4.13 QDP的数据格式

bit7 bit6 bit5 bit4 bit3 bit2 bit1~bit0
IV NT SB BL EI 0 事件0~3
  • EI:Elapsed time invalid (EI) 这与保护设备的事件一起使用。该位值位时,表示时间间隔值(elapsed time )无效,这意味这这个时间间隔值(elapsed time )应该不能被使用,且需要忽略。

4.14 SCO的数据格式

bit7 bit6~bit2 bit1 bit0
S/E为选择/执行位, 0代表执行,1代表选择 0: 无另外的定义 1:短脉冲持续时间(断路器),持续时间由被控站内的系统参数所确定2:长脉冲持续时间,持续时间由被控站内的系统参数所确定 3:持续输出 0 SCS 0:分/开, 1:合/关

4.15 DCO的数据格式

bit7 bit6~bit2 bit1~bit0
S/E为选择/执行位, 0代表执行,1代表选择 0: 无另外的定义 1:短脉冲持续时间(断路器),持续时间由被控站内的系统参数所确定2:长脉冲持续时间,持续时间由被控站内的系统参数所确定 3:持续输出 DCS: 1代表分/开,2代表合关,0、3代表不允许

4.16 RCO的数据格式

bit7 bit6~bit2 bit1~bit0
同于DCO 同于DCO 步进命令: 1:下一步为降档,2: 下一步升档,其他不允许

常用来进行调节分接头遥控,不是所有厂家都支持此命令,部分厂家将调节分接头遥控统一至单/双点遥控中。

4.17 CP56Time2a/CP24Time2a/CP16Time2a的数据格式

字节序号 描述
byte0 Milliseconds(D7–D0)
byte1 Milliseconds(D15–D8)
byte2 IV(D7) 预留(D6) Minutes(D5–D0)
byte3 SU(D7) 预留(D6-D5) Hours(D4–D0) SU = 夏令时,0 = 标准时间, 1 = 夏令时
byte4 DayOfWeek(D7–D5) DayOfMonth(D4–D0)
byte5 预留(D7–D4) Months(D3–D0)
byte6 预留(D7) Year(D6–D0)

4.18. QOI的数据格式

#TODO

4.19 QCC的数据格式

#TODO

4.20 QPM的数据格式

bit7 bit6 bit5~bit0
参数是否运行:0 : 运行, 1 : 不在运行 参数是否被改变 0:未改变, 1: 改变 参数类型 1:阈值(Threshold) 2:平滑因子(smoothing factor)3.测量值传输的下限(LowLimit)3.测量值传输的上限(HIGHLimit)

4.21 QPA的数据格式

bit7~bit0
1. 激活/停止激活这之前装载的参数 2. 激活/停止激活所寻址信息对象的参数 4.激活/停止激活所寻址的持续循环或周期传输的信息对象

4.22 QOC的数据格式

和SCO & DCO & RCO 完全一致。

4.23 QOS的数据格式

bit7 bit6~bit0
同于DCO 0: 默认 1-63: 预留为标准定义 64-127:特殊使用

其他和文件传输相关的信息元素不再提及。

本文参考文献如下:
1. 《Description and analysis of IEC 104 Protocol》
2. 《运动设备及系统第5-104部分:传输规约-采用标准传输协议集的 IEC 60870-5-101网络访问》 国家电网DL/T634.5104-2009实施细则
3. 《SSC600 IEC 60870-5-104 COMMUNICATION PROTOCOL MANUAL》
4. 《Grid Automation REC615 and RER615 IEC 60870-5-101/104 Communication Protocol Manual》
5. 《REX640 IEC 60870-5-104 Communication Protocol Manual》
6. 《IEC-60870-5-104 Master Communication Protocol》

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐