目录
1、IEC104规约简介
1.1、信息传输的三个要素
1.2、非平衡、平衡通信方式
1.3、启动站和从动站
1.4、一次完整的交互过程
1.5、服务类型
2、TCP通讯机制
2.1、TCP的可靠性机制
2.2、三次握手(建立连接)
2.3、四次挥手(关闭连接)
3、IEC104规约报文解析
3.1、体系及报文结构
3.1.1、APDU(应用规约数据单元)
3.1.2、APCI(应用规约控制信息)
3.1.3、ASDU(应用服务数据单元)
3.2、三种帧类型
3.2.1、I帧(Information,信息传输)
3.2.2、S帧(Sure,监视帧)
3.2.3、U帧(Under the control,控制帧)
3.3、101、104规约ASDU结构实例解析
3.3.1、ASDU1:不带时标的单点信息
3.3.2、ASDU2:带时标的单点信息
3.3.3、ASDU13:测量值:短浮点数
3.3.4、ASDU20:带变位检出的成组单点信息
3.3.5、ASDU30:带时标CP56Time2a的单点信息
3.3.6、ASDU100:召唤命令
3.3.7、ASDU46:双命令
3.3.8、ASDU48:设定命令,归一化值
3.3.9、ASDU50:设定命令,短浮点数
3.4、104规约报文详解(最详尽的解释)
3.5、电度
3.6、遥信
3.7、遥测
3.8、保护事件
3.9、遥控
4、104规约数据传输过程(主要环节)
4.1、初始连接过程
4.2、启动数据传输(U帧START置位)
4.2.1、IEC104规约的启/停传输控制描述
4.2.2、IEC104初始连接连接过程:
4.3、总召唤
4.3.1、总召过程
4.4、遵循规则传输信息
4.4.1、传输规则
4.5、一段完成的基于TCP/IP的IEC104报文
5、IEC104规约常用参数
IEC主要规约:
IEC规约 | 适用范围 | 通讯方式 |
---|---|---|
IEC-101 | 厂站与调度主站间通讯 | 串行 |
IEC-102 | 电量主站与站内抄表终端通讯 | |
IEC-103 | 与站内继电保护设备间通讯 | 串行 |
IEC-104 | 厂站与调度主站间通讯 | 以太网 |
IEC101与IEC104的比较:
104 | 101 | |
---|---|---|
应用层帧结构 | 同101结构 | --- |
容量 | 传输原因:2 | 传输原因:1/2 |
类型标识 | 扩展7字节时间的帧类型 | --- |
遥测 | 全遥测、浮点数 | 越限遥测、归一化 |
遥信 | SOE用7字节时间 | SOE用3字节时间 |
遥控、电度 | 同101结构 | --- |
104与101应用层不同之处:
为了适应网络技术在远动通信中的应用,IEC在2000年12月完成第一个完整基于以太网规约的文件IEC60870-5-104(采用标准传输协议集的IEC90870-5-101网络访问)。
我国在2002年颁布DL/T634.5104-2002:远动设备与系统 第五部分:传输规约 第104篇:采用标准传输协议集的IEC60870-5-101网络访问(idt.IEC60870-5-104:2000)。
IEC60870-5-104实际处于应用层协议的位置;基于TCP/IP的应用层协议很多,每一种应用层协议都对应着一个网络端口号,根据其在传输层上使用的是TCP协议(传输控制协议)还是UDP(用户数据报文协议),端口号又分为TCP端口号和UDP端口号(端口号0~65535)。
IEC60870-5-104规定传输层使用的是TCP协议。常用的TCP端口有:ftp文件传输协议,使用21号端口;telnet远程登录协议,使用23号端口;SMTP简单邮件传送协议,使用25号端口;http超文本传输协议,使用80号端口;IEC60870-5-104规定本标准使用的端口号为2404,并且此端口号已经得到IANA(互联网地址分配机构,Internet Assigned Numbers Authority)的确认。
IEC60870-5-104实际上是将IEC60870-5-101与TCP/IP提供的网络传输功能相结合,使得IEC60870-5-101在TCP/IP内各种网络类型都可使用。
为了保证可靠的传输远动数据,DL/T634.5104-2002规定传输层使用的是TCP协议,因此其对应的端口号是TCP端口。
对于基于TCP的应用程序来说存在两种工作模式:服务器模式(子站)和客户机(主站)模式。服务器模式和客户机模式之间的区别是:当建立TCP连接时,服务器从不发起连接请求,它一直处于侦听状态,当侦听到来自客户机的连接请求时,则接受此请求,由此建立一个TCP连接,服务器和客户机就可以通过这个虚拟的通讯链路进行数据收发。IEC60870-5-104规定控制站(即调度站)作为客户机,而被控站(即站端RTU)作为服务器。
网络协议的三要素:语法,语义,时序(同步)。
IEC104规约采用平衡通信方式;IEC101规约也可以采用平衡通信方式,但目前采用非平衡方式;基于RS485链路通信的IEC103规约只能采用非平衡通信方式。
启动方发起通讯,从动方回应此次通讯过程,双方都知道最终的通讯结果如何。
防丢失:确认与重传。
防重复:报文段序号。
三次握手方式(未采用二次确认的方式)主要是为了防止已失效的连接请求报文段突然又传到了服务器端,服务器不能判断是否是有效的请求连接,即发出确认,误认为新的连接已经建立,而客户端收到非期望的确认则不处理,服务器端就会一直等待客户端发送数据请求,白白浪费许多资源,产生错误。
三次握手可以防止“已失效的连接请求报文段”产生的错误,服务器端收不到第三次确认,就不会认为连接已经建立。
客户机A主动打开端口,服务器B被动打开端口。
调度主站(客户端) | 控制信息 | 厂站远动(服务端) | 过程说明 |
---|---|---|---|
请求连接(->) | SYN=1,seq=x |
被动打开 | 调度主站向厂站远动机的TCP发出连接请求,其首部的同步比特SYN=1,同时选择一个序号x,表明在后面传送数据时的第一个数据字节的序号是x。 |
SYN=1,ACK=1, seq=y,ack=x+1 |
确认(<-) | 厂站远动机的TCP收到连接请求后,如同意,则发回确认。在确认报文段中应将SYN=1,ACK=1,确认序号=x+1,同时自己也选择一个序号y。 | |
确认(->) | ACK=1,ack=y+1 |
调度主站的TCP收到厂站远动机的确认后,还要向厂站端给出确认,确认序号的=y+1;致辞,运行客户进程的调度主站通知上层应用进程,连接已经建立;运行服务进程的厂站远动机收到A机确认后,也通知上层应用进程,连接已经建立。 |
数据传输结束后,通信的双方都可释放连接。
IEC104是IEC101的网络访问,规定了IEC101的应用层与TCP/IP提供的传输功能的结合。
报文的基本结构 APDU=APCI+ASDU。
信息对象 | 对应序号(16进制) | 对应序号(10进制) |
---|---|---|
遥信信息 | 1-8000 | |
遥测信息 | 8001-12000 | |
电能量 | 12001-14000 | |
遥控信息 | 14001-15000 |
注② 104规约ASDU解释和与101规约ASDU的比较:
IEC104报文帧格式:
传输应用数据,捎带确认对方的发送。传送自动化信息,含发送序号,接收序号,ASDU长度可变。
控制域的第一个八位位组的第1位比特=0定义了I格式。I格式应用规约数据单元常常包含应用服务数据单元ASDU。
注:
接收序号为“期望序号”=实际接收序号+1。
S格式帧为短帧,为计数的监视功能类型,用于传输对站端确认的报文,长度仅6个字节。无应用数据可传输时,带接受序号确认已经收到的信息。
控制域的第一个八位位组的第1位比特=1,第二位比特=0定义了S格式。S格式的APDU不包括ASDU,当报文接收方收到发送方的I格式报文后,如果没有I格式的报文发送给对方,可以向对方发送S格式的报文以对接收到的报文进行确认。
接收序号为“期望序号”。
U格式为不计数的控制功能类型,用于传输链路控制命令的报文,U格式帧为6字节短帧,用于启动控制信息(V表示生效、C表示确认)。
控制用报文:
控制域的第一个八位位组的第1位比特位=1,第2位比特位=1定义了U格式。此格式的APDU也不含ASDU,其作用主要在于实现三种控制功能,即启动子站进行数据传输(STARTDT),停止子站的数据传输(STOPDT)和TCP链路测试(TESTER)。在同一时刻仅TESTFR,STOPDT,STARTDT功能之一被激活。
U、S帧长度固定为6个字节,只有APCI而无ASDU:68 04 xx xx xx xx。
可知U格式的APDU的帧内容是固定的6种。
1、SQ=0
2、SQ=1,104规约总召遥信
1、SQ=0,越限遥测
2、SQ=1,总召遥测
1、SQ=0
2、SQ=1,101规约总召遥信(华东版101规约总召为分组上送)
COT:6=激活,7=激活确认,8=停止激活,9=停止激活确认,10=激活终止。
DCO:最高位0执行1选择,低2位0进制1分2合3禁止。
COT:6=激活,7=激活确认,8=停止激活,9=停止激活确认,10=激活终止。
QOS:最高位0执行1选择。
COT:6=激活,7=激活确认,8=停止激活,9=停止激活确认,10=激活终止。
QOS:最高位0执行1选择。
IEC-60875-5-104:应用模型是:物理层,链路层,网络层,传输层,应用层。
物理层保证数据的正确送达,保证如何避免冲突。(物理层利用如RS232上利用全双工)。
链路层负责具体对哪个slave的通讯,对于成功与否,是否重传由链路层控制(RS485 2线利用禁止链路层确认)。
应用层负责具体的一些应用,如何全数据还是单点数据还是类数据等(网络利用CSMA/CD等保证避免冲突的发生)。
基本定义:端口号2404,站端为server,控端为client,平衡式传输,2Byte站地址,2Byte传送原因,3Byte信息地址。
每个字节都是unsigned char类型,如果是2个字节表示一个short型,则都是低位在前,高位在后。
流程详解:
TCP连接和建立都是采用客户/服务器方式,主动发起连接的进程叫做“客户(Client)”,而被动等待连接建立的进程叫做“服务器(Server)”。
控制站(例如A站)利用STARTDT(启动数据传输)和STOPDT(停止数据传输)来控制被控站(B站)的数据传输。
当连接建立后,连接上的用户数据传输不会从被控制站自动激活,即当一个连接建立时,STOPDT是缺省状态。在这种状态下,被控站并不通过这个连接发送任何数据,除了未编号的控制功能和对这些功能的确认。控制站必须通过这个连接发送STARTDT激活指令来激活这个连接中的用户数据传输,被控站用STARTDT确认响应这个命令。如果STARTDT没有被确认,这个连接将被控制站关闭。
这意味着站初始化后,STARTDT必须总是在来自被控站的任何用户数据传输(例如:总召唤信息)开始前发送。任何被控站只有在发送STARTDT确认后才能发送待发用户数据。
-STARTDT报文如下:
请求:68 04 07 00 00 00
响应:68 04 0B 00 00 00
-STOPDT报文如下:
请求:68 04 13 00 00 00
响应:68 04 23 00 00 00
-测试过程
请求:68 04 43 00 00 00
响应:68 04 83 00 00 00
请求:68 04 43 00 00 00
响应:68 04 83 00 00 00
请求:68 04 43 00 00 00
响应:68 04 83 00 00 00
100 | 类别标识 | ASDU标识 1Byte |
1 | 可变结构限定词(规定报文中有多少信息) | 1Byte |
6 | 传输原因(为什么要发送这个报文) | 2Byte |
COMADDR | 单元公共地址(链路地址) | 2Byte |
0 | 信息地址 | 3Byte |
20 | QOI(状态) | 1Byte |
启动:68
长度:0E
----------------------------------
I格式控制域:96 01 02 0B
----------------------------------
ASDU:64
可变结构:01
传输原因:06 00
comaddr:00 11
信息体地址:00 00 00
QOI:14
总召确认(装置上行):回答确认命令。
100(64H) | 类别标识 | ASDU标识 1Byte |
1 | 可变结构限定词 | 1Byte |
7 | 传输原因 | 2Byte |
COMADDR | 单元公共地址 | 2Byte |
0 | 信息地址 | 3Byte |
20 | QOI | 1Byte |
总召启动、总召确认、总召结束报文格式完全相同,只是传输原因不同(0、FF扇区无数据总召后即结束召唤)。在装置确认总召命令后,若某扇区有数据则先上送数据,再上送总召结束报文。
例如:
68 0E DE 00 22 06 | 64 01 06 00 07 11 | 00 00 00 | 14 (总召)
68 0E 10 00 0A 00 | 34 01 07 00 07 11 | 00 00 00 | 14 (确认)
1、差错控制:防止报文丢失和报文重复传送。
通信双方通过对序列号的验证来实现“防止报文丢失和报文重复传送”功能,发送和接收两个序列号在每个报文和每个方向上都应按顺序加1,发送方增加发送序列号而接收方增加接收序列号。接收方可以将连续接收的最后一个正确报文序列号返回,作为对所有小于或等于该号的报文的有效确认。报文序号的确认是至关重要的,根据附加在报文上的接受序号,确认传输到对方正确报文的条数,确认有、无报文丢失。如果序号不正确,则认为报文丢失,要重新传输丢失的报文。
2、流量控制:使得发送端的发送速度不要太快,要使接收端来得及接收。由收方控制发方的数据流量,仍然是计算机网络中流量控制的一个基本方法。
IEC104规约相关的第二个参数:
发送12个APDU未收到确认报文,应终止传输;收到8个APDU则要回应发送方确认报文。因此要分别对发送、接收报文进行计数,当12条报文发送后没有收到确认的S格式报文或者I格式报文(包含对方接收报文数目信息),则断开链接,进行重连。在无信息回应对方情况下,收到8条报文后也应立即发送S格式的报文回应对方,以防对方断开链接。
3、链路管理:即链路的建立,维持,释放。
参数 | 默认值 | 备注 |
---|---|---|
t0 | 30秒 | 建立连接的超时 |
t1 | 15秒 | 发送或测试APDU的超时 |
t2 | 10秒 | 无数据报文时确认的超时,t2 < t1 |
t3 | 20秒 | 长期空闲状态下发送测试帧的超时 |