IEC104规约

目录

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的比较:

  • 相同点:① 适用范围:厂站与主站之间;② 规约结构:应用层定义相同。
  • 不同点:① 通讯方式:101串行、104以太网;② 服务类型:101多采用非平衡传输,104多采用平衡传输。
104 101
应用层帧结构 同101结构 ---
容量 传输原因:2 传输原因:1/2
类型标识 扩展7字节时间的帧类型 ---
遥测 全遥测、浮点数 越限遥测、归一化
遥信 SOE用7字节时间 SOE用3字节时间
遥控、电度 同101结构 ---

104与101应用层不同之处:

  • 控制方向:104规约扩展的类型标识。
  • 监视方向:104规约带时标的信息全部采用CP56Time2a;
  • 校时:当子站需要接收主站的校时,收到校时报文后直接修正本地时间即可,而不像101规约进行延时采集和传递。

1、IEC104规约简介

为了适应网络技术在远动通信中的应用,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)作为服务器。

1.1、信息传输的三个要素

网络协议的三要素:语法,语义,时序(同步)。

  • 语法:数据与控制信息的结构或格式。
  • 语义:协调动作和差错处理的控制信息,即需要发出何种控制信息,完成何种动作,做出何种应答。
  • 时序:同步,速度匹配及排序,即事件实现的顺序。

1.2、非平衡、平衡通信方式

  • 非平衡通信方式:通信双方总是规定乙方为启动站,另一方为从动站。只允许启动站发起召唤命令,从动站被动回答响应。在实际应用中一般规定主站或接收方为启动站,厂站或提供数据方为从动站。IEC103规约采用非平衡通信方式。
  • 平衡通信方式:通信双方都可以发起信息传输,一旦链路建立成功,变化信息除了响应召唤应答还可以主动发送而无需等待查询。但是两个方向上都需要采用有效的数据接收确认机制(如:IEC104的接收序号,IEC101的FCB位翻转)来确认信息的正确接收。

IEC104规约采用平衡通信方式;IEC101规约也可以采用平衡通信方式,但目前采用非平衡方式;基于RS485链路通信的IEC103规约只能采用非平衡通信方式。

1.3、启动站和从动站

  • 发起通讯的一方为启动站;
  • 响应服务的一方为从动站。

1.4、一次完整的交互过程

启动方发起通讯,从动方回应此次通讯过程,双方都知道最终的通讯结果如何。

1.5、服务类型

  • 发送/无应答(S1):从动站无需回答启动站的报文,启动站也不知道从动站是否接收到报文,如校时。
  • 发送/确认(S2):从动站接收后需要向启动站发确认报文,通常用于发送参数、发送控制命令等;
  • 请求/响应(S3):从动站接收到启动站的请求报文后,用数据响应启动站的请求。如召唤数据、请求数据、请求链路状态等。

2、TCP通讯机制

2.1、TCP的可靠性机制

防丢失:确认与重传。

防重复:报文段序号。

2.2、三次握手(建立连接)

三次握手方式(未采用二次确认的方式)主要是为了防止已失效的连接请求报文段突然又传到了服务器端,服务器不能判断是否是有效的请求连接,即发出确认,误认为新的连接已经建立,而客户端收到非期望的确认则不处理,服务器端就会一直等待客户端发送数据请求,白白浪费许多资源,产生错误。

三次握手可以防止“已失效的连接请求报文段”产生的错误,服务器端收不到第三次确认,就不会认为连接已经建立。

客户机A主动打开端口,服务器B被动打开端口。

  1. A的TCP向B发出连接请求报文段,其首部中的同步位SYN=1,并选择序号seq=x,表明传送数据时的第一个数据字节的序号是x;
  2. B的TCP收到连接请求报文段后,如同意,则发回确认;B在确认报文段中应使SYN=1,使ACK=1,其确认号ack=x+1,自己选择的序号seq=y;
  3. A收到此报文段后向B给出确认,其ACK=1,确认号ack=y+1;A的TCP通知上层应用进程,连接已经建立;B的TCP收到主机A的确认后,也通知其上层应用进程,TCP连接已经建立。
调度主站(客户端) 控制信息 厂站远动(服务端) 过程说明
请求连接(->)

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机确认后,也通知上层应用进程,连接已经建立。

2.3、四次挥手(关闭连接)

数据传输结束后,通信的双方都可释放连接。

  1. 现在A的应用进程先向其TCP发出连接释放报文段,并停止发送数据,主动关闭TCP连接。A把连接释放报文段首部的FIN=1,其序号seq=u,等待B的确认;(A->B: FIN=1,seq=u,ack=v)
  2. B发出确认,确认号ack=u+1,而这个报文段自己的序号seq=v。TCP服务器进程通知高层应用进程。从A到B这个方向的连接就释放了,TCP连接处于半关闭状态,B若发送数据,A仍要接收。(A<-B: ACK=1,seq=v,ack=u+1)
  3. 若B已经没有要向A发送的数据,其应用进程就通知TCP释放连接;(A<-B: FIN=1,ACK=1,seq=w,ack=u+1)
  4. A收到连接释放报文段后,必须发出确认。TCP连接必须经过2MSL后才真正释放掉(A->B: ACK=1,seq=u+1,ack=w+1)

