远动规约104
104规约简介

C. 接收电量报文。D:单点YX报文
信地
电量报文举例:
68 FA 46 00 80 0E0F1E03 0011 0001 64 0062 16 37 00 0102 64 002C410A00 0203 64 00E9 4D 00 00 0304 6400C3 13 00 00 0405 64 003E 6D 15 00 0506 64 0049 27 02 00 0607 64 006C97 06 00 0708 64 003C27 12 00 08……
G.激活终止的电量报文(电量发完以后接着发这个报文)。
b8 b7
0 0 未用
0 1 冻结不反复位
1 0 冻结并复位
11 计数器复位
bb—b1
0未用
1召唤第1码
2 召唤第2码
3召唤第3码
4召唤第4码
5总召唤
举例说明:68 0E4C00 80 0E65 010A0011 0000 00 0045
前六个字节是报文头,65是类型标识,01是信息个数,0A00是传送原因(终止激活)召唤电量结束,11 00是公共地址,00 00 00是信息地址(信息地址是0),45表示电度量是冻结不复位的总召唤。
二 . 104报文格式
1.APCI应用规约控制信息:它是所有发送/接收的报文头并可以单独发送。
APDU长度最大253,要除去启动符
68H和其本身
APCIAPDU是全报文
APDUAPDU
长度
利用IEC104远动规约解决实际问题

Data Base Technique •数据库技术Electronic Technology & Software Engineering 电子技术与软件工程• 159【关键词】104规约 通道 调试 分析随着变电站综合自动化系统的广泛应用,众多变电站已实现无人值班,这对主站端调控自动化系统、厂站端自动化系统的数据通信和数据交互提出了更高的要求,相比于传统串口通讯的CDT 规约,网口通讯的104规约具有可靠性高、传输速度快、传输信息容量大等更明显的优势。
截止2017年年底,陕西渭南地方电网的所有变电站已全部改为104规约。
但由于规约的自由度比较高,各个厂家使用的104规约也不全是标准的104规约,给日常的通道调试、运行工作带来了不少困难。
本文针对渭南地方电网在近几年的远动通道调试工作中遇到的影响设备正常运行的问题,着重以分析104报文为手段,结合渭南地方电网iES600Pro 电网调度自动化系统中104远动通讯异常的实际案例,深入剖析其内在原因,提出相应的解决对策,希望可以为电网的稳定运行提供一些参考。
1 104规约介绍IEC60870-5-104通讯规约,简称为IEC104规约,它是IEC 60870-5-101的网络访问,将IEC101规约应用服务数据单元通过以太网TCP/IP 链路传输,实现与调度主站的通信。
与其他通信协议一样,IEC104规约也有其对应的报文格式,如图1所示。
由图1可以看出,IEC104规约的报文由应用规约数据单元(APDU )构成,包含应用规约控制信息(APCI )和应用服务数据单元利用IEC104远动规约解决实际问题文/张望妮1 牛瑞2(ASDU )两部分。
2 参数设置不当造成的故障2.1 RTU地址设置不正确在ASDU 中,数据单元标识的第四个、第五个字节定义为应用服务数据单元ASDU 公共地址,也就是所谓的RTU 站址。
公共地址的位组数目由系统参数(网络—特定)所决定,每一个RTU 终端对应唯一的一个值,它可以寻址整个站或者站的特定部分。
104规约简介

