
目录前 言一、IEC104规约数据单元基本结构1.1 应用规约数据单元APDU1.2 应用规约控制信息APCI1.3 应用服务数据单元ASDU二、IEC104规约过程描述三、IEC104源码分析1、TCP连接的建立过程2、循环遥测数据传送3、总召唤过程4、校时过程5、子站事件主动上传6、遥控/遥调过程7、召唤电度过程8、报文重复和丢失的处理★9、关于超时的定义四、网络测试与诊断1、hyperTerminal软件使用2、网络命令下续电力-平衡式IEC 60870-5-101规约报文解析、电力-IEC 60870-5-104规约实际测试1前言根据全国电力系统控制及其通信标准委员会三届五次会议和最近出版的国标DL/T634.5.104:2002对104规约的参数选择做了如下说明1、 采用端正101规约中的链路地址和短报文指链路确认报文2、 采用召唤一级数据3、 两个字节表示公共地址站址4、 两个字节表示传送原因5、 三个字节表示信息体地址上述3、4、5点与上一次通讯协议具体说明有冲突为执行国际国内标准建议根据上述要求对报文做如下修改。一、IEC104规约数据单元基本结构应用规约数据单元APDUApplication protocal data unit应用规约控制信息APCIApplication protocal control information应用服务数据单元ASDUApplication protocal control unitAPDU APCI ASDU1.1 应用规约数据单元APDU定义了启动字符、应用服务数据单元的长度规范、可传输一个完整的应用规约数据单元。启动字符68H一个字节长度规范报文最大长度255字节应用规约数据单元的最大长度为253字节控制域的长度是4字节应用服务数据单元的最大长度为249字节。控制域控制域定义抗报文丢失和重复传送的控制信息、报文传输的启动和停止、传输连接的监视。控制域的这些类型被用于完成计数的信息传输的(I格式)、计数的监视功能(S格式)和不计数控制功能(U格式)。应用服务数据单元启动 68H应用规约数据单元的长度(APDU)控制域 八位位组1控制域 八位位组2控制域 八位位组3控制域 八位位组4应用规约控制信息APCI启动一个字节长度一个字节四个控制域八位位组IEC60870-5-104的应用服务数据单元应用服务数据单元ASDU最大帧长为2491.2 应用规约控制信息APCI控制域定义抗报文丢失和重复传送的控制信息、报文传输的启动和停止、传输连接的监视。控制域的这些类型被用于完成计数的信息传输的 (I格式)、计数的监视功能(S格式)和不计数的控制功能(U格式)。信息I帧、控制U帧、确认S帧。发送序号 N(S) LSB0MSB 发送序号N(S)接收序号N(R) LSB0MSB 接收序号N(R)信息传输格式类型(I格式)的控制域0010接收序号N(R) LSB0MSB 接收序号N(R)计数的监视功能类型(S格式)的控制域TESTFRSTOPDTSTARTDT11CONACTCONACTCONACT0000不计数的控制功能(U格式)类型的控制域1.3 应用服务数据单元ASDU应用服务数据单元ASDU由数据单元标识符和一个或多个信息对象所组成。数据单元标识符在所有应用服务数据单元中常有相同的结构一个应用服务数据单元中的信息对象常有相同的结构和类型它们由类型标识域所定义。数据单元标识符的结构如下报文类型标识一个字节可变结构限定词一个字节传送原因两个字节公共地址两个字节信息体地址三个字节信息体元素N………………………………报文类型标识报文类型标识描述标识符10x01单点信息遥信M_SP_NA_130x03双点信息遥信M_DP_NA_190x09测量值规一化值遥测M_ME_NA_1130x0D测量值, 标度化值遥测M_ME_NB_1300x1E带时标的单点信息soe信息M_SP_TB_1310x1F带时标的双点信息soe信息M_DP_TB_11000x64总召唤命令C_IC_NA_1可变结构限定词在应用服务数据单元中其数据单元标识符的第二个字节定义为可变结构限定词如下所述bit 8 7 6 5 4 3 2 1SQSQ0表示由信息对象地址寻址的单个信息元素或综合信息元素。应用服务数据单元可以由一个或多个同类的信息对象所组成。SQ1表示同类的信息元素序列即同一种格式的测量值由信息对象地址来寻址信息对象地址是顺序信息元素的第一个信息元素地址后续信息元素的地址是从这个地址起顺序加1。在顺序信息元素的情况下每个应用服务数据单元仅安排一种信息对象。bit 17表示信息对象的数目。传送原因 两个字节应用服务数据单元公共地址站址信息体地址 三个字节信息对象地址分配见02版部颁规约文本附页信息对象地址UI16[116]0...655350无关的信息对象地址1…65535信息对象地址比如序列号连续的单点信息Server send68 1c 00 00 00 00 01 8f 14 0001 0001 02 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01报文解析单点遥信启动字符68H后续长度 1cH28指从第3个字节开始的后续报文长度为28个字节控制域00 00 00 00报文类型 01H1单点信息,遥信可变结构限定词 8fH10001111最高位为1表示S连续8f800f0fH15D表示有15个遥信数据。传送原因14 0020相应站召唤站址01 001站址为1信息体起始地址01 02 000201H信息元素数据01 00 01 00 01 00 01 00 01 00 01 00 01 00 0115个遥信数据的值。解析后得到15个遥信数据Index0201H value01H 0x011Index0202H value00H 0x010 …………………………Server send68 22 5E 0C 08 00 09 04 03 0001 0002 07 00FF 7F 0106 07 002D 20 000E 07 00DD 1C 0016 07 0095 1D 00二、IEC104规约过程描述当主站软件重新启动或链路故障时主站将向子站发出建立链路的请求报文。当链路建立后主站召唤一次全数据随后定时召唤全数据子站主动传送变化数据。主站收到数据帧后发送数据确认帧。交互过程图1、TCP连接的建立过程站端RTU作为服务器在建立TCP连接前应一直处于侦听状态并等待调度端的连接请求当TCP连接已经建立则应持续地监测TCP连接的状态以便TCP连接被关闭后能重新进入侦听状态并初始化一些与TCP连接状态有关的程序变量调度端作为客户机在建立TCP连接前应不断地向站端RTU发出连接请求一旦连接请求被接收则应监测TCP连接的状态以便TCP连接被关闭后重新发出连接请求。需要注意的是每次连接被建立后调度端和站端RTU应将发送和接收序号清零并且子站只有在收到了调度系统的STARTDT后才能响应数据召唤以及循环上送数据但在收到STARTDT之前子站对于遥控、设点等命令仍然应进行响应。2、循环遥测数据传送对于遥测量可以使用类型标识为9归一化值、11标度化值和13短浮点数的ASDU定时循环向调度端发送。3、总召唤过程调度主站向子站发送总召唤命令帧类型标识为100传输原因为6子站向主站发送总召唤命令确认帧类型标识为100传输原因为7然后子站向主站发送单点遥信帧类型标识为1和双点遥信帧类型标识为3最后向主站发送总召唤命令结束帧类型标识为100传输原因为10。4、校时过程调度主站向子站发送时间同步帧类型标识为104传输原因6子站收到后立即更新系统时钟并向主站发送时间同步确认帧类型标识为104传输原因7。需要注意的是在以太网上进行时钟同步要求最大的网络延时小于接收站时钟所要求的准确度即如果网络提供者保证在网络中的延时不会超过400ms典型的X.25 WAN值在子站所要求的准确度为1s这样时钟同步才有效。使用这个校时过程可以避免成百上千地在子站安装GPS卫星定位系统但如果网络延时很大或者子站所要求的准确度很高例如1ms则变电站综合自动化系统必须安装精确度很高的全球定位系统GPS而以上的时钟同步过程实际上就没有意义了。5、子站事件主动上传以太网对于调度端和子站端都是一个全双工高速网络因此IEC6080-5-104必然使用平衡式传输。当子站发生了突发事件子站将根据具体情况主动向主站发送下述报文遥信变位帧单点遥信类型标识为1, 双点遥信类型标识为3传输原因为3、遥信SOE帧单点遥信类型标识为30, 双点遥信类型标识为31传输原因为3、调压变分接头状态变化帧类型标识为32传输原因为3、继电保护装置事件类型标识为38、继电保护装置成组启动事件类型标识为39、继电保护装置成组输出电路信息类型标识为40。6、遥控/遥调过程主站发送遥控/遥调选择命令类型标识为 46/47传输原因为 6S/E 1子站返回遥控/遥调返校类型标识为 46/47传输原因为 7S/E 1主站下发遥控/遥调执行命令类型标识为46/47传输原因为6S/E 0,子站返回遥控/遥调执行确认类型标识为 46/47传输原因为 7S/E 0当遥控/遥调操作执行完毕后子站返回遥控/遥调操作结束命令类型标识为 46/47传输原因为 10S/E 0。7、召唤电度过程主站发送电度量冻结命令类型标识为 101传输原因为 6子站返回电度量冻结确认类型标识为 101传输原因为 7然后子站发送电度量数据类型标识为 15传输原因为 37最后子站发送电度量召唤结束命令类型标识为 101传输原因为 10。8、报文重复和丢失的处理★发送序号和接收序号是连续编码的偶数用于保证信息的正确性和完整性。但序号的增加终究要溢出即655340xFFFE之后的序号将会变成0而接收方对接收序号不连续的I帧将会丢弃。104规约规定连续出现12帧接收序号不连续的情况104的服务端将会中止当前通信等待104的客户端重新建立连接。这个序列号不连续的阈值在不同的变电站远动机中的设置并不相同。主站下发启动激活报文的目的是在接收序号大于某个设定值比如0xEEC0时通知终端清零接收序号和发送序号重新开始计数。大部分终端在数据正常传输时己经是启动状态只是向主站应答启动激活确认帧68 04 0B 00 00 00而上传的I帧中的发送序号依旧正常计数。这种处理方式并没有违反规约但它导致了主站报“接收序列号不连续”错误并且主站接下来会连续下发发送序号从0开始计数的总召、对时等I格式帧终端接收后也会因接收序号不连续、错误次数越阈值而关闭本次会话。主站被迫从头与终端建立连接、会话和数据传输主站画面的数据刷新需要经过较长时间才能恢复正常。主站只采用下发启动激活报文、试图清零双方的I格式通信帧序号的方法不妥。根据104规约主站应在下发激活报文之前下发停止激活报文68 04 13 00 00 00。需要注意的是每次重新建立TCP连接后调度主站和子站RTU的接收序号和发送序号都应清零因此在双方开始数据传送后接收方若收到一个I格式报文应判断此I格式报文的发送序号是否等于自己的接收序号。若相等则应将自己接收序号加1若此I格式报文的发送序号大于自己的接收序号这说明发送方发送的一些报文出现了丢失若此I格式报文的发送序号小于自己的接收序号这意味着发送方出现了重复传送。此外I格式和S格式报文的接收序号表明了发送该报文的一方对已接收到的I格式报文的确认若发送方发送的某一I格式报文后长时间无法在对方的接收序号中得到确认这就意味着发生了报文丢失。当出现上述这些报文丢失、错序的情况时通常意味着TCP连接出现了问题发送方或接收方应关闭现在的TCP连接然后再重新建立新的TCP连接并在新的TCP连接上重新开始会话过程。9、关于超时的定义三、IEC104源码分析注报文均为16进制表示两字节以上数据均为低位在前Client主站Server终端详见“电力-104规约实际测试1”。四、网络测试与诊断1、hyperTerminal软件使用2、网络命令使用详见Win系统的CMD指令。1ping命令2telnet命令3netstat命令established adj. 已建立的; 已设立的; 已制定的; 确定的;得而不喜失而不忧。觉得不错动动发财的小手点个赞哦