3、IEC104规约报文解析

IEC104规约_第1张图片

3.1、体系及报文结构

IEC104是IEC101的网络访问,规定了IEC101的应用层与TCP/IP提供的传输功能的结合。

IEC104规约_第2张图片

报文的基本结构 APDU=APCI+ASDU。

  • IEC104规约APCI与IEC101的LPCI控制机制差异大;
  • IEC104规约基本采用IEC101的ASDU,差异小;
  • 传送原因2个字节;
  • ASDU公共地址2个字节;
  • 信息对象序号(地址)3个字节。
信息对象 对应序号(16进制) 对应序号(10进制)
遥信信息 1-8000
遥测信息 8001-12000
电能量 12001-14000
遥控信息 14001-15000

IEC104规约_第3张图片

注② 104规约ASDU解释和与101规约ASDU的比较:

  • 类型标识(TYP):表示报文的类型,即报文所传送的内容,不同类型代表的信息元素集不同,类型标识确定则信息元素集中的信息也就确定了。
  • 可变结构限定词(VSQ):表示信息元素的数目(如果传输的是遥测量,那么报文中有几个遥测量?),最高位代表信息元素寻址方式。根据功能类型和信息序号可以唯一确定上送的信息点。
  • 传送原因(COT):指出报文的性质(为什么要传输这条报文),根据传送原因可以知道该信息点产生的原因。101规约为1字节;104规约为2字节,低字节同101规约,高字节为源发地址;
  • ASDU公共地址(ADR):公共地址是用来区分此链路上不同的子站。常常和链路层地址一致,也就是装置地址。101规约为1字节;104规约为2字节;
  • 信息对象地址(infoAdr):信息对象地址用于区分不同的应用,如遥信遥测等都每个信息都占用不同的信息对象地址。101规约及104规约均可设置信息对象地址长度为2字节或3字节。工程应用时,101规约通常设置信息对象地址长度为2字节;104规约通常设置信息对象地址长度为3字节,低2字节同101规约,高字节用于结构化对象信息体地址,不用时取0。
  • 信息元素集:以一定的格式表示的信息的状态或数值(如遥信量、遥测量的值)。
  • 信息对象时标:信息发送的时间。(时、分、毫秒数)

3.1.1、APDU(应用规约数据单元)

  • 一个IEC104完整帧;
  • 一个IEC104规约数据。

3.1.2、APCI(应用规约控制信息)

  • IEC104控制信息;
  • 启动、数据传输、停止、监测、同步等。

3.1.3、ASDU(应用服务数据单元)

  • 一个IEC104帧携带的数据;
  • 四遥、定值、顺控、文件等。

3.2、三种帧类型

IEC104报文帧格式:

3.2.1、I帧(Information,信息传输)

传输应用数据,捎带确认对方的发送。传送自动化信息,含发送序号,接收序号,ASDU长度可变。

控制域的第一个八位位组的第1位比特=0定义了I格式。I格式应用规约数据单元常常包含应用服务数据单元ASDU。

IEC104规约_第4张图片

注:

  • 发送方发送信息时增加发送序号;
  • 接收方确认对方的发送序号时增加接收序号;
  • 带信息发送并确认对方帧。

接收序号为“期望序号”=实际接收序号+1。

3.2.2、S帧(Sure,监视帧)

S格式帧为短帧,为计数的监视功能类型,用于传输对站端确认的报文,长度仅6个字节。无应用数据可传输时,带接受序号确认已经收到的信息

控制域的第一个八位位组的第1位比特=1,第二位比特=0定义了S格式。S格式的APDU不包括ASDU,当报文接收方收到发送方的I格式报文后,如果没有I格式的报文发送给对方,可以向对方发送S格式的报文以对接收到的报文进行确认。

IEC104规约_第5张图片

接收序号为“期望序号”。

3.2.3、U帧(Under the control,控制帧)

U格式为不计数的控制功能类型,用于传输链路控制命令的报文,U格式帧为6字节短帧,用于启动控制信息(V表示生效、C表示确认)。

控制用报文:

  • 启动U帧(STARTDT),用于启动应用层传输。
  • 停止U帧(STOPDT),用于停止应用层传输。
  • 测试U帧(TEST),双方均无发送时,维持链路活动状态。