104规约简介104 规约简介⼀ . 概述:101、104规约属于问答式异步通信⽅式。
104必须与101规约同时配套使⽤。
2002年国家经贸委正式发布,104规约的核⼼部分ASDU应⽤服务数据单元是101规约的定义,结合超⾼压公司的使⽤范围,对104规约的报⽂格式做⼀说明以便⼤家理解。
更详细的请看104和101的2002年正式版本。
104应⽤在tcp/lp 的1、2、3、4、7、层。
⼆ . 104报⽂格式1.APCI应⽤规约控制信息:它是所有发送/接收的报⽂头并可以单独发送。
APDU长度最⼤253,要除去启动符68H和其本⾝APDU是全报⽂ASDU:应⽤服务数据单元2.控制域分类:控制域⼋位位组分为3种格式,每种格式的定义内容不⼀样。
a. I格式:信息传输格式b.U格式:未编号的控制功能类型格式TEST.SPOPDT STARTDT 确认/⽣效只有⼀个是“1”之可能出03/13/23/43/83/07/0B 不可能出现其他码c. S 格式带编号的监视功能例如:发/收⼀组码: 68 04 01 00 96 77 这就S 格式,这是确认报⽂,在收报⽂经常出现。
刚开机时⽤于链路连接,收发两端都收到这个报⽂说明链路通了,可以发其它命令报⽂。
如果链路不通,主站会连发此报⽂2. ASDU 格式应⽤服务数据单元即信息区传输格式传送原因: 1字节/2字节各系统⾃定义,我们系统定义2字节。
101定义1个字节。
公共地址: 1字节/2字各系统⾃定义我们系统定义2字节。
101定义1个字节信息对象地址:1字/2字节/3字节我们系统定义3个字节,可以转16777215个信息,实际上2个字节就够65535。
101定义2个字节。
可变帧结构限定词: 7位定义长度,最⼤127个信息。
SQ=0 每个信息都带地址。
SQ=1 只有带⼀个有起始地址,其他信息不带地址,按顺序排列,全YX 、全YC 时SQ 都为1. 信息:最少⼀个字节,例如⼀个遥信,最多的可达9个字节,SOE8个字节。
104规约详细介绍及报文解析

104规约是指用于远动控制通信的规约,以以太网为载体,服务模式是平衡模式。
它是用于调度自动化系统,厂站之间的通讯。
它具有TCP/IP的冲突检测和错误重传机制,具有比101协议更高的可靠性和稳定性。
端口号默认为2404。
104规约的帧格式包括ASDU、控制域、信息体等部分。
其中,ASDU是应用服务数据单元,控制域定义了保护报文不至丢失和重复发送的控制信息,信息体包含了传输的数据内容。
104规约的帧格式有三种:I帧、S帧和U帧。
I帧为信息帧,用于传输数据,长度大于6个字节,为长帧;S帧为确认帧,用于确认接收的I帧,长度为6个字节,为短帧;U帧为控制帧,用于控制启动/停止/测试,长度为6个字节,为短帧。
以总召唤报文为例,其帧格式如下:起始字符加上信息体长度(字节数18)加上信息体。
其中,起始字符为68H,信息体长度为18个字节,信息体包括了控制域和信息体元素。
控制域中包含了编号的控制功能,如总召唤命令等。
信息体元素中包含了总召唤的各个信息体地址和信息体元素值。
104规约

104规约104:是厂站与配网主站进行通讯的规约,以以太网为载体,服务模式是平衡模式。
用于远动控制通信的,用于调度自动化系统,厂站之间的通讯;104规约的报文帧分为三类,I帧,S帧,U帧;I帧为信息帧,用于传输数据,长度大于6个字节,为长帧;S帧为确认帧,用于确认接收的I帧,长度为6个字节,为短帧;U帧为控制帧,用于控制启动/停止/测试,长度为6个字节,为短帧;长帧报文分为APCI和ASDU两个部分,统称为APDU,而短帧报文只有APCI部分;APCI的6个字节的构成:起动字符68H,1个字节;后面的报文长度,1个字节(最大253);控制域位组,4个字节;区分I,S,U 帧:I帧的4字节控制域位组规定为:字节1和字节2位发送序号,字节3和字节4为接收序号;注意:1.由于字节1和字节3的最低位固定为0,不用于构成序号,所以在计算序号时,要先转换成十进制数值,再除以2;2.由于低位字节在前,高位字节在后,所以计算时要先做颠倒;S帧的字节1固定为01H,字节2固定为00H,字节3和字节4位接收序号计算时仍要注意以上两点;U帧的字节2,3,4均固定为00H,字节1包含TESTFR,STARTDT,STOPDT三种功能,同时只能激活其中的一种功能;启动(STARTDT)和停止(STOPDT)都是由主站(104的客户端)发起的,先由主站发送生效报文,子站随后确认。
而主站和子站都可发送测试(TESTFR)报文,由另一方确认。
客户端发起:(请求连接报文和确认连接报文)STARTDT:68 04 07 00 00 00(启动激活);68 04 0B 00 00 00(启动确认)07 = 00000111,最后两个1表示信息传输格式为U格式,倒数第3个1表示请求连接;0B = 00001011,最后两个1表示信息传输格式为U格式,倒数第4个1表示连接确认;客户端发起:STOPDT:68 04 13 00 00 00(停止激活);68 04 23 00 00 00(停止确认)客户端和服务器对发:TESTFR:68 04 43 00 00 00 (测试激活);68 04 83 00 00 00(测试确认)104协议是101协议的网络版,101协议每次只能发送一个链路帧,而104协议可以连续发送多个链路帧,其传输效率明显高于101协议,而且具有TCP/IP的冲突检测和错误重传机制,具有比101协议更高的可靠性和稳定性,另外对通信延时的限制更宽松。
104规约整理

