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_1SIQ2,3,5,11,20,20+G
3双点信息M_DP_NA_1DIQ3,5,11,12
5步位置信息M_ST_NA_1VTI + QDS2,3,5,11,12,20,20+G
732比特串M_BO_NA_1BSI + QDS2,3,5,11,12,20,20+G
9归一化测量值M_ME_NA_1NVA + QDS2,3,5,11,12,20,20+G
11标量化测量值M_ME_NB_1SVA + QDS2,3,5,11,12,20,20+G
13浮点型测量值M_ME_NC_1IEEE STD 754 + QDS2,3,5,11,12,20,20+G
15累计值M_IT_NA_1BCR2,37,37+G
20带状态检出的成组单点信息M_PS_NA_1SCD+QDS2,3,5,11,12,20,20+G
21不带品质描述的归一化测量值M_ME_ND_1NVA1,2,3,5,11,12,20,20+G
22~29为将来的兼容定义保留
30带时标CP56Time2a的单点信息M_SP_TB_1SIQ+ CP56Time2a3,5,11,12
31带时标CP56Time2a的双点信息M_DP_TB_1DIQ+ CP56Time2a3,5,11,12
32带时标CP56Time2a的步位置信息M_ST_TB_1VTI + QDS+ CP56Time2a2,3,5,11,12
33带时标CP56Time2a的32比特串M_BO_TB_1BSI + QDS+CP56Time2a3,5
34带时标CP56Time2a的归一化测量值M_ME_TD_1NVA + QDS+CP56Time2a3,5
35带时标CP56Time2a的标量化测量值M_ME_TE_1SVA + QDS+CP56Time2a3,5
36带时标CP56Time2a的浮点型测量值M_ME_TF_1IEEE STD 754 + QDS+CP56Time2a2,3,5,11,12,20,20+G
37带时标CP56Time2a的累计值M_IT_TB_1BCR+CP56Time2a3,37,37+G
38带时标CP56Time2a的继电器保护装置事件M_EP_TD_1QDP+CP16Time2a+CP56Time2a3
39带时标CP56Time2a的继电器保护装置成组启动事件M_EP_TE_1SEP + QDP+CP16Time2a+CP56Time2a3
40带时标CP56Time2a的继电器保护装置成组输出电路信息M_EP_TF_1OCI + QDP+CP16Time2a+CP56Time2a3

类型表示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_1SCO6,7,8,9,10,44,45,46,47
46双命令C_DC_NA_1DCO6,7,8,9,10,44,45,46,47
47步调节命令C_RC_NA_1RCO6,7,8,9,10,44,45,46,47
48设点命令,归一化值C_SE_NA_1NVA + QOS6,7,8,9,10,44,45,46,47
49设点命令,标量值C_SE_NB_1SVA + QOS6,7,8,9,10,44,45,46,47
50设点命令,短浮点值C_SE_NC_1IEEE STD 754 +QOS6,7,8,9,10,44,45,46,47
5132比特串C_BO_NA_1BSI6,7,8,9,10,44,45,46,47
52~57为将来的兼容定义保留
58带时标CP56Time2a的单命令C_SC_TA_1SCO+CP56Time2a6,7,8,9,10,44,45,46,47
59带时标CP56Time2a的双命令C_DC_TA_1DCO+CP56Time2a6,7,8,9,10,44,45,46,47
60带时标CP56Time2a的步调节命令C_RC_TA_1RCO+CP56Time2a6,7,8,9,10,44,45,46,47
61带时标CP56Time2a的设点命令,归一化值C_SE_TA_1NVA + QOS+CP56Time2a6,7,8,9,10,44,45,46,47
62带时标CP56Time2a的设点命令,标量值C_SE_TB_1SVA + QOS+CP56Time2a6,7,8,9,10,44,45,46,47
63带时标CP56Time2a的设点命令,短浮点值C_SE_TC_1IEEE STD 754 +QOS+CP56Time2a6,7,8,9,10,44,45,46,47
64带时标CP56Time2a的32比特串C_BO_TA_1BSI+CP56Time2a6,7,8,9,10,44,45,46,47
65~69为将来的兼容定义保留

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

3.3 监视方向上的系统信息

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

3.4 控制方向上的系统信息

