IEC60875-5-104 规约介绍 和报文分析     国电南瑞 谈苏伟
概论 必读文件   《中华人民共和国电力行业标准》 idtIEC60870-5-104 : 2002 技术背景 适应和引导电力系统调度自动化的发展,规范调度自动化及远动设备的技术性能 IEC104 应用层与 IEC101 完全相同,是 101 的网络化访问
重点内容 IEC104 规约结构 通讯特点-报文重传机制,端口号 工程实现要点 平衡传输方式典型报文序列
规约结构( 1 ) -  模型 101 的应用层  + TCP/IP 提供的传输功能 物理层 ISO 参考模型   链路层 网络层 (IP) 传输层 (TCP) 会话层 表示层 应用层 ( 101 ) socket app
规约结构( 2 ) -  适用网络 局域网 (两层交换机连接的单网段、三层交换机或路由器连接的多网段) 广域网  (X.25 、 FR (帧中继) 、 ATM ( 异步传输模式)  、 ISDN ( 综合服务数据网络)   ) 基于 TCP/IP 的面向连接的网络服务。 IP 网络本身的数据完整和安全性机制。 可采取的其他安全措施:客户端限制访问;路由表限制访问;数据软硬件加密 。
规约结构( 3 ) - APCI 控制信息 远动配套标准的 APDU 定义 APDU 长度 APCI APDU ASDU IEC101 和 104 定义的 ASDU 控制域八位位组 4 控制域八位位组 3 控制域八位位组 2 控制域八位位组 1 APDU 长度(最大, 253 ) 启动字符  68 H
新概念 APCI 控制信息 可计数的信息传输功能- I  格式 可计数的确认功能  - S 格式 启动,停止,测试功能- U 格式   序列号记数,防止报文丢失,相对于 101 的 FCB
规约结构( 4 ) -  I  格式 信息传输格式类型(   I 格式)的控制域 控制域第一个八位位组的第一位比特   = 0  定义了 I  格式,   I 格式的 APDU 常常包含一个 ASDU.   八位位组 1 八位位组 2 八位位组 3 八位位组 4
数 据 单 元 标 识 信 息 体 I 格式应用服务数据单元( ASDU ) 类型标识 一个字节 可变结构限定词 一个字节 传送原因 二个字节 公共地址 二个字节 信息体地址 三个字节 信息体元素 元素定义 信息体时标 7 个字节 … .. … .     信息体地址 n 三个字节 信息体元素 n 元素定义 信息体时标 n 7 个字节
  表   1 ---  在监视方向的过程信息 类型标识  :=UI8[1..8]<0..44> <0>  :=  未定义 <1>  :=  单点信息  M_SP_NA_1 <3>  :=  双点信息  M_DP_NA_1 <5>  :=  步位置信息  M_ST_NA_1 <7>  := 32 比特串  M_BO_NA_1 <9>  :=  测量值,规一化值  M_ME_NA_1 <11>  :=  测量值,标度化值  M_ME_NB_1 <13>  :=  测量值,短浮点数  M_ME_NC_1 <15>  :=  累计量  M_IT_NA_1 <20>  :=  带状态检出的成组单点信息  M_PS_NA_1 <21>  :=  不带品质描述的规一化测量值  M_ME_ND_1 <22..29>:=  保留 * <30>  :=  带时标 CP56Time2a 的单点信息  M_SP_TB_1 * <31>  :=  带时标 CP56Time2a 的双点信息  M_DP_TB_1 * <32>  :=  带时标 CP56Time2a 的步位置信息  M_ST_TB_1 * <33>  :=  带时标 CP56Time2a 的 32 比特串  M_BO_TB_1 * <34>  :=  带时标 CP56Time2a 的测量值,规一化值  M_ME_TD_1 * <35>  :=  带时标 CP56Time2a 的测量值,标度化值  M_ME_TE_1 * <36>  :=  带时标 CP56Time2a 的测量值,短浮点数  M_ME_TF_1 * <37>  :=  带时标 CP56Time2a 的累计量  M_IT_TB_1 * <38>  :=  带时标 CP56Time2a 的继电保护装置事件  M_EP_TD_1 * <39>  :=  带时标 CP56Time2a 的继电保护装置成组启动事件  M_EP_TE_1 * <40>  :=  带时标 CP56Time2a 的继电保护装置成组出口信息  M_EP_TF_1 <41..44>:=  保留 *  这些类型在 IEC60870-5-101 补充件 A1 中定义