104规约定义一. 104报文的一般格式:以下图中:APCI 为应用规约控制信息ASDU 为应用服务数据单元APDU 为应用规约数据单元图 1 –远动配套标准的APDU定义图2 –远动配套标准的APCI定义1、104规约报文:启动字符为68H,没有结束字符(比如:101规约中的结束字符16)。
2、“APDU的长度”定义了APDU体的长度,◆它包括APCI中的四个控制域八位位组和ASDU。
既从控制域的第一个八位位组开始,到报文的最后结束。
◆ASDU的最大长度限制在249以内,因为APDU域的最大长度是253(APDU最大值=255减去启动和长度八位位组),控制域的长度是4个八位位组。
二、控制域的定义(I 格式、S 格式和U 格式)三种类型的控制域格式:用于编号的信息传输(I 格式)编号的监视功能(S 格式) 未编号的控制功能(U 格式)。
1、I 格式定义控制域第一个八位位组的第一位 = 0 定义了I 格式,I 格式的APDU 常包括APCI 和一个ASDU (数据单元)。
I 格式的控制信息如图3所示比特图 3– 信息传输格式类型的控制域(I 格式)2、S 格式定义控制域第一个八位位组的第一位 = 1 并且第二位 = 0 定义了S 格式,S 格式的APDU只包括APCI 。
S 格式的控制信息如图4所示。
比特 8 7 6 5 4 3 2 1图 4 –编号的监视功能类型的控制域(S 格式)3、U 格式定义控制域第一个八位位组的第一位= 1 并且第二位=1 定义了U 格式,U 格式的APDU 只包括APCI 。
在同一时刻,TESTFR, STOPDT 或 STARTDT 中只有一个功能可以被激活。
.U 格式的控制信息如图5所示八位位组 1 八位位组 2 八位位组 3 八位位组 4八位位组1 八位位组 2 八位位组 3 八位位组 4比特图 5 –未编号的控制功能类型的控制域(U 格式)三、数据传输过程1、 用启/停进行传输控制控制站(例如,A 站)利用STARTDT(启动数据传输)和STOPDT(停止数据传输)来控制被控站(B 站)的数据传输。
南方电网远动101、104通信规约故障分析及排查基本方法培训讲义
0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 类型标识(TYP) 可变结构限定词(VSQ) 标识符在 在7.2.3中定义 在7.2.4中定义 在7.2.5中定义 S/E QU 0 SCS 传送原因(COT) 应用服务数据单元公共地址 信息对象地址 SCO=单命令(在.7中定义) 信息对象 7.2中定义 数据单元
0 0 0 0 0 0 0 0 1 类型标识(TYP) 可变结构限定词(VSQ) 传送原因(COT) 应用服务数据单元公共地址 信息对象地址 0 0 SPI SIQ=带品质描述词的单点信息(在.1中定义) 7.2中定义 在中定义 在中定义 IV NT SB BL 0 标识符在 在中定义 数据单元 信息对象数i
其他类型: 单点命令 双点命令
应用层
遥控过程:
应用层
遥调举例: 应用服务数据单元∶ C_SE_NA_1设定命令, 规一化值
104规约
国家经济贸易委员会 发布标准分类号 中华人民共和国国家标准DL备案号:idt IEC60870-5-104:2001DL/T 634-200X代替DL/T634-1997远动设备及系统第5-104部分 传输规约采用IEC60870-5-101标准传输文件集的网络访问Telecontrol equipment and systemsPart 5-104:Transmission protocols(征求意见稿)57/487/FDIS 2001.6.29200x-xx-xx 发布200x-xx-xx 实施DL/T XXXXX—XXXXIEC前言1) 国际电工委员会(IEC)是一个由所有国家电工委员会(IEC国家委员会)组成的国际性标准化组织,国际电工委员会(IEC)的目的是为了推进在与电气和电子领域标准化有关的问题上促进国际间合作,为了这个目的及其它活动,国际电工委员会(IEC)发布国际标准,标准的编制委托技术委员会进行;任何对该题目感兴趣的国家委员会, 与国际电工委员会(IEC)有联系的国际的、政府的、以及非政府的组织都可以参加编制工作。
国际电工委员会(IEC)和国际标准化组织(ISO)间,按两个组织间协议规定的条件,实现了紧密的合作。
2) 由所有特别关切的国家委员会都参加技术委员会,由它所制定的国际电工委员会(IEC)就有关技术问题的正式的决议或协议,尽可能表达了有关题目的意见,这些意见是国际协商一致取得的。
3) 所产生的文件作为建议的形式供国际使用,并按标准、技术报告或导则的形式出版,并在此意义上为各个国家委员会所接受。
4) 为了促进国际间统一,各国家委员会承诺;最大限度可能透明地采用国际电工委员会标准,用于它们的国家标准或地区标准。
在国际电工委员会和相应国家或地区标准间有任何不同之处,应当在国家或地区标准中指明。
5) 国际电工委员会对任何宣称符合它的标准的设备不设标识申请程序以示认可,也不对此负有责任。
101及104规约报文解析方法
101、104规约报文解析方法一、电力系统数据通信协议体系IEC60870-5系列:远动通信协议体系IEC60870-6系列:计算机数据通信协议体系IEC61850-7系列:变电站数据通信协议体系IEC60870-5系列;IEC TC57 WG03(远动规约)配套标准IEC60870-5-101:基本远动任务IEC60870-5-102:电能累计量IEC60870-5-103:继电保护IEC60870-5-104:IEC60870-5-101的网络访问其他规约类型;CDT、DNP3.0、MODBUS等。
二、远动传输规约IEC60870-5-104的解析方法1)程序启动后,首先发送链路连接请求帧,68 04 07 00 00 00起始字符:68H应用规约数据单元长度(APDU):04H(4个字节,即07 00 00 00)控制域第一个八位组:07H-->0000 0111由前两位11可知是U格式帧;由第三四位01可知是链路连接请求帧2)随后,接到模拟从站发送来的连接请求确认帧,68 04 0B 00 00 00起始字符:68H应用规约数据单元长度(APDU):04H(4个字节,即0B 00 00 00)控制域第一个八位组:0BH-->0000 1011由前两位11可知是U格式帧;由第三四位10可知是链路连接确认帧3)主站发送测试链路询问帧,68 04 43 00 00 00控制域第一个八位组:43H-->0100 0011由前两位11可知是U格式帧;由第七八位01可知是链路测试请求帧4)从站发送链路测试确认帧;68 04 83 00 00 00控制域第一个八位组:43H-->0100 0011由前两位11可知是U格式帧;由第七八位11可知是链路测试确认帧5)主站发送总召唤激活请求命令;召唤全数据格式例如;68 0E 00 00 00 00 64 01 06 00 01 00 00 00 00 14起始字符:68H应用规约数据单元长度(APDU):0EH(14个字节,即00 00 00 00 64 01 06 00 01 00 00 00 00 14)控制域第一个八位组:00H-->0000 0000由第一位0可知是I格式帧;控制域第二个八位组:00H-->与第一个八位组的第2-8位组成0000 0000(高位)0000 000(低位)所以,发送序号N(S)=0(注:I格式帧计数)控制域第三四八位组:00H 00H-->0000 0000(第四个八位组,高位)0000 000(第三个八位组的第2-8位,低位)类型标识:64H(CON<100>:=总召唤命令)可变结构限定词:01H(SQ=0,number=1)传送原因:06H 00H(Cause=6,激活)APDU地址:01H 00H(ADDR=1,即0001H,低位在前,高位在后)信息体地址:00H 00H 00H(低位在前,高位在后)信息体元素:14H(召唤限定词QOI=20,站召唤全局)7)从站站发送总召唤激活结束命令,68 0E 06 00 02 00 64 01 0A 00 01 00 00 00 00 14传送原因;0A(结束字符)遥信报文;6)从站发送单点遥信数据帧;68 1E 02 00 02 00 01 05 14 00 01 00 0A 00 00 00 0C 00 00 00 0E 00 00 00 10 00 00 00 64 00 00 01控制域;02 00 02 00类型标识:01H(CON<1>:=单点信息)可变结构限定词:05H(SQ=0,number=5,由此可知有5个不连续的单点信息)传送原因:14H 00H(Cause=20,响应站召唤)终端地址:01H 00H第一个信息体地址:0AH 00H 00H(点号:10)第一个信息体数据:00H(遥信状态;分)第二个信息体地址:0CH 00H 00H(点号;12)第二个信息体数据:00H(遥信状态;分)。
iec104 规约
IEC 104规约IEC 104(International Electrotechnical Commission,国际电工委员会)规约是一种用于电力系统自动化和远动(Telecontrol)领域的通信协议。
它主要用于实时监测和控制电力设备,实现电力系统的自动化管理。
IEC 104 规约是全球电力系统自动化领域广泛应用的标准之一。
IEC 104 规约的主要特点和内容包括:1. 应用范围:IEC 104 规约适用于各种电力系统自动化装置,如保护装置、测量装置、控制装置等。
2. 通信协议:IEC 104 采用基于 TCP/IP(传输控制协议/因特网互联协议)的通信协议,实现设备之间的数据传输。
3. 消息结构:IEC 104 消息采用面向对象的设计,主要包括头域、地址域、应用域和数据域。
头域用于标识消息类型和版本;地址域用于标识消息的目的设备;应用域表示消息的功能;数据域包含具体的数据信息。
4. 数据传输方式:IEC 104 支持两种数据传输方式:同步传输(ASDU,Automatic Switched Data Unit)和异步传输(ADU,Application Data Unit)。
同步传输适用于实时性要求较高的场景,异步传输适用于实时性要求较低的场景。
5. 报文解析:IEC 104 报文采用面向对象的方法进行解析,实现设备间的数据交换。
报文解析过程包括:协议解析、应用解析和数据解析。
6. 安全性:IEC 104 规约提供了一定程度的安全性,包括数据加密、认证、防篡改等措施。
7. 兼容性:IEC 104 规约兼容多种通信网络和设备,如以太网、光纤通信、串行通信等。
8. 扩展性:IEC 104 规约具有良好的扩展性,可以根据实际需求添加新的功能和模块。
IEC 104 规约是一种用于电力系统自动化和远动领域的通信协议,具有广泛的应用前景。
通过 IEC 104 规约,可以实现电力设备之间的实时监测和控制,提高电力系统的自动化管理水平。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
远动规约104远动规约是站端RTU和调度系统进行信息交互的接口,随着软硬件技术的发展,远动规约也在不断地变化和发展。
国际和国内使用的远动规约多种多样,即使对于同一种规约,其传输格式也会因不同国家﹑不同生产厂家而不同;为了统一这种混乱局面,实现远动规约的标准化,国际电工委员会TC-57技术委员会制定了一系列远动规约的基本标准[1-5],并在此基础上制定了IEC60870-5-101远动规约,我国在非等效采用此规约的基础上制定了相应的配套标准DL/T634-1997[6]。
IEC60870-5-101为了提高通信的实时性,采用了只有物理层、数据链路层、应用层3层的增强性规约结构(EPA)[6],应用层直接映射到数据链路层,加强了信息的实时性。
在点对点和多个点对点的全双工配置下,此配套标准可以采用平衡式传输以发挥其内在潜力,此情况下由主站启动的链路传输服务有[7]:(1)由主站向子站循环询问越限的测量值的二级用户数据;(2)由主站定期召唤和询问全数据(包括状态量、测量值、变压器分接头位置、水位、频率);(3)由主站定期召唤电度量;(4)由主站向子站定期进行时钟同步;(5)由主站向子站发送控制断路器命令、调节步命令、设点命令、装载命令等;(6)当事故发生后,由主站向子站召唤事故顺序记录,包括状态量和继电保护信号的事故顺序记录;(7)支持文件传输,主站可以召唤故障录波装置记录扰动数据的数据文件。
由从站触发启动的链路传输服务主要是:(1)子站发生状态变位时主动传送的一级用户数据;(2)定时向主站传送子站的全数据,传送周期由子站的参数确定。
如果子站长时间没有接受到主站的信息,子站将缩短向主站传送全数据的周期,并变为向主站循环传送全数据。
采用子站主动向主站传送状态变位和全数据有两个优点;(1)子站发生状态变位后向主站传送的时间大大缩短;(2)如果由主站向子站传输的下行通道质量不好或中断情况下,上行信息的全数据和状态变位尚能保证向主站传送。
IEC60870-5-101提供了在主站和远动RTU之间发送基本远动报文的通信文件集,它适用的网络拓扑结构为点对点﹑多个点对点﹑多点共线﹑多点环形和多点星形网络配置的远动系统中,但它要求在主站和每个远动子站之间采用固定连接的数据电路,这意味着必须使用固定的专用远动通道。
随着欧美一些国家调度主站与变电站RTU的通信已逐步采用以太数据网,远动报文可能通过一些可以进行报文存贮和转发的数据网络进行传输,这些数据网络仅仅在主站和远动子站之间提供虚拟的数据电路,因此这种网络类型将使得报文传输出现延时,其延时可在相当大的时间范围内变化并和网络的通信负荷有关。
一般而言,可变的报文延时时间意味着不可能采用在IEC60870-5-101中所定义的主站和远动子站之间的链路层,为此,国际电工委员会(IEC)第57技术委员会(TC57)的第3工作组(WG03)于1998年8月制定了IEC60870-5-104标准(CDV),我国也制定了相应的配套标准DL/T634.5104-2002。
IEC60870-5-104协议的名称为“采用标准传输协议子集的IEC60870-5-101的网络访问”(Network access for IEC 60870-5-101 using standard transport profiles)。
此协议是将IEC60870-5-101标准用于TCP/IP网络,当调度主站与变电站连接到以太数据网,变电站RTU与调度主站通信时,通信规约则应采用IEC60870-5-104标准。
2 IEC60870-5-104远动规约详述2.1 IEC-60870-5-104的规约结构IEC-60870-5-104远动规约使用的参考模型源出于开放式系统互联的ISO-OSI参考模型,但它只采用其中的5层,其结构如图1所示,图2为TCP/IP规约组(RFC2200)选用的标准结构[8,9]。
由图1可见,IEC60870-5-104实际上是将IEC60870-5-101与TCP/IP(Transmission Control Protocol/Internet Protocol)提供的网络传输功能相组合,使得IEC60870-5-101在TCP/IP 内各种网络类型都可使用,包括X.25、FR(帧中继Frame Relay)、ATM(异步转移模式Asynchronous Transfer Mode)和ISDN(综合业务数据网Integrated Service Data Network)。
在图1的5层参考模型中,IEC60870-5-104实际上处于应用层协议的位置;基于TCP/IP的应用层协议很多,每一种应用层协议都对应着一个网络端口号,根据其在传输层上使用的是TCP协议(传输控制协议)还是UDP协议(用户数据报文协议),端口号又分为TCP端口号和UDP端口号,其中TCP协议是一种面向连接的协议,为用户提供可靠的、全双工的字节流服务,具有确认、流控制、多路复用和同步等功能,适用于数据传输,而UDP协议则是无连接的,每个分组都携带完整的目的地址,各分组在系统中独立地从数据源走到终点,它不保证数据的可靠传输,也不提供重新排列次序或重新请求功能,为了保证可靠地传输远动数据,IEC60870-5-104规定传输层使用的是TCP协议,因此其对应的端口号是TCP端口。
常用的TCP端口有:ftp文件传输协议,使用21号端口;telnet远程登录协议,使用23号端口;SMTP简单邮件传送协议,使用25号端口;http超文本传送协议,使用80号端口;IEC60870-5-104规定本标准使用的端口号为2404,并且此端口号已经得到IANA(互联网地址分配机构,Internet Assigned Numbers Authority)的确认。
对于基于TCP的应用程序来说,存在两种工作模式,即服务器模式和客户机模式。
服务器模式和客户机模式的区别是,在建立TCP连接时,服务器从不主动发起连接请求,它一直处于侦听状态,当侦听到来自客户机的连接请求后,则接受此请求,由此建立一个TCP连接,服务器和客户机就可以通过这个虚拟的通信链路进行数据的收发。
IEC60870-5-104规定控制站(即调度系统)作为客户机,而被控站(即站端RTU)作为服务器;因此无论是调度端软件还是RTU端软件都必然涉及到基于TCP/IP的网络编程。
可喜的是,Microsoft已经提供了一个WINDOWS下的TCP/IP 网络通信的API(应用编程接口),这个API就是Socket接口(套接字);不但如此,Microsoft 还提供了两个MFC类,即CAsyncSocket类和派生于CAsyncSocket 的CSocket类,它们完全封装了TCP/IP协议,传输层、网络层、链路层的工作都由它自动完成。
当使用Windows 的socket套接字进行网络编程时,发送方将每一个APDU都作为一个TCP包发送出去,接收方的socket套接字接收到一个完整的TCP包并将其中的APDU解析出来后,将调用socket 的OnReceive ( ) 函数,在应用程序中通过重载此函数,应用程序就能接收到一个完整的APDU,这将显著简化编程工作。
2.2 IEC-60870-5-104的应用规约数据单元的结构IEC-60870-5-104的应用规约数据单元(APDU)的结构如图3所示[8,9],它由应用规约控制信息(APCI)和应用服务数据单元(ASDU)组成,和IEC-60870-5-101的帧结构相比,其中应用服务数据单元是相同的,相异之处在于,IEC-60870-5-104使用应用规约控制信息(APCI),而IEC-60870-5-101使用链路规约控制信息(LPCI)。
在APDU中,启动字符68H 定义了数据流内的起始点,应用规约数据单元的长度定义了APDU主体的长度;需要注意的是,IEC 60870-5-104规定一个APDU报文(包括启动字符和长度标识)不能超过255个字节,因此APDU最大长度为253(等于255减去启动和长度标识共两个8位位组),ASDU 的最大长度为249,这个要求限制了一个APDU报文最多能发送121个不带品质描述的归一化测量值或243个不带时标的单点遥信信息,若RTU采集的信息量超过此数目,则必须分成多个APDU进行发送。
APDU 控制域包括4个8位位组,根据其定义,可以将APDU分成3种报文格式,即I格式、S格式和U格式,详见图4所示。
控制域的第一个8位位组的第1比特=0 定义了I格式,它表明APDU中包含应用服务数据单元ASDU;控制域的第一个8位位组的第1比特为1,第2比特为0定义了S格式,此种格式的APDU不包含ASDU,当报文接收方收到发送方的I格式报文后,如果没有I格式报文需要发送给对方,可以向对方发送S格式报文以对所接收到的报文进行确认;控制域的第一个8位位组的第1比特=1,第2比特=1定义了U格式,此种格式的APDU也不含ASDU,其作用主要在于实现3种控制功能,即启动子站进行数据传输(STARTDT)、停止子站的数据传输(STOPDT)和TCP链路测试(TESTFR)。
2.3 应用规约数据单元(APDU)的发送和接收序号的维护IEC 60870-5-104采用RFC 793/RFC791(即TCP/IP)协议。
IP协议负责将数据从一处传往另一处,TCP负责控制数据流量,并保证传输的正确性。
由于在最底层的计算机通信网络提供的服务是不可靠的分组传送,所以当传送过程中出现错误以及在网络硬件失效或网络负荷太重时,数据包有可能丢失、延迟、重复和乱序,因此应用层协议必须使用超时和重传机构。
为了防止I格式报文在传送过程中丢失或重复传送,IEC 60870-5-104的I格式报文的控制域定义了发送序号N(S)和接收序号R(S),发送方每发送一个I格式报文,其发送序号应加1,接收方每接收到一个与其接收序号相等的I格式报文后,其接收序号也应加1。
需要注意的是,每次重新建立TCP连接后,调度主站和子站RTU的接收序号和发送序号都应清零,因此在双方开始数据传送后,接收方若收到一个I格式报文,应判断此I格式报文的发送序号是否等于自己的接收序号。
若相等则应将自己接收序号加1,若此I格式报文的发送序号大于自己的接收序号,这说明发送方发送的一些报文出现了丢失;若此I格式报文的发送序号小于自己的接收序号,这意味着发送方出现了重复传送。
此外,I格式和S 格式报文的接收序号表明了发送该报文的一方对已接收到的I格式报文的确认,若发送方发送的某一I格式报文后长时间无法在对方的接收序号中得到确认,这就意味着发生了报文丢失。