控制域的第一个八位位组的第1位比特位=1,第2位比特位=1定义了U格式。此格式的APDU也不含ASDU,其作用主要在于实现三种控制功能,即启动子站进行数据传输(STARTDT),停止子站的数据传输(STOPDT)和TCP链路测试(TESTER)。在同一时刻仅TESTFR,STOPDT,STARTDT功能之一被激活。

IEC104规约_第6张图片

IEC104规约_第7张图片

U、S帧长度固定为6个字节,只有APCI而无ASDU:68 04 xx xx xx xx。

IEC104规约_第8张图片

可知U格式的APDU的帧内容是固定的6种。

IEC104规约_第9张图片

3.3、101、104规约ASDU结构实例解析

3.3.1、ASDU1:不带时标的单点信息

1、SQ=0

IEC104规约_第10张图片

2、SQ=1,104规约总召遥信

3.3.2、ASDU2:带时标的单点信息

3.3.3、ASDU13:测量值:短浮点数

1、SQ=0,越限遥测

IEC104规约_第11张图片

2、SQ=1,总召遥测

IEC104规约_第12张图片

3.3.4、ASDU20:带变位检出的成组单点信息

1、SQ=0

2、SQ=1,101规约总召遥信(华东版101规约总召为分组上送)

3.3.5、ASDU30:带时标CP56Time2a的单点信息

3.3.6、ASDU100:召唤命令

IEC104规约_第13张图片

3.3.7、ASDU46:双命令

COT:6=激活,7=激活确认,8=停止激活,9=停止激活确认,10=激活终止。

DCO:最高位0执行1选择,低2位0进制1分2合3禁止。

IEC104规约_第14张图片

3.3.8、ASDU48:设定命令,归一化值

COT:6=激活,7=激活确认,8=停止激活,9=停止激活确认,10=激活终止。

QOS:最高位0执行1选择。

IEC104规约_第15张图片

3.3.9、ASDU50:设定命令,短浮点数

COT:6=激活,7=激活确认,8=停止激活,9=停止激活确认,10=激活终止。

QOS:最高位0执行1选择。

IEC104规约_第16张图片

3.4、104规约报文详解(最详尽的解释)

IEC-60875-5-104:应用模型是:物理层,链路层,网络层,传输层,应用层。

物理层保证数据的正确送达,保证如何避免冲突。(物理层利用如RS232上利用全双工)。

链路层负责具体对哪个slave的通讯,对于成功与否,是否重传由链路层控制(RS485 2线利用禁止链路层确认)。

应用层负责具体的一些应用,如何全数据还是单点数据还是类数据等(网络利用CSMA/CD等保证避免冲突的发生)。

基本定义:端口号2404,站端为server,控端为client,平衡式传输,2Byte站地址,2Byte传送原因,3Byte信息地址。

IEC104规约_第17张图片

 每个字节都是unsigned char类型,如果是2个字节表示一个short型,则都是低位在前,高位在后。

IEC104规约_第18张图片

IEC104规约_第19张图片

IEC104规约_第20张图片

IEC104规约_第21张图片

 IEC104规约_第22张图片

IEC104规约_第23张图片

 

 IEC104规约_第24张图片

IEC104规约_第25张图片

IEC104规约_第26张图片

IEC104规约_第27张图片

3.5、电度

3.6、遥信

3.7、遥测

3.8、保护事件

3.9、遥控

4、104规约数据传输过程(主要环节)

IEC104规约_第28张图片

IEC104规约_第29张图片

IEC104规约_第30张图片IEC104规约_第31张图片

IEC104规约_第32张图片

流程详解:

  1. 由客户端向服务器建立连接,同时,发送链路启动帧。
  2. 服务端在收到链路启动帧后,向客户端发送启动确认帧。
  3. 客户端收到启动确认帧后,发送总召唤命令数据请求帧。
  4. 服务端收到总召唤命令数据请求后,发送总召唤命令数据响应帧,然后继续发送总召唤命令数据。总召唤命令数据发送完成后,发送总召唤命令数据结束帧。
  5. 客户端在收到总召唤命令数据结束帧后,发送对时请求帧。
  6. 服务器收到对时请求帧后,发送对时响应帧。
  7. 由服务器主动向客户端发送变化数据帧。同时,收到客户端发送的控制类命令,回复相应的操作结果。
  8. 客户端等到下一个数据总召唤命令数据周期,重复第4步之后的流程。

4.1、初始连接过程

TCP连接和建立都是采用客户/服务器方式,主动发起连接的进程叫做“客户(Client)”,而被动等待连接建立的进程叫做“服务器(Server)”。

  • 厂站端的远动机是IEC104连接的服务器,运行一个服务器进程,它先发出一个“被动打开(passive open)”命令,告诉它的TCP要准备接受客户进程的连接请求,服务端口号是2404,然后服务器进程就处于“听(listen)”的状态,不断监测是否有客户进程要发起连接请求。如有则作出响应。
  • 调度端的通信前置这杯是IEC104连接的客户端,运行一个客户进程,它先向其TCP发出主动打开(active open)命令,表明要向2404端口建立运输连接。