类型标识描述引用信息对象格式合法的COT
100总召唤命令C_IC_NA_1QOI6,7,8,9,10,44,45,46,47
101电能脉冲召唤命令C_CI_NA_1QCC6,7,8,9,10,44,45,46,47
102读命令C_RD_NA_15
103时钟同步命令C_CS_NA_1CP56Time2a3,6,7,44,45,46,47
104(IEC 101) Test commandC_TS_NB_1FBP6,7,44,45,46,47
105复位进程命令C_RP_NC_1QRP6,7,44,45,46,47
107带时标CP56Time2a的测试命令C_TS_TA_1
108~109为将来的兼容定义保留

3.5 控制方向上的参数

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

3.6 文件传输

类型标识描述引用信息对象格式合法的COT
120文件已准备好F_FR_NA_1NOF + LOF + FRQ13
121节点已准备好F_SR_NA_1NOF + NOS + LOF +SRQ13
122召唤目录,选择文件,召唤文件,选择节F_SC_NA_1NOF + NOS + SCQ5,13
123最后的节,最后的段F_LS_NA_1NOF + NOS + LSQ +CHS13
124确认文件,确认节F_AF_NA_1NOF + NOS + AFQ13
125F_SG_NA_1NOF + NOS + LOS +segement13
126目录F_DR_TA_1NOF + LOF + SOF +CP56Time2a3,5
127日至查寻-请求存档文件F_SC_NB_1

4. 信息元素详解

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

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

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

保护

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

命令

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

时间

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

限定符

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

文件传输

元素类型描述长度(byte)使用的信息对象
FRQ文件就绪限定符1120
SRQ节就绪限定符1121
SCQ选择并调用限定符1122
LSQ最后一节或段限定符1123
AFQ确认文件或节限定符1124
NOF文件名2120, 121, 122, 123, 124, 125, 126
NOS段命名2121, 122, 123, 124, 125
LOF文件/段的长度3120, 121
LOS分段长度1125
CHSChecksum1123
SOF文件状态1126

杂项

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

4.1 SIQ 的数据格式

bit7bit6bit5bit4bit3bit2bit1bit0
IVNTSBBL000SPI
  • 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的数据格式

bit7bit6bit5bit4bit3bit2bit1~bit0
IVNTSBBL00DPI
  • DPI: Double Point Information SPI为遥信状态值。双点遥信,1=OFF, 2=ON,0和3为不确定中间状态。

4.3 BSI的数据格式

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

4.4 SCD的数据格式

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

4.5 QDS的数据格式

bit7bit6bit5bit4bit3bit2bit1bit0
IVNTSBBL000OV
  • OV: NO OVERFLOW (0) / OVERFLOW (1) OV为溢出标志位,信息对象的值超出了预先定义值的范围(主要适用模拟量值)。仅在遥测品质结构词中出现。

4.6 VTI的数据格式

bit7bit6~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的数据格式

bit39bit38bit37bit36~bit32bit31~bit0
IV: 无效CA:计数量被调整CY:是否有进位顺序号SQ计数器读数

4.11 SEP的数据格式

bit7~bit6bit5bit4bit3bit2bit1bit0
预留SRD:反向保护启动SIE:接地电流保护启动SL3:C相保护启动SL2:B相保护启动SL1:A相保护启动GS:总启动

4.12 OCI的数据格式

bit7~bit4bit3bit2bit1bit0
预留CL3:C相保护命令输出至输出电路CL2:B相保护命令输出至输出电路CL1:A 相保护命令输出至输出电路GC:总命令输出至输出电路

4.13 QDP的数据格式

bit7bit6bit5bit4bit3bit2bit1~bit0
IVNTSBBLEI0事件0~3
  • EI:Elapsed time invalid (EI) 这与保护设备的事件一起使用。该位值位时,表示时间间隔值(elapsed time )无效,这意味这这个时间间隔值(elapsed time )应该不能被使用,且需要忽略。

4.14 SCO的数据格式

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

4.15 DCO的数据格式

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

4.16 RCO的数据格式

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

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

4.17 CP56Time2a/CP24Time2a/CP16Time2a的数据格式

字节序号描述
byte0Milliseconds(D7–D0)
byte1Milliseconds(D15–D8)
byte2IV(D7) 预留(D6) Minutes(D5–D0)
byte3SU(D7) 预留(D6-D5) Hours(D4–D0) SU = 夏令时,0 = 标准时间, 1 = 夏令时
byte4DayOfWeek(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的数据格式

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

4.21 QPA的数据格式

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

4.22 QOC的数据格式

和SCO & DCO & RCO 完全一致。

4.23 QOS的数据格式

bit7bit6~bit0
同于DCO0: 默认 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

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

更多推荐