1 IEC104结构
APDU(Application Protocol Data Unit,应用协议数据单元)
APCI(Application Protocol Control Information,应用协议控制信息)
ASDU(Application Service Data Unit,应用服务数据单元)
整个APDU的最大长度是255字节。
APDU = APCI 或者 APDU = APCI + ASDU
第一个字节:启动字符固定16进制数68H,十进制为104(正好代表104规约吧),二进制为:0110 1000。
第二个字节:APDU长度,注意APDU长度并不包括1字节的启动字符和1字节的APDU长度本身,而由于只有1字节代表数据长度,其最大值为255(2^8 - 1),所以最大值为255 - 2 = 253,又由于APCI除了这两个字节外还包括了4个字节的控制域(1~4),那么剩下的ASDU(可选的应用服务数据单元)长度为253 - 4 = 249字节。
在协议中的第二个字节会记录本APDU的长度,但是这个记录的长度数是除去前面两个字节之外的长度数。
2 APCI结构
APCI(应用控制信息,类似于帧头),由一个1 byte 的起始字节0x68 + 1 byte ADPU的长度 + 4 个1 byte控制位域(CF)组成。
2.1 控制域
控制域(Control Field, CF)
控制域主要是有两个功能:
报文的类型(I帧报文、U帧报文或者S帧报文)
记录收发报文的个数
2.2 IEC104报文帧的分类
四个控制域,每个控制域一个字节,一共8位。
第一个控制域的最低2位,确定了帧的格式。
最后一个bit为0,表示I帧。
最后一个bit为1, 倒数第二个bit为0,表示S帧。
最后一个bit为1,倒数第二个bit为1,表示U帧。
IEC104协议的帧格式有三种(I帧、U帧、S帧)
I帧为信息帧,用于传输数据,长度大于6个字节,为长帧;
S帧为确认帧,用于确认接收的I帧,长度为6个字节,为短帧;
U帧为控制帧,用于控制启动/停止/测试,长度为6个字节,为短帧;
2.3 报文I帧
编号的信息传输格式,主要用于传输应用数据,并捎带确认对方的发送。
I帧的APDU总是包含ASDU。
比如:发送计数为 TxCounter 接收计数为RxCounter
控制域1 = TxCounter & 0xFE
控制域2 = (TxCounter >> 8) & 0xFF
控制域3 = RxCounter & 0xFE
控制域4 = (RxCounter >> 8) & 0xFF
两个15位的序号数字,第一个控制域和第二个控制域,低位在前,高位在后,组成16位整数,再扣掉最后一位固定的0,是发送序列号。类似的,第三个控制域和第四个控制域,是接收序列号。
序列号从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, 如下图所示:
2.4 报文S帧
编号的监视功能格式,用于对I格式报文序号确认,不传送信息。固定6字节。
S格式报文
下行:68 04 01 00 10 00【接收序列号为8】
S帧报文的发送序列号都为0
S帧只用于APCI中(意思就是S帧的apdu报文只会有apci不会存在asdu),不能用于传输信息,只用给对方信息的确认,比如子站发送8条报文,结束后主站就会给子站发送一个确认帧(S帧),告诉子站我收到了8条报文。
比如:接收计数为RxCounter
控制域1 = 0x01
控制域2 = 0x00
控制域3 = RxCounter & 0xFE
控制域4 = (RxCounter >> 8) & 0xFF
一般作为一个/多个iFrame的Ack , 固定APDU长度。
S帧只有APCI, 没有ASDU。
在iFrame只是单向情况下, S帧的APDUs必须被发送出去,当相应的iFrame超时,溢出,或者到达iFrame接收的最大允许数量。
S帧只有接收序列号,没有发送序列号。
2.5 报文U帧
不编号的控制功能格式,主要用于传输链路控制命令。固定6字节。
(1)启动数据传输(STARTDT)
下行:68 04 07 00 00 00(开启命令报文)
上行:68 04 0B 00 00 00(开启确认报文)
(2)测试链路(TESTFR)
下行:68 04 43 00 00 00(测试命令报文)
上行:68 04 83 00 00 00(测试确认报文)
(3)停止数据传输(STOPDT)
下行:68 04 13 00 00 00(停止命令报文)
上行:68 04 23 00 00 00(停止确认报文)
U帧被用于有序的控制功能, 固定APDU长度
U帧的APDU只有一个APCI,没有ASDU。
其功能包括TESTFR(测试帧), STOPDT(停止数据传输) or STARTDT(开启数据传输,它们可以同时被激活。U帧只用于控制,并且只存在APCI中(意思就是U帧的apdu报文只会有apci不会存在asdu);
测试、停止和开启在一个U帧报文中只可能存在其中的一种;
其中控制域1的二进制值,如下图所示:
U帧只有第一个控制域的高6位有效,用来表示对应的控制指令。一般都是先发送生效也叫激活命令,然后回复确认命令。
U帧用于STARTDT(开启数据传输),STOPDT(关闭数据传输)和TESTFR(测试帧)的激活&确认机制。
STARTDT和STOPDT 用于client(master,也称控制站点)去控制Server(Slave,也称被控制站点)去开启/关闭数据传输;
当连接建立时,用户数据传输是没有被使能的(默认是处于STOPDT状态的),在这种状态下,客户端通过这个连接是不能发送仍何用户数据的(U帧是可以发送的)。客户端必须发送一个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 就可以启动这个测试进程。
3 ASDU结构
ASDU包含实际的应用层数据和相关的控制信息。报文长度最少占6字节。
类型标识符Type Id:固定一个字节。
可变结构限定符VSQ:固定一个字节。
传输原因COT:一个字节或两个字节,默认两个字节。两个字节的话,包含原始地址OA。
公共地址CA:一个字节或两个字节,默认两个字节。
信息对象地址IOA:一个字节,两个字节或三个字节。默认三个字节。
ASDU包含两个主要的段:数据单元识别符(长度固定为6Byte)和数据段。
数据段由一个或者多个信息对象构成。
数据单元识别符定义了数据的类型,提供数据标识的寻址,包含额外的信息,如传输原因等。
每一个ASDU可以传输最大127个信息对象。
ASDU的结构如下:
3.1 类型标识符
类型标识符(Type Identifier, TI)
Type identification (TypeID, 1 byte)
一个apdu中信息体中的所有数据的类型都是一致的,类型标识就是对数据类型的解释。
一个字节,类型有单点信息、标度化测量值等,每种类型对应的信息对象所占用的字节个数不一样。
标识 ASDU 的类型,指示所传输的数据或命令的种类。
TypeID 的值,0不可用,1~127用于标准的IEC101协议定义。128~135 用于消息路由,135~255为特殊使用。
对于标准的IEC101协议,有58个类型被定义,其定义如下:
ASDU类型标识符见第4章。
3.2 可变结构限定符
可变结构限定符(Variable Structure Qualifier, VSQ)
SQ (Structure Qualifier) bit
指示 ASDU 中信息对象的数量以及相关的属性。
一个字节,其中最高位表示位为1表示信息对象的地址连续,只有第一个信息对象有地址,其他对象的地址就是累加1。最高位为0,就表示每个信息对象地址不连续,需要表示出来,除去最高位后剩下的就是信息对象的个数。
SQ 位域指定了信息对象&信息元素如何被编址。
3.2.1 最高位为0
SQ=0 (一系列的信息对象):
单个/多个信息元素的寻址如下图所示。
ASDU 可能由一个或者多个相同类型的信息对象组成,这个信息对象的长度被变码成二进制,并被定义在Number of Objects 位域。
SQ=0 表示了一系列的信息对象,这些信息对象都自己的地址,数据单元识别符中用一个7bit 的数据表示信息对象的个数。其如下图所示。因此它们可以装载多达127个信息对象。
下图的 Number of objects = N 这个位置是7位,因为是1个字节除掉了首位0,值最大为127,表示信息对象的数量。
每一个object都有Information object address,也就是信息对象都有自己的地址。
3.2.2 最高位为1
SQ=1 (仅仅只有一个信息对象)
编址一种信息对象的单个或者多个信息元素。
一系列相同的信息对象(例如,相同格式的测量值)被通过information object address 位域寻址。信息对象的地址就是第一个信息元素的地址。信息元素根据不同的偏移被寻址。这个信息元素的长度被变码成二进制,并被定义在Number of Objects 位域。在这种情况,该ASDU只有一个信息对象,信息对象由一系列的信息元素组成。
当SQ=1时,ASDU只有一个信息对象, 这个对象包含了一系列的信息元素。仅仅只有一个信息对象地址,这个信息对象的地址就是第一个信息元素的地址。
下面的Number of elements = N 这个位置是7位,因为1个字节除掉首位1,值最大为127,表示同一种信息对象最多可以有127个元素。
只有第一个object有Information object address,后面的对象的地址依次累加1。
Number of objects/elements
范围为0~127
0 表示没有包含信息对象
1~127 表示信息对象/信息元素的个数
3.3 传输原因
传输原因(Cause of Transmission, COT)
描述数据传输的原因,如周期性传输、背景扫描、响应命令等。一个字节。
3.3.1 测试模式
第1位是T (test) bit
只用于测试,不会控制处理器&更改系统状态
T=0 (非测试模式), T=1 (测试模式)
3.3.2 积极/消极
P/N (positive/negative) bit
积极/消极的激活确认。
当使用控制命令时,这个位域是有意义的。该位域通常表示控制命令是否被成功执行。P=0表示肯定确认,P=1表示否定确认。 非控制命令,这个位域总是置0。
3.3.3 传输原因
Cause of transmission (COT)
COT 用于控制通信种的消息路由,该消息路由会把ASDU路由到正确的程序&任务。控制方向的ASDU会相应的服务确认。
COT 是一个6位码, 它被用于描述目标栈点的信息。
0 没有被定义, 1~47用于标准定义。48-63 为特殊目的使用。
3.4 原始地址
原始地址(Originator Address, ORG)
可选,一般默认为0。一个字节。
Originator Address (ORG)
这个是可选的,它为控制栈点提供了一种明确识别自己的方式。当系统中只有一个控制栈点时,是没有必要的。但多个控制栈点,或者一些栈点是双栈模式是,是有用的。在这种情况下,始发方地址可用于将命令确认引导回特定的控制站而不是整个系统
3.5 公共地址
公共地址(Common Address of ASDU)
表示发送或接收设备的地址。两个字节。
ASDU Address Field (Common Address of ASDU, COA),
该地址称为公共地址,是因为它与包含在ASDU内的所有对象相关联。其经常被解释为栈点地址。然而,它可以被构造为形成一个站点/扇区地址,其中各个站点由多个逻辑单元构成。
COA 总是一个或者两个字节的长度。
全局地址也叫做广播地址,它会发送给所有的栈点。控制方向上的广播类ASDU,必须要要被回应,回应是监控方向上的,且必须带上自己的栈点地址。
0不被用, 1~65534 被定义为站点地址。 65535 被定义为广播地址。
当相同功能的应用被启动时,使用广播地址。它仅限于以下ASDU:
TypeID=100 (询问命令): 在公共时间使用特定系统数据快照进行回复
TypeID=101 (反询问命令): 在公共时间冻结总计
TypeID=103 (时钟同步命令): 同步时钟到通用时间。
TypeID=105 (复位进程命令): 同时复位
3.6 信息对象
信息对象(Information Object)
包含实际的数据或命令,包括信息对象地址和数据元素等。
信息对象的个数根据可变结构限定符的低7位来决定,每个信息对象都有地址,3个字节。如果是信息对象地址是连续的,只需要表示第一个信息对象地址即可,不连续则每个信息对象地址都需要表示。
信息对象地址(Information object address, IOA)
ASDU在其结构中传输信息对象,每一个信息对象都被信息对象地址(IOA)编址。IOA用以识别站点内定义的数据。IEC104中,信息对象地址(IOA)的长度为3byte。在控制方向上,该地址为目标地址,监控方向上,该地址为源地址。
通常情况下,IOA 的地址范围被限制到最大65535(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)。
4 ASDU类型&描述
4.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: 没有有质量描述副的归一化值
信息对象格式描述了信息对象由那些信息元素组成。
4.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才可以起作用,否则,命令无法起作用。
4.3 监视方向上的系统信息
类型标识 | 描述 | 引用 | 信息对象格式 | 合法的COT |
70 | 初始化结束 | M_EI_NA_1 | COI | 4 |
71~99 | 为将来的兼容定义保留 |
4.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 | 为将来的兼容定义保留 |
4.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 | 为将来的兼容定义保留 |
参数都是控制方向上的,和监控方向的对象相比,其值发生变化时,不会上报,只有总召唤时,可以上报给数据的值。
4.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 |
5 信息元素详解
见这个链接:https://blog.csdn.net/changqing1990/article/details/134327980
6 服务端配置
IEC104服务端通道参数配置需要首先配置通道名称、连接个数和服务端口。
- 通道名称:字符串类型,可包含中文。
- 连接个数:u64类型,用正整数表示,指TCP服务端建立的通道数量。
- 服务端口:u64类型,用正整数表示,需设置为未占用端口。
- 遥信数据类型:u64类型,可取1、3、5、20、30、31、32。指本服务端的遥信类型标识的编号,它的数值与104规约的类型标识一一对应,具体对应关系见表1。
- 遥测数据类型:u64类型,可取7、9、11、13、15、21、33、34、35、36、37,指本服务端的遥信类型标识的编号,它的数值与104规约的类型标识一一对应,具体对应关系见表1。
- 是否为主站:布尔类型,TRUE或者FALSE。如果是标准104协议(服务端从站),这里需要配置为FALSE。对于反向非标准104协议(服务端主站),这里需要配置为TRUE,在此情况下,若配置了多个通道,则只取第一个通道。
IEC104服务端可以建立多个通道(标准104协议),对于每个通道,需要配置如下信息:
- 连接名称:字符串类型。
- 测点个数:u64类型,用正整数表示这个通道中测点的个数。
- 客户端IP:字符串类型,格式为IPv4地址格式。
- 客户端端口:u64类型,用正整数表示。
- 通道状态点号:u64类型,用正整数表示。
- 公共地址:u64类型,用正整数表示。
- 公共地址字节数:u64类型,用正整数表示。
- 传输原因字节数:u64类型,用正整数表示。
- 信息体地址字节数:u64类型,用正整数表示,
- T1超时(ms):u64类型,用正整数表示。默认值15000。
- T2超时(ms):u64类型,用正整数表示。默认值10000。
- T3超时(ms):u64类型,用正整数表示。
- k:u64类型,最大发送报文参数。
- w:u64类型,最大接收报文参数。
- 控制方向是否带时标:布尔类型,TRUE或者FALSE。
- 总召时间间隔(ms):u64类型,服务端不设置。
- 是否为主站:布尔类型,TRUE或者FALSE。如果是标准104协议(服务端从站),这里需要配置为FALSE。对于反向非标准104协议(服务端主站),这里需要配置为TRUE。
- 点度量总召时间间隔(ms):u64类型,服务端不设置。
7 客户端配置
IEC104客户端通道参数配置与IEC104服务端时的情况基本相同,只是不需要设置通道名称、连接个数和服务端口。另外,客户端IP和客户端端口改为服务端IP和服务端端口。TCP客户端配置中只有一个通道。
- 连接名称:字符串类型。
- 测点个数:u64类型,用正整数表示这个通道中测点的个数。
- 服务端IP:字符串类型,格式为IPv4地址格式。
- 服务端端口:u64类型,用正整数表示。
- 通道状态点号:u64类型,用正整数表示。
- 公共地址:u64类型,用正整数表示。
- 公共地址字节数:u64类型,用正整数表示。
- 传输原因字节数:u64类型,用正整数表示。
- 信息体地址字节数:u64类型,用正整数表示,
- T1超时(ms):u64类型,用正整数表示。默认值15000。
- T2超时(ms):u64类型,用正整数表示。默认值10000。
- T3超时(ms):u64类型,用正整数表示。
- k:u64类型,最大发送报文参数。
- w:u64类型,最大接收报文参数。
- 控制方向是否带时标:布尔类型,TRUE或者FALSE。
- 总召时间间隔(ms):u64类型,可空缺,空缺代表不需要定时总召。
- 是否为主站:布尔类型,只能写TRUE。104客户端暂时只支持主站,即标准104协议,故此处配置只能为TRUE。
- 点度量总召时间间隔(ms):u64类型,可空缺,空缺代表不需要定时总召。
8. IEC 104协议的主要功能
8.1 遥信(状态信息的传输)
遥信是指将远程设备的状态信息(如开关状态、告警信号)通过通信网络传送到控制中心,以便监视和记录。
应用场景:
开关状态监视:实时监测断路器、隔离开关等设备的合分状态。
故障报警:当设备出现故障或异常时,立即上报告警信息。
特点:
及时性:状态变化需要及时上报,便于控制中心快速做出响应。
可靠性:信息传输必须准确无误,避免误报和漏报。
信息类型:
单点信息(SPS):表示单个状态量,如开/关。
双点信息(DPS):表示设备具有两种互斥的状态,如合位、分位、异常。
8.2 遥测(测量值的传输)
遥测是指将远程设备的运行数据(如电压、电流、功率等测量值)通过通信网络传送到控制中心,用于监测和分析。
应用场景:
电参量监测:实时获取电压、电流、有功功率、无功功率、频率等关键参数。
环境参数监测:获取设备环境的温度、湿度、压力等数据。
特点:
连续性:需要持续、定期地传输数据,形成时间序列。
准确性:测量数据需满足一定的精度要求,以保证分析的可靠性。
数据类型:
模拟量(测量值):连续变化的物理量,通常以浮点数或定点数形式传输。
计数器值:如电能表读数,用于计量和结算。
8.3 遥调(远方参数的调整)
遥调是指控制中心对远程设备的运行参数进行调整,如改变设定值、调节运行模式等。
应用场景:
电压调节:调整变压器的分接头位置,改变输出电压。
无功功率补偿:调节电容器组的投入或切除,优化电网功率因数。
频率控制:通过调整发电机的出力,维持电网频率稳定。
特点:
精确性:参数调整需要精确到一定的数值范围。
安全性:参数调整可能影响电网运行,需要严格的审批和确认流程。
实现方式:
设定值下发:控制中心下发新的参数设定值,设备接收后进行调整。
参数查询:可以远程读取设备当前的参数设定,以便做出合理调整。
8.4 遥控(控制命令的下发)
遥控是指从控制中心(如调度中心或主站)通过通信网络向远程设备(如变电站的开关设备)发送控制命令,以实现对设备的远程操作。
应用场景:
断路器合闸/分闸:远程控制断路器的开启或关闭,调节电力线路的通断。
设备启停:远程启动或停止发电机、变压器等大型设备。
特点:
安全性高:为了防止误操作,通常采用选择-执行(Select-Before-Operate)的两步控制方式。
实时性要求高:需要及时响应控制命令,以保障电网的安全稳定运行。
实现方式:
选择命令:先发送选择命令,确认目标设备和操作类型。
执行命令:收到设备确认后,再发送执行命令,完成实际操作。
确认机制:设备执行后反馈执行结果,供控制中心确认。