4.2、启动数据传输(U帧START置位)

4.2.1、IEC104规约的启/停传输控制描述

控制站(例如A站)利用STARTDT(启动数据传输)和STOPDT(停止数据传输)来控制被控站(B站)的数据传输。

当连接建立后,连接上的用户数据传输不会从被控制站自动激活,即当一个连接建立时,STOPDT是缺省状态。在这种状态下,被控站并不通过这个连接发送任何数据,除了未编号的控制功能和对这些功能的确认。控制站必须通过这个连接发送STARTDT激活指令来激活这个连接中的用户数据传输,被控站用STARTDT确认响应这个命令。如果STARTDT没有被确认,这个连接将被控制站关闭。

这意味着站初始化后,STARTDT必须总是在来自被控站的任何用户数据传输(例如:总召唤信息)开始前发送。任何被控站只有在发送STARTDT确认后才能发送待发用户数据。

4.2.2、IEC104初始连接连接过程:IEC104规约_第33张图片

-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

4.3、总召唤

IEC104规约_第34张图片

4.3.1、总召过程

ASDU_100总召唤启动命令格式
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

总召确认(装置上行):回答确认命令。

ASDU_100总召唤启动确认数据格式
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 (确认)

4.4、遵循规则传输信息

4.4.1、传输规则

1、差错控制:防止报文丢失和报文重复传送。

通信双方通过对序列号的验证来实现“防止报文丢失和报文重复传送”功能,发送和接收两个序列号在每个报文和每个方向上都应按顺序加1,发送方增加发送序列号而接收方增加接收序列号。接收方可以将连续接收的最后一个正确报文序列号返回,作为对所有小于或等于该号的报文的有效确认。报文序号的确认是至关重要的,根据附加在报文上的接受序号,确认传输到对方正确报文的条数,确认有、无报文丢失。如果序号不正确,则认为报文丢失,要重新传输丢失的报文。

2、流量控制:使得发送端的发送速度不要太快,要使接收端来得及接收。由收方控制发方的数据流量,仍然是计算机网络中流量控制的一个基本方法。

IEC104规约相关的第二个参数:

  • K:未被确认的I帧格式ASDU的最大数目,推荐值=12;
  • W:最迟确认的APDU的最大数目,推荐值=8。

发送12个APDU未收到确认报文,应终止传输;收到8个APDU则要回应发送方确认报文。因此要分别对发送、接收报文进行计数,当12条报文发送后没有收到确认的S格式报文或者I格式报文(包含对方接收报文数目信息),则断开链接,进行重连。在无信息回应对方情况下,收到8条报文后也应立即发送S格式的报文回应对方,以防对方断开链接。

3、链路管理:即链路的建立,维持,释放。

IEC104相关的超时定义
参数 默认值 备注
t0 30秒 建立连接的超时
t1 15秒 发送或测试APDU的超时
t2 10秒 无数据报文时确认的超时,t2 < t1
t3 20秒 长期空闲状态下发送测试帧的超时

4.5、一段完成的基于TCP/IP的IEC104报文

IEC104规约_第35张图片

IEC104规约_第36张图片

IEC104规约_第37张图片

5、IEC104规约常用参数

  • T0:建立连接超时。t0规定了主站端和子站RTU端建立一次TCP连接的最大允许时间。(建议30秒,主站如果通过TCP连接子站超过30秒还没有建立连接,则应该重新建立连接,如果多次连接都不成功,则进行相应的告警等处理)
  • T1:t1规定发送方发送一个I格式报文或U格式报文后,必须在t1的时间内得到接收方的认可,否则发送方认为TCP连接出现问题并应重新建立连接;(建议15秒)
  • T2(T2 < T1):t2规定接收方在接收到I格式报文后,若经过t2时间未再收到新的I格式报文,则必须向发送方发送S格式帧对已经接收到的I格式报文进行认可;(建议10秒)
  • T3(T3 > T1):t3规定调度端或子站RTU端每接收一帧I帧、S帧或者U帧将重新触发计时器t3,若在t3内未接收到任何报文,将向对方发送测试链路帧;(建议20秒)
  • K:未被确认的I格式APDU(k)最大数目;(默认值12,k值的最大范围:1 32767(215-1)APDUs, 精确到 1APDU.
  • W:接收方收到w个I格式APDU后确认。(默认值8,w 值的最大范围:1 32767 APDUs, 精确到 1APDU(建议:w 不应超过 k 的三分之二。)

你可能感兴趣的:(远动监控技术,学习)