表   2  在控制方向的过程信息 类型标识  := UI8[1..8]<45..69> CON  <45>  :=  单命令  C_SC_NA_1 CON  <46>  :=  双命令  C_DC_NA_1 CON  <47>  :=  升降命令  C_RC_NA_1 CON  <48>  :=  设点命令,规一化值  C_SE_NA_1 CON  <49>  :=  设点命令,标度化值  C_SE_NB_1 CON  <50>  :=  设点命令,短浮点数  C_SE_NC_1 CON  <51>  := 32 比特串  C_BO_NA_1 <52..57>  :=  保留 在控制方向的过程信息,带时标的 ASDU CON  <58>  :=  带时标 CP56Time2a 的单命令  C_SC_NA_1 CON  <59>  :=  带时标 CP56Time2a 的双命令  C_DC_NA_1 CON  <60>  :=  带时标 CP56Time2a 的升降命令  C_RC_NA_1 CON  <61>  :=  带时标 CP56Time2a 的设点命令,规一化值  C_SE_TA_1 CON  <62>  :=  带时标 CP56Time2a 的设点命令,标度化值  C_SE_TB_1 CON  <63>  :=  带时标 CP56Time2a 的设点命令,短浮点数  C_SE_TC_1 CON  <64>  :=  带时标 CP56Time2a 的 32 比特串  C_BO_NA_1 <65..69>  :=  保留
表   3  在监视方向的系统信息   表   4  在控制方向的系统信息   类型标识  := UI8[1..8]<70..99> <70>  :=  初始化结束  M_EI_NA_1 <71..99>  :=  保留 类型标识  := UI8[1..8]<100..109> CON  <100>  :=  总召唤命令  C_IC_NA_1 CON  <101>  :=  电能脉冲召唤命令  C_CI_NA_1 <102>  :=  读命令  C_RD_NA_1 CON  <103>  :=  时钟同步命令  C_CS_NA_1 CON  <105>  :=  复位进程命令  C_RP_NA_1 CON  <107>  :=  带时标 CP56Time2a 的测试命令  C_TS_NA_1 <108..109> :=  保留
表   5  在控制方向的参数   表   6  文件传输   注  在控制方向上具有 CON 标记的 ASDU ,在监视方向上可以传送同样的报文内容,只是传送原因会不相同,在监视方向上这些 ASDU 用作肯定或否定确认 .   类型标识  := UI8[1..8]<110..119> CON  <110>  :=  测量值参数,规一化值  P_ME_NA_1 CON  <111>  :=  测量值参数,标度化值  P_ME_NB_1 CON  <112>  :=  测量值参数,短浮点数  P_ME_NC_1 CON  <113>  :=  参数激活  P_AC_NA_1 <114..119> :=  保留 类型标识  := UI8[1..8]<120..127> <120>  :=  文件已准备好  F_FR_NA_1 <121>  :=  节已准备好  F_SR_NA_1 <122>  :=  召唤目录,选择文件,召唤文件,召唤节  F_SC_NA_1 <123>  :=  最后的节,最后的段  F_LS_NA_1 <124>  :=  确认文件,确认节  F_AF_NA_1 <125>  :=  段  F_SG_NA_1 <126>  :=  目录  F_DR_NA_1 <127>  :=  保留
传送原因 7  6  5  0 P/N :否定确认( 1 ) / 肯定确认( 0 ) T :试验( 1 ) / 未试验( 0 ) <0`63> 0:  未定义  1:  周期,循环 2 :背景扫描  3 :突发,自发 4 :初始化  5:  请求 6 :激活  7 :激活确认 8 :停止激活  9 :停止激活确认 10 :激活终止  20 :响应总召唤 T  P/N  原因
规约结构( 5 ) -  I  格式 M->R  :  680E 000000   00 64 01060001 0000000014 I ( 总召唤 ) APCI   R->M  :  680E 000002   00 64 01070001 0000000014 I ( 总召唤确认)本端接收序号等于对端发送序号+1 R->M:   6885 020002   00 01 F8140001 000100000001 0101 01000101    01000101 000101010001010101010001010101000100 0100  I ( 响应总召唤,全遥信 )   APCI   本端发送1次I格式报文,本端发送序号+1
规约结构  ( 6 ) S 格式 编号的监视功能类型( S 格式)的控制域   控制域第一个八位位组的第一位比特  = 1, 第二位比特 = 0, 定义了 S 格式
规约结构  ( 7 ) S 格式 R->M (SOE) :  681F 100002   00 1E 01030001 007900000110 0124   13d20a02 I (主动上报 SOE )发送序号为 10 ,接收序号为 2 . M->R:   6804 010012 00  S (确认主动上报 SOE ) APCI 01   0012 00  01 S 格式  确认序号为 12 本端发送序号不变 正常情况下对端报文中的 发送序号+1 =本端本次报文中的 接收序号
规约结构  (  8  )  U格式 未编号的控制功能类型(U格式)的控制域 控制域第一个八位位组的第一位比特  = 1  并且第二位比特  =1  定义了 U 格式
规约结构  (  9  )  U格式 M->R   : 6804 07 0000 00   U  STARTDT 激活(生效) R->M : 6804 0B 0000 00 U  STARTDT 确认 本端发送U格式,本端发送序号保持不变
通讯特点(1)防止报文丢失和报文重复传送   I ( a, b) a= 发送序号 b= 接收序号
通讯特点(2)防止报文丢失和报文重复传送 S ( b ) b= 接收序号
通讯特点(3)防止报文丢失和报文重复传送
通讯特点(4)防止报文丢失和报文重复传送
通讯特点(5)防止报文丢失和报文重复传送
通讯特点(6)防止报文丢失和报文重复传送
通讯特点( 7 )防止报文丢失和报文重复传送 开始数据传送过程
通讯特点(8)和连接有关的 4 个超时时间 t0,t1,t2,t3 t0 : TCP 连接建立的超时时间,即 RTU (服务器)端进入等待连接的状态后,若超过此时间,主站(客户)端还没有 Connect() 过来就主动退出等待连接的状态;规约推荐的缺省值为 30 秒。 t1 : RTU (服务器)端启动 U 格式测试过程后等待 U 格式测试应答的超时时间,若超过此时间还没有收到主站(客户)端的 U 格式测试应答,就主动关闭 TCP 连接;规约推荐的缺省值为 15 秒。 t2 : RTU (服务器)端以突发的传送原因向主站(客户)端上送了变化信息或以激活结束的传送原因向主站(客户)端上送了总召唤 / 电度召唤结束后,等待主站(客户)端回 S 格式的超时时间,若超过此时间还没有收到,就主动关闭 TCP 连接;规约推荐的缺省值为 10 秒。 t3 : 当 RTU (服务器)端和主站(客户)端之间没有实际的数据交换时,任何一端启动 U 格式测试过程的最大间隔时间;规约推荐的缺省值为 20 秒。
通讯特点(9)端口号 每一个 TCP 地址由一个 IP 地址和一个端口号组成。 每个连接到 TCP-LAN 上的设备都有自己特定的 IP 地址,而为整个系统定义的端口号却是一样的。(见 RFC1700 )。本标准要求,端口号 2404 由 IANA (互联网数字分配授权)定义和确认。
通讯特点( 10 )未被确认的  I  格 APDU   最大数目  k  和最迟确认数目  w   k 表示在某一特定的时间内未被 DTE 确认(即不被承认)的连续编号的 I 格式 APDU 的最大数目。每一 I 格式帧都按顺序编好号,从 0 到模数 n-1 ,这里的“模数”是指序列号对参数 n 的模数。以 n 为模的操作中 k 值永远不会超过 n -1 。 ( 见  ITU-T X.25 推荐的 2.3.2.2.1 和 2.4.8.6) 。 当未确认 I 格式 APDU 达到 k 个 时,发送方停止传送。 接收方收到 w 个 I 格式 APDU 后确认。 k 值的最大范围: 1 到 32767 ( 2 的十五次方 -1 ) APDU ,精确到一个  APDU. w 值的最大范围: 1 到 32767 APDU ,精确到一个 APDU 。 ( 推荐: w 不应超过三分之二的 k ) 。 规约推荐: k 值为 12 , w 值为 8
规约特点( 11 ) 和 IEC 60870-5-101 的比较 采用 IEC 60870-5-101 的平衡传输模式,通过 TCP/IP 协议传输远动信息;应用层和 101 完全相同,是 101 的网络化访问。 保留 1 个启动字符, 1 个帧长 L ;删除第 2 个启动字符,第 2 个帧长 L ,链路控制域(C),链路地址域(A),校验和结束字符;增加传输层所需要的 4 个控制字节,可以实现启动(建立关联),停止(结束关联),测试等控制功能( U 格式),可计数的监视功能( S 格式)和可计数的信息传输功能( I 格式)。 由于网络传输延时不确定和网络可能发生暂时性故障,采用从毫秒到年的 7 个字节时标。 在应用功能方面,除了 IEC 101 的召唤 1 级用户数据,召唤 2 级用户数据功能(链路层功能)不能使用外,其他应用功能全部保留。
IEC104 和 IEC101 可变帧长比较 IEC104 IEC101 用户数据 控制域八位位组 4 控制域八位位组 3 控制域八位位组 2 控制域八位位组 1 APDU 长度(最大, 253 ) 启动字符  68 H 用户数据 帧校验和( CS ) 结束字符( 16 H ) 链路地址域( A ) 控制域( C ) 启动字符  68 H APDU 长度重复 APDU 长度 启动字符  68 H
IEC104 和 IEC101 固定帧长比较 IEC104 IEC101 控制域八位位组 4 控制域八位位组 3 控制域八位位组 2 控制域八位位组 1 APDU 长度(最大, 253 ) 启动字符  68 H 启动字符  10H 帧校验和( CS ) 结束字符( 16 H ) 链路地址域( A ) 控制域( C ) APDU 长度
工程实现要点(1) 主站和 RTU 之间使用 IEC 60870-5-104 规约进行通信时采用网络传输层的可靠传输协议 TCP ;主站(控制侧)为 TCP 客户端, RTU (被控制端)为 TCP 服务器端,即主站主动进行 TCP 连接,而 RTU 被动响应 TCP 连接;双方都使用固定的 TCP 端口号 2404 ,该端口号已被 IANA ( Internet Assigned Number Authority )所确认。服务器端和客户端都需要知道对方的 IP 地址,作为连接判断的依据。 国标  104 规约中传送原因占有 2 个字节,前低后高低字节和 IEC 60870-5-101 中的完全相同,高字节固定为 0 。 国标  104 规约中公共地址占用 2 个字节,前低后高,而在 国标 101 中公共地址只占用 1 个字节。 国标 104 规约中信息体地址占用 3 个字节,前低后高,而在国标 101 中信息体地址只占用 2 个地址。
工程实现要点(2) 国标 104 和国标 101 一样,对各类量的信息体地址范围做了划定,如: 当要传送的信息量很大时,需要使用多个虚拟 RTU 。而 IEC 60870-5-104 规约中由于采用了 3 个字节的信息体地址且没有划定各类量的信息体地址范围,所以 1 个 RTU 的容量就很大,在具体工程中再临时确定各类量的起始信息体地址和数量。 主站(客户)端和 RTU (服务器)端采用标准的 TCP/IP 客户 - 服务器模式建立 TCP 连接,即主站(客户)端按照 Socket()->Connect() 的顺序进行, RTU (服务器)端按 Socket()->Bind()->Listen()->Accept() 的顺序进行。  个数 结束地址 起始地址 数据类型 512 6200  H 6001  H 遥控 4096 5000  H 4001  H 遥测 4096 1000  H 1  H 遥信
工程实现要点(3) 对时过程的源码 主站(客户)端下发: 68 14 ( APDU 长度)控制字节 1 控制字节 2 控制字节 3 控制字节 4  67 ( ASDU ) 1 (信息体个数) 06 00 (传送原因)公共地址低 公共地址高  00 00 00  ( 信息体地址 ) 毫秒低 毫秒高 分钟 小时 日期 月份 年份 RTU (服务器)端应答:和主站(客户)端下发基本相同,仅把传送原因改为 07 M->R   : 68 14 02 00 08 00  67  01  06 00  01 00  00 00 00   01 05  10 09 0a 03 02  R->M   : 68 14 08 00 04 00  67  01  07 00  01 00  00 00 00   01 05  10 09 0a 03 02 0x501 =  1 秒 281 毫秒 0x10 = 16 分 0x09 = 9 时 0x0a =  10 日 0x03 = 3 月 0x02 = 2002 年
工程实现要点(4) 总召唤过程的源码 主站(客户)端下发: 68 0e ( APDU 长度)控制字节 1 控制字节 2 控制字节 3 控制字节 4  64 ( ASDU ) 1 (信息体个数) 06 00 (传送原因) 公共地址低 公共地址高   00 00 00  (信息体地址) 14 M->R  :  680E000000 00 64 01 0600 01   00 000000 14 I (总召唤) RTU (服务器)端应答 ( 很明显窗口尺寸 >1) : R->M  :  680E000002 00 64 01 0700 01 00 000000 14 I (总召唤确认)
工程实现要点(5) 上送全遥信(可能多帧): 68 APDU 长度 控制字节 1  控制字节 2  控制字节 3  控制字节 4  01 ( ASDU )信息体个数( bit7=1 ,表示连续信息体地址 ) 14  00 (传送原因)公共地址低 公共地址高  3 字节的第 1 点遥信信息体地址 第 1 点遥信的品质描述和值 …  (单点信息) R->M   : 6885020002 00 01 F8 1400 01 00 010000 00 01 0101   01000101 000101010001 010101010001 010101000100 0100   01010101 000101010001 010101010101 010100000000 0000   00010100 010101010100 010101010100 010101010101 0101 01010101 000101010101 000000010101 010100010101 0101   01010100 000000010101 010101000101 00010101 I格式(响应总召唤,全遥信) SIQ := CP8{ SPI,RES,BL,SB,NT,IV }  0x8F:120 SPI:  开 IV  :有效
工程实现要点(6) 上送全遥测(可能多帧): 68 APDU 长度 控制字节 1  控制字节 2  控制字节 3  控制字节 4  15 ( ASDU ,不带品质码的规一化值)信息体个数( bit7=1 ,表示连续信息体地址 ) 14  00 (传送原因)公共地址低 公共地址高  3 字节的第 1 点遥测信息体地址 第 1 点遥测的 2 字节不带品质描述的规一化值…… R->M   : 6885060002 00 15 BC 1400 01 00 014000 6204  6204  62046404 640400000000 99FFA405A700 00000000AB37 130A 00000000 680168013D00 6801FFFF0000 DA1CDE010000 0000 69006900 000067006700 FFFFA11BA903 000000000A00 0A00 B6050000 FFFFFFFFFFFF FFFFFFFFFFFF FFFFFFFF5904 FFFF 5C045704 570457040000 000000000000 00000000 I (响应总召唤,全遥测) 0xBC: 60 NVA  : =F16]1..16]<-1..+1-2-15>  没有定义测量值的分辩率,如果测量值的分辩率比 LSB 的最小单位粗,则这些 LSB 位设置为零。
工程实现要点(7) 总召唤结束: 68 0e ( APDU 长度)控制字节 1  控制字节 2  控制字节 3  控制字节 4  64 ( ASDU ) 1 (信息体个数) 0a 00 (传送原因) 公共地址低 公共地址高   00 00 00   (信息体地址) 14 R->M   : 680E0E0002 00 64 01 0A00 01   00 000000 14 I (响应总召唤结束)
工程实现要点(8) 单点遥控选择过程 主站(客户)端下发: 68 0e ( APDU 长度)控制字节 1 控制字节 2 控制字节 3 控制字节 4  2d ( ASDU ) 1 (信息体个数) 06 00 (传送原因)公共地址低 公共地址高 被控点的 3 字节信息体地址  1 字节的遥控性质 其中遥控性质字节的各位含义: bit7=1 ,选择; =0, 执行 bit1 bit0 =01, 合闸; =00, 分闸(单遥)   =02, 合闸; =01, 分闸(双遥) bit 65432=1 ,短脉冲; =2 ,长脉冲; =3 ,持续; M->R : 68 0e 04 00 0a 00  2d  01  06 00  01 00 01 60 00  84 0x84 :  选择、分闸、短脉冲 RTU (服务器)端进行单点遥控选择应答:和主站(客户)端下发基本相同,若是确认,把传送原因改为 07 ;若是否认,把传送原因改为 47 (传送原因低字节的 bit6=1 表示否定确认) R->M : 68 0e 0a 00 06 00  2d  01  07 00  01 00 01 60 00  84 0x84 :  选择、分闸、短脉冲
工程实现要点(9) 主站(客户)端下发单点遥控执行:和选择报文基本相同,仅遥控性质字节的 bit7=0 M->R :  68 0e 06 00 0c 00 2d 01  06 00  01 00 01 60 00  04 0x04 :  执行、分闸、短脉冲 RTU (服务器)端进行单点遥控执行应答:和主站(客户)端下发基本相同,若是确认,把传送原因改为 07 ;若是否认,把传送原因改为 47 R->M :  68 0e 0c 00 08 00 2d 01  07 00  01 00 01 60 00  04 0x04 :  执行、分闸、短脉冲 R->M :  68 0e 0c 00 08 00 2d 01  2f 00  01 00 01 60 00  04 0x2f :  未知的信息对象地址 0x04 :  执行、分闸、短脉冲
工程实现要点( 10 ) 。 关于主动上送 由于 IEC 60870-5-104 采用平衡传输方式,当主站(客户)端没有进行数据召唤,而 RTU (服务器)端中有变化数据时, RTU 要主动上送变化数据。 主动上送变化遥信的报文源码(可能多帧) 68 APDU 长度 控制字节 1  控制字节 2  控制字节 3  控制字节 4  1E ( ASDU )信息体个数( bit7=0 ,表示每个变化点前自带信息体地址) 03 00 (传送原因) 公共地址低 公共地址高  3 字节的第 1 个变化遥信点信息体地址 第 1 个变化遥信点的品质描述和值 第 1 个变化遥信点的 7 字节时标……  ( 带时标单点信息) 遥信都按单遥处理 主动上送变化遥测的报文源码(可能多帧) 68 APDU 长度 控制字节 1  控制字节 2  控制字节 3  控制字节 4  0b ( ASDU )信息体个数( bit7=0 ,表示每个变化点前自带信息体地址) 03 00 (传送原因)公共地址低 公共地址高  3 字节的第 1 个变化遥测点信息体地址 第 1 个变化遥测点的 2 字节 标度化值  第 1 个变化遥测点的品质描述…… 。 重新启动后,序号重新开始排序
平衡传输方式典型报文序列( 1 )
平衡传输方式典型报文序列( 2 )
平衡传输方式典型报文序列( 3 )
平衡传输方式典型报文序列( 4 )
平衡传输方式典型报文序列( 5 )
谢谢

IEC104规约介绍

  • 1.
  • 2.
    概论 必读文件 《中华人民共和国电力行业标准》 idtIEC60870-5-104 : 2002 技术背景 适应和引导电力系统调度自动化的发展,规范调度自动化及远动设备的技术性能 IEC104 应用层与 IEC101 完全相同,是 101 的网络化访问
  • 3.
    重点内容 IEC104 规约结构通讯特点-报文重传机制,端口号 工程实现要点 平衡传输方式典型报文序列
  • 4.
    规约结构( 1 )- 模型 101 的应用层 + TCP/IP 提供的传输功能 物理层 ISO 参考模型 链路层 网络层 (IP) 传输层 (TCP) 会话层 表示层 应用层 ( 101 ) socket app
  • 5.
    规约结构( 2 )- 适用网络 局域网 (两层交换机连接的单网段、三层交换机或路由器连接的多网段) 广域网 (X.25 、 FR (帧中继) 、 ATM ( 异步传输模式) 、 ISDN ( 综合服务数据网络) ) 基于 TCP/IP 的面向连接的网络服务。 IP 网络本身的数据完整和安全性机制。 可采取的其他安全措施:客户端限制访问;路由表限制访问;数据软硬件加密 。
  • 6.
    规约结构( 3 )- APCI 控制信息 远动配套标准的 APDU 定义 APDU 长度 APCI APDU ASDU IEC101 和 104 定义的 ASDU 控制域八位位组 4 控制域八位位组 3 控制域八位位组 2 控制域八位位组 1 APDU 长度(最大, 253 ) 启动字符 68 H
  • 7.
    新概念 APCI 控制信息可计数的信息传输功能- I 格式 可计数的确认功能 - S 格式 启动,停止,测试功能- U 格式 序列号记数,防止报文丢失,相对于 101 的 FCB
  • 8.
    规约结构( 4 )- I 格式 信息传输格式类型( I 格式)的控制域 控制域第一个八位位组的第一位比特 = 0 定义了 I 格式, I 格式的 APDU 常常包含一个 ASDU. 八位位组 1 八位位组 2 八位位组 3 八位位组 4
  • 9.
    数 据 单元 标 识 信 息 体 I 格式应用服务数据单元( ASDU ) 类型标识 一个字节 可变结构限定词 一个字节 传送原因 二个字节 公共地址 二个字节 信息体地址 三个字节 信息体元素 元素定义 信息体时标 7 个字节 … .. … .     信息体地址 n 三个字节 信息体元素 n 元素定义 信息体时标 n 7 个字节
  • 10.
    1 --- 在监视方向的过程信息 类型标识 :=UI8[1..8]<0..44> <0> := 未定义 <1> := 单点信息 M_SP_NA_1 <3> := 双点信息 M_DP_NA_1 <5> := 步位置信息 M_ST_NA_1 <7> := 32 比特串 M_BO_NA_1 <9> := 测量值,规一化值 M_ME_NA_1 <11> := 测量值,标度化值 M_ME_NB_1 <13> := 测量值,短浮点数 M_ME_NC_1 <15> := 累计量 M_IT_NA_1 <20> := 带状态检出的成组单点信息 M_PS_NA_1 <21> := 不带品质描述的规一化测量值 M_ME_ND_1 <22..29>:= 保留 * <30> := 带时标 CP56Time2a 的单点信息 M_SP_TB_1 * <31> := 带时标 CP56Time2a 的双点信息 M_DP_TB_1 * <32> := 带时标 CP56Time2a 的步位置信息 M_ST_TB_1 * <33> := 带时标 CP56Time2a 的 32 比特串 M_BO_TB_1 * <34> := 带时标 CP56Time2a 的测量值,规一化值 M_ME_TD_1 * <35> := 带时标 CP56Time2a 的测量值,标度化值 M_ME_TE_1 * <36> := 带时标 CP56Time2a 的测量值,短浮点数 M_ME_TF_1 * <37> := 带时标 CP56Time2a 的累计量 M_IT_TB_1 * <38> := 带时标 CP56Time2a 的继电保护装置事件 M_EP_TD_1 * <39> := 带时标 CP56Time2a 的继电保护装置成组启动事件 M_EP_TE_1 * <40> := 带时标 CP56Time2a 的继电保护装置成组出口信息 M_EP_TF_1 <41..44>:= 保留 * 这些类型在 IEC60870-5-101 补充件 A1 中定义
  • 11.
    2 在控制方向的过程信息 类型标识 := UI8[1..8]<45..69> CON <45> := 单命令 C_SC_NA_1 CON <46> := 双命令 C_DC_NA_1 CON <47> := 升降命令 C_RC_NA_1 CON <48> := 设点命令,规一化值 C_SE_NA_1 CON <49> := 设点命令,标度化值 C_SE_NB_1 CON <50> := 设点命令,短浮点数 C_SE_NC_1 CON <51> := 32 比特串 C_BO_NA_1 <52..57> := 保留 在控制方向的过程信息,带时标的 ASDU CON <58> := 带时标 CP56Time2a 的单命令 C_SC_NA_1 CON <59> := 带时标 CP56Time2a 的双命令 C_DC_NA_1 CON <60> := 带时标 CP56Time2a 的升降命令 C_RC_NA_1 CON <61> := 带时标 CP56Time2a 的设点命令,规一化值 C_SE_TA_1 CON <62> := 带时标 CP56Time2a 的设点命令,标度化值 C_SE_TB_1 CON <63> := 带时标 CP56Time2a 的设点命令,短浮点数 C_SE_TC_1 CON <64> := 带时标 CP56Time2a 的 32 比特串 C_BO_NA_1 <65..69> := 保留
  • 12.
    3 在监视方向的系统信息   表 4 在控制方向的系统信息   类型标识 := UI8[1..8]<70..99> <70> := 初始化结束 M_EI_NA_1 <71..99> := 保留 类型标识 := UI8[1..8]<100..109> CON <100> := 总召唤命令 C_IC_NA_1 CON <101> := 电能脉冲召唤命令 C_CI_NA_1 <102> := 读命令 C_RD_NA_1 CON <103> := 时钟同步命令 C_CS_NA_1 CON <105> := 复位进程命令 C_RP_NA_1 CON <107> := 带时标 CP56Time2a 的测试命令 C_TS_NA_1 <108..109> := 保留
  • 13.
    5 在控制方向的参数   表 6 文件传输   注 在控制方向上具有 CON 标记的 ASDU ,在监视方向上可以传送同样的报文内容,只是传送原因会不相同,在监视方向上这些 ASDU 用作肯定或否定确认 .   类型标识 := UI8[1..8]<110..119> CON <110> := 测量值参数,规一化值 P_ME_NA_1 CON <111> := 测量值参数,标度化值 P_ME_NB_1 CON <112> := 测量值参数,短浮点数 P_ME_NC_1 CON <113> := 参数激活 P_AC_NA_1 <114..119> := 保留 类型标识 := UI8[1..8]<120..127> <120> := 文件已准备好 F_FR_NA_1 <121> := 节已准备好 F_SR_NA_1 <122> := 召唤目录,选择文件,召唤文件,召唤节 F_SC_NA_1 <123> := 最后的节,最后的段 F_LS_NA_1 <124> := 确认文件,确认节 F_AF_NA_1 <125> := 段 F_SG_NA_1 <126> := 目录 F_DR_NA_1 <127> := 保留
  • 14.
    传送原因 7 6 5 0 P/N :否定确认( 1 ) / 肯定确认( 0 ) T :试验( 1 ) / 未试验( 0 ) <0`63> 0:  未定义 1: 周期,循环 2 :背景扫描 3 :突发,自发 4 :初始化 5: 请求 6 :激活 7 :激活确认 8 :停止激活 9 :停止激活确认 10 :激活终止 20 :响应总召唤 T P/N 原因
  • 15.
    规约结构( 5 )- I 格式 M->R : 680E 000000 00 64 01060001 0000000014 I ( 总召唤 ) APCI R->M : 680E 000002 00 64 01070001 0000000014 I ( 总召唤确认)本端接收序号等于对端发送序号+1 R->M: 6885 020002 00 01 F8140001 000100000001 0101 01000101   01000101 000101010001010101010001010101000100 0100 I ( 响应总召唤,全遥信 ) APCI   本端发送1次I格式报文,本端发送序号+1
  • 16.
    规约结构 (6 ) S 格式 编号的监视功能类型( S 格式)的控制域 控制域第一个八位位组的第一位比特 = 1, 第二位比特 = 0, 定义了 S 格式
  • 17.
    规约结构 (7 ) S 格式 R->M (SOE) : 681F 100002 00 1E 01030001 007900000110 0124 13d20a02 I (主动上报 SOE )发送序号为 10 ,接收序号为 2 . M->R: 6804 010012 00 S (确认主动上报 SOE ) APCI 01 0012 00 01 S 格式  确认序号为 12 本端发送序号不变 正常情况下对端报文中的 发送序号+1 =本端本次报文中的 接收序号
  • 18.
    规约结构 ( 8 )  U格式 未编号的控制功能类型(U格式)的控制域 控制域第一个八位位组的第一位比特 = 1 并且第二位比特 =1 定义了 U 格式
  • 19.
    规约结构 ( 9 )  U格式 M->R : 6804 07 0000 00 U STARTDT 激活(生效) R->M : 6804 0B 0000 00 U STARTDT 确认 本端发送U格式,本端发送序号保持不变
  • 20.
    通讯特点(1)防止报文丢失和报文重复传送 I ( a, b) a= 发送序号 b= 接收序号
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
    通讯特点(8)和连接有关的 4 个超时时间t0,t1,t2,t3 t0 : TCP 连接建立的超时时间,即 RTU (服务器)端进入等待连接的状态后,若超过此时间,主站(客户)端还没有 Connect() 过来就主动退出等待连接的状态;规约推荐的缺省值为 30 秒。 t1 : RTU (服务器)端启动 U 格式测试过程后等待 U 格式测试应答的超时时间,若超过此时间还没有收到主站(客户)端的 U 格式测试应答,就主动关闭 TCP 连接;规约推荐的缺省值为 15 秒。 t2 : RTU (服务器)端以突发的传送原因向主站(客户)端上送了变化信息或以激活结束的传送原因向主站(客户)端上送了总召唤 / 电度召唤结束后,等待主站(客户)端回 S 格式的超时时间,若超过此时间还没有收到,就主动关闭 TCP 连接;规约推荐的缺省值为 10 秒。 t3 : 当 RTU (服务器)端和主站(客户)端之间没有实际的数据交换时,任何一端启动 U 格式测试过程的最大间隔时间;规约推荐的缺省值为 20 秒。
  • 28.
    通讯特点(9)端口号 每一个 TCP地址由一个 IP 地址和一个端口号组成。 每个连接到 TCP-LAN 上的设备都有自己特定的 IP 地址,而为整个系统定义的端口号却是一样的。(见 RFC1700 )。本标准要求,端口号 2404 由 IANA (互联网数字分配授权)定义和确认。
  • 29.
    通讯特点( 10 )未被确认的 I 格 APDU 最大数目 k 和最迟确认数目 w k 表示在某一特定的时间内未被 DTE 确认(即不被承认)的连续编号的 I 格式 APDU 的最大数目。每一 I 格式帧都按顺序编好号,从 0 到模数 n-1 ,这里的“模数”是指序列号对参数 n 的模数。以 n 为模的操作中 k 值永远不会超过 n -1 。 ( 见 ITU-T X.25 推荐的 2.3.2.2.1 和 2.4.8.6) 。 当未确认 I 格式 APDU 达到 k 个 时,发送方停止传送。 接收方收到 w 个 I 格式 APDU 后确认。 k 值的最大范围: 1 到 32767 ( 2 的十五次方 -1 ) APDU ,精确到一个 APDU. w 值的最大范围: 1 到 32767 APDU ,精确到一个 APDU 。 ( 推荐: w 不应超过三分之二的 k ) 。 规约推荐: k 值为 12 , w 值为 8
  • 30.
    规约特点( 11 )和 IEC 60870-5-101 的比较 采用 IEC 60870-5-101 的平衡传输模式,通过 TCP/IP 协议传输远动信息;应用层和 101 完全相同,是 101 的网络化访问。 保留 1 个启动字符, 1 个帧长 L ;删除第 2 个启动字符,第 2 个帧长 L ,链路控制域(C),链路地址域(A),校验和结束字符;增加传输层所需要的 4 个控制字节,可以实现启动(建立关联),停止(结束关联),测试等控制功能( U 格式),可计数的监视功能( S 格式)和可计数的信息传输功能( I 格式)。 由于网络传输延时不确定和网络可能发生暂时性故障,采用从毫秒到年的 7 个字节时标。 在应用功能方面,除了 IEC 101 的召唤 1 级用户数据,召唤 2 级用户数据功能(链路层功能)不能使用外,其他应用功能全部保留。
  • 31.
    IEC104 和 IEC101可变帧长比较 IEC104 IEC101 用户数据 控制域八位位组 4 控制域八位位组 3 控制域八位位组 2 控制域八位位组 1 APDU 长度(最大, 253 ) 启动字符 68 H 用户数据 帧校验和( CS ) 结束字符( 16 H ) 链路地址域( A ) 控制域( C ) 启动字符 68 H APDU 长度重复 APDU 长度 启动字符 68 H
  • 32.
    IEC104 和 IEC101固定帧长比较 IEC104 IEC101 控制域八位位组 4 控制域八位位组 3 控制域八位位组 2 控制域八位位组 1 APDU 长度(最大, 253 ) 启动字符 68 H 启动字符 10H 帧校验和( CS ) 结束字符( 16 H ) 链路地址域( A ) 控制域( C ) APDU 长度
  • 33.
    工程实现要点(1) 主站和 RTU之间使用 IEC 60870-5-104 规约进行通信时采用网络传输层的可靠传输协议 TCP ;主站(控制侧)为 TCP 客户端, RTU (被控制端)为 TCP 服务器端,即主站主动进行 TCP 连接,而 RTU 被动响应 TCP 连接;双方都使用固定的 TCP 端口号 2404 ,该端口号已被 IANA ( Internet Assigned Number Authority )所确认。服务器端和客户端都需要知道对方的 IP 地址,作为连接判断的依据。 国标 104 规约中传送原因占有 2 个字节,前低后高低字节和 IEC 60870-5-101 中的完全相同,高字节固定为 0 。 国标 104 规约中公共地址占用 2 个字节,前低后高,而在 国标 101 中公共地址只占用 1 个字节。 国标 104 规约中信息体地址占用 3 个字节,前低后高,而在国标 101 中信息体地址只占用 2 个地址。
  • 34.
    工程实现要点(2) 国标 104和国标 101 一样,对各类量的信息体地址范围做了划定,如: 当要传送的信息量很大时,需要使用多个虚拟 RTU 。而 IEC 60870-5-104 规约中由于采用了 3 个字节的信息体地址且没有划定各类量的信息体地址范围,所以 1 个 RTU 的容量就很大,在具体工程中再临时确定各类量的起始信息体地址和数量。 主站(客户)端和 RTU (服务器)端采用标准的 TCP/IP 客户 - 服务器模式建立 TCP 连接,即主站(客户)端按照 Socket()->Connect() 的顺序进行, RTU (服务器)端按 Socket()->Bind()->Listen()->Accept() 的顺序进行。 个数 结束地址 起始地址 数据类型 512 6200 H 6001 H 遥控 4096 5000 H 4001 H 遥测 4096 1000 H 1 H 遥信
  • 35.
    工程实现要点(3) 对时过程的源码 主站(客户)端下发:68 14 ( APDU 长度)控制字节 1 控制字节 2 控制字节 3 控制字节 4 67 ( ASDU ) 1 (信息体个数) 06 00 (传送原因)公共地址低 公共地址高 00 00 00 ( 信息体地址 ) 毫秒低 毫秒高 分钟 小时 日期 月份 年份 RTU (服务器)端应答:和主站(客户)端下发基本相同,仅把传送原因改为 07 M->R : 68 14 02 00 08 00 67 01 06 00 01 00 00 00 00 01 05 10 09 0a 03 02 R->M : 68 14 08 00 04 00 67 01 07 00 01 00 00 00 00 01 05 10 09 0a 03 02 0x501 = 1 秒 281 毫秒 0x10 = 16 分 0x09 = 9 时 0x0a = 10 日 0x03 = 3 月 0x02 = 2002 年
  • 36.
    工程实现要点(4) 总召唤过程的源码 主站(客户)端下发:68 0e ( APDU 长度)控制字节 1 控制字节 2 控制字节 3 控制字节 4 64 ( ASDU ) 1 (信息体个数) 06 00 (传送原因) 公共地址低 公共地址高 00 00 00 (信息体地址) 14 M->R : 680E000000 00 64 01 0600 01 00 000000 14 I (总召唤) RTU (服务器)端应答 ( 很明显窗口尺寸 >1) : R->M : 680E000002 00 64 01 0700 01 00 000000 14 I (总召唤确认)
  • 37.
    工程实现要点(5) 上送全遥信(可能多帧): 68APDU 长度 控制字节 1 控制字节 2 控制字节 3 控制字节 4 01 ( ASDU )信息体个数( bit7=1 ,表示连续信息体地址 ) 14 00 (传送原因)公共地址低 公共地址高 3 字节的第 1 点遥信信息体地址 第 1 点遥信的品质描述和值 … (单点信息) R->M : 6885020002 00 01 F8 1400 01 00 010000 00 01 0101   01000101 000101010001 010101010001 010101000100 0100   01010101 000101010001 010101010101 010100000000 0000   00010100 010101010100 010101010100 010101010101 0101 01010101 000101010101 000000010101 010100010101 0101   01010100 000000010101 010101000101 00010101 I格式(响应总召唤,全遥信) SIQ := CP8{ SPI,RES,BL,SB,NT,IV } 0x8F:120 SPI:  开 IV :有效
  • 38.
    工程实现要点(6) 上送全遥测(可能多帧): 68APDU 长度 控制字节 1 控制字节 2 控制字节 3 控制字节 4 15 ( ASDU ,不带品质码的规一化值)信息体个数( bit7=1 ,表示连续信息体地址 ) 14 00 (传送原因)公共地址低 公共地址高 3 字节的第 1 点遥测信息体地址 第 1 点遥测的 2 字节不带品质描述的规一化值…… R->M : 6885060002 00 15 BC 1400 01 00 014000 6204 6204 62046404 640400000000 99FFA405A700 00000000AB37 130A 00000000 680168013D00 6801FFFF0000 DA1CDE010000 0000 69006900 000067006700 FFFFA11BA903 000000000A00 0A00 B6050000 FFFFFFFFFFFF FFFFFFFFFFFF FFFFFFFF5904 FFFF 5C045704 570457040000 000000000000 00000000 I (响应总召唤,全遥测) 0xBC: 60 NVA : =F16]1..16]<-1..+1-2-15> 没有定义测量值的分辩率,如果测量值的分辩率比 LSB 的最小单位粗,则这些 LSB 位设置为零。
  • 39.
    工程实现要点(7) 总召唤结束: 680e ( APDU 长度)控制字节 1 控制字节 2 控制字节 3 控制字节 4 64 ( ASDU ) 1 (信息体个数) 0a 00 (传送原因) 公共地址低 公共地址高 00 00 00 (信息体地址) 14 R->M : 680E0E0002 00 64 01 0A00 01 00 000000 14 I (响应总召唤结束)
  • 40.
    工程实现要点(8) 单点遥控选择过程 主站(客户)端下发:68 0e ( APDU 长度)控制字节 1 控制字节 2 控制字节 3 控制字节 4 2d ( ASDU ) 1 (信息体个数) 06 00 (传送原因)公共地址低 公共地址高 被控点的 3 字节信息体地址 1 字节的遥控性质 其中遥控性质字节的各位含义: bit7=1 ,选择; =0, 执行 bit1 bit0 =01, 合闸; =00, 分闸(单遥) =02, 合闸; =01, 分闸(双遥) bit 65432=1 ,短脉冲; =2 ,长脉冲; =3 ,持续; M->R : 68 0e 04 00 0a 00 2d 01 06 00 01 00 01 60 00 84 0x84 : 选择、分闸、短脉冲 RTU (服务器)端进行单点遥控选择应答:和主站(客户)端下发基本相同,若是确认,把传送原因改为 07 ;若是否认,把传送原因改为 47 (传送原因低字节的 bit6=1 表示否定确认) R->M : 68 0e 0a 00 06 00 2d 01 07 00 01 00 01 60 00 84 0x84 : 选择、分闸、短脉冲
  • 41.
    工程实现要点(9) 主站(客户)端下发单点遥控执行:和选择报文基本相同,仅遥控性质字节的 bit7=0M->R : 68 0e 06 00 0c 00 2d 01 06 00 01 00 01 60 00 04 0x04 : 执行、分闸、短脉冲 RTU (服务器)端进行单点遥控执行应答:和主站(客户)端下发基本相同,若是确认,把传送原因改为 07 ;若是否认,把传送原因改为 47 R->M : 68 0e 0c 00 08 00 2d 01 07 00 01 00 01 60 00 04 0x04 : 执行、分闸、短脉冲 R->M : 68 0e 0c 00 08 00 2d 01 2f 00 01 00 01 60 00 04 0x2f : 未知的信息对象地址 0x04 : 执行、分闸、短脉冲
  • 42.
    工程实现要点( 10 )。 关于主动上送 由于 IEC 60870-5-104 采用平衡传输方式,当主站(客户)端没有进行数据召唤,而 RTU (服务器)端中有变化数据时, RTU 要主动上送变化数据。 主动上送变化遥信的报文源码(可能多帧) 68 APDU 长度 控制字节 1 控制字节 2 控制字节 3 控制字节 4 1E ( ASDU )信息体个数( bit7=0 ,表示每个变化点前自带信息体地址) 03 00 (传送原因) 公共地址低 公共地址高 3 字节的第 1 个变化遥信点信息体地址 第 1 个变化遥信点的品质描述和值 第 1 个变化遥信点的 7 字节时标…… ( 带时标单点信息) 遥信都按单遥处理 主动上送变化遥测的报文源码(可能多帧) 68 APDU 长度 控制字节 1 控制字节 2 控制字节 3 控制字节 4 0b ( ASDU )信息体个数( bit7=0 ,表示每个变化点前自带信息体地址) 03 00 (传送原因)公共地址低 公共地址高 3 字节的第 1 个变化遥测点信息体地址 第 1 个变化遥测点的 2 字节 标度化值 第 1 个变化遥测点的品质描述…… 。 重新启动后,序号重新开始排序
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.