电力-104规约实际测试1「建议收藏」

电力-104规约实际测试1「建议收藏」104规约实际测试

大家好,又见面了,我是你们的朋友全栈君。

​ 以太网104规约实际测试1 ​

​ 以太网104规约实际测试2 ​

 以太网104规约实际测试3​​​​​​​

————————————————————————————————————————

调试规约(IEC104V1.0)

一.简介

1.1基本介绍

本规约的标准为国标IEC60870-5-104(2002)

基本定义:端口号2404,站端为客户端,控端为服务器,平衡式传输,2BytE站地址,2BytE传送原因,3BytE信息地址。

1.2事件分配

事件

含义

用途

备注

ASDU01  0x01

M-SP-NA-1:单点信息

总召唤中的遥信

ASDU11  0x0B

M-ME-NB-1:测量值,标度化值

总召唤中的遥测

ASDU30  0x1E

M-SP-TB-1:带时标CP56TimE2A的单点信息

SOE上传

ASDU45  0x2D

C-SC-NA-1:单命令

遥控

ASDU49  0x31

C-SE-NC-1:设定值命令,标度化值

设定值命令

ASDU100  0x64

C-IC-NA-1:总召唤命令

总召唤命令

ASDU102  0x66

C-RD-NA-1:读命令

读定值命令

ASDU103  0x67

C-CS-NA-1:时钟同步命令

时钟同步命令

具体报文及注意事项详见第二章。

————————————————————————————————————————

二.报文流程及示例

2.1 首次握手(U帧)

发送>激活传输启动: 

68(启动符)04(长度) 07(控制域)00 00 00

接收>确认激活传输启动 : 

68(启动符)04(长度)0B(控制域) 00 00 00

2.2 总召唤

召唤YC,YX(可变长I帧)初始化后定时发送总召唤。

发送→总召唤

68 (启动符)0E (长度)00 00(发送序号) 00 00(接收序号) 64(类型标识) 01(可变结构限定词) 06 00 (传送原因)01 00(公共地址即FTU站址) 00 00 00(信息体地址) 14(QOI,区分是总召唤还是分组召唤,02年修改后的规约中没有分组召唤) 

接收→S帧 :

68 04 01 00 02 00

接收→总召唤确认(发送帧的镜像,除传送原因不同)

68 (启动符)0E(长度) 02 00(发送序号) 02 00(接收序号) 64(类型标识) 01(可变结构限定词) 07 00(传送原因) 01 00 (公共地址即FTU站址) 00 00 00(信息体地址)14(同上) 

发送→S帧 :

68 04 01 00 00 00

接收→YX帧(以类型标识1为例) :

68 (启动符)16(长度) 04 00(发送序号) 02 00(接收序号) 01 (类型标识)03(可变结构限定词) 14 00(传送原因) 01 00 (公共地址即FTU站址)01 00 00(遥信地址1) 00 ()02 00 00(遥信地址2) 00() 03 00 00 (遥信地址3)00 ()

发送→S帧 :

68 04 01 00 00 00

接收→YC帧(以类型标识9为例) :

68 (启动符)25 (长度)06 00 (发送序号)02 00(接收序号) 09(类型标识) 88(可变结构限定词) 14 00(传送原因) 01 00(公共地址即FTU站址) 01 40 00 (信息体地址)00 00 (遥测值0)00(品质描述词QDS) 00 00(遥测值0) 00 (品质描述词QDS)00 00 (遥测值0)00 (品质描述词QDS)00 00(遥测值0) 00 (品质描述词QDS)00 00(遥测值0) 00(品质描述词QDS) 00 00 (遥测值0)00(品质描述词QDS) 00 00 (遥测值0)00(品质描述词QDS) 00 00 (遥测值0)00(品质描述词QDS)

发送→S帧 :

68 04 01 00 00 00

接收→结束总召唤帧 :

68 (启动符)0E(长度) 08 00(发送序号) 02 00(接收序号) 64 (类型标识)01(可变结构限定词) 0A 00(传送原因) 01 00 (公共地址即FTU站址)00 00 00(信息体地址) 14(QOI,区分是总召唤还是分组召唤,02年修改后的规约中没有分组召唤) 

2.3 如果FTU有变化数据主动上送

SOE主动上送,类型标识为0x1e,与国标相比,会多上送动作值及通道信息,通道信息在与电流及电压故障相关的SOE中有效。

接收→变位遥信 :

68 (启动符)18(长度) 06 00(发送序号) 00 00 (接收序号)1E(类型标识)01(可变结构限定词)03 00 (传送原因) 00 00(公共地址即FTU站址) 0F 10 00(信息体地址) 01() 0C 0E(毫秒,2个字节) 3A() 0B() 16() 04 () 0F () 00 00 (动作值) 0C(通道信息)

发送→S帧 :

68 04 01 00 1a 00

2.4 发送对时报文

发送→对时命令 :

68 (启动符)14(长度)00 00(发送序号)02 00(接收序号)67(类型标识)01(可变结构限定词)06 00(传送原因)01 00(公共地址即FTU站址) 00 00 00(信息体地址) EC 2E(毫秒,2个字节) 0C() 0C() 0C() 0C() 0C()

接收→对时确认 :

68(启动符)14(长度)0A 00(发送序号)04 00(接收序号)67(类型标识)01(可变结构限定词)07 00(传送原因)01 00(公共地址即FTU站址) 00 00 00(信息体地址) F2 2E (毫秒,2个字节)0C() 0C() 0C() 0C() 0C()

2.5遥控 

本套标准的遥信使用的是单点遥信,因为控制器的开出会自动释放掉,因此不会执行分操作,只有合命令

发送→遥控预置 :

68(启动符)0e(长度)00 00(发送序号)00 00(接收序号)2d(类型标识)01(可变结构限定词)06 00(传送原因)01 00(公共地址即FTU站址) 01 60 00(信息体地址)81(控合)

接收→遥控返校 :

68(启动符)0E(长度)0C 00(发送序号)06 00(接收序号)2d(类型标识)01(可变结构限定词)07 00(传送原因)01 00 (公共地址即FTU站址)01 60 00(信息体地址)81(控合) 

发送→遥控执行 :

68(启动符)0e(长度)00 00(发送序号)00 00(接收序号)2d(类型标识)01(可变结构限定词)06 00(传送原因)01 00(公共地址即FTU站址)01 60 00(信息体地址)01(控合)

接收→执行确认 :

68(启动符)0e(长度)0e 00(发送序号)08 00(接收序号)2d(类型标识)01(可变结构限定词)0a 00(传送原因)01 00(公共地址即FTU站址)01 60 00(信息体地址)01(控合)

发送→遥控撤消 :

68(启动符)0e(长度)02 00(发送序号)02 00(接收序号)2d(类型标识)01(可变结构限定词)08 00(传送原因)01 00(公共地址即FTU站址)01 60 00(信息体地址)01(控合)

接收→撤消确认 :

68(启动符)0e(长度)12 00(发送序号)0a 00(接收序号)2d(类型标识)01(可变结构限定词)09 00(传送原因)01 00(公共地址即FTU站址)01 60 00(信息体地址)01(控合)

2.6遥调

2.6.1读取定值

遥调用于远程读取修改系统的定值,定值上传使用的是ASDU12(短浮点)命令。同时,因为控制器一次最多传送10个定值,因此主站需要一次性读取多个点号的定值时,从站会分多次上送。

2.6.1.1读取单个定值

发送>定值读取

68(启动符)0D(长度)00 00(发送序号)00 00(接收序号)66(类型标识)01(可变结构限定词)05 00(传送原因)01 00(公共地址即FTU站址)0D 50 00(信息体地址) 

接收>定值上传

68(启动符)10(长度)00 00(发送序号)02 00(接收序号)0B(类型标识)01(可变结构限定词)0A 00(传送原因)01 00(公共地址即FTU站址)0D 50 00(信息体地址) 02 00(定值值2) 00(品质因数) 

2.6.1.2读取多个定值

发送>定值读取

68(启动符)0D(长度)00 00(发送序号)00 00(接收序号)66(类型标识)CB(可变结构限定词)05 00(传送原因)0100(公共地址即FTU站址)01 50 00(信息体地址)

接收>定值上传

68(启动符)67(长度)04 00(发送序号)06 00(接收序号)0B(类型标识)9E(可变结构限定词)05 00(传送原因)01 00(公共地址即FTU站址)01 50 00(信息体地址)10 27(定值)00 (品质因数)10 27(定值) 00(品质因数) 10 27(定值) 00(品质因数) 10 27(定值)00 (品质因数)10 27(定值)00 (品质因数)10 27(定值)00(品质因数) 10 27(定值)00(品质因数) 10 27(定值)00 (品质因数)10 27(定值)00(品质因数) 10 27 (定值)00(品质因数) 10 27(定值)00(品质因数)10 27(定值)00(品质因数)02 00(定值)00(品质因数)D0 07(定值)00(品质因数)00 00(定值)00(品质因数)e8 03(定值)00(品质因数)00 00(定值)00(品质因数)00 00(定值)00(品质因数)00 00(定值)00(品质因数)f4 01(定值)00(品质因数)14 00(定值)00(品质因数)00 00(定值)00(品质因数)E8 03(定值)00(品质因数)E8 03(定值)00(品质因数)00 00(定值)00(品质因数)50 46(定值)00(品质因数)64 00(定值)00(品质因数)00 00(定值)00(品质因数)88 13(定值)00(品质因数)64 00(定值)00(品质因数) 

发送→S帧 :

68 04 01 00 00 00

接收>定值上传

68(启动符) 67(长度)06 00(发送序号)06 00(接收序号)0b(类型标识)9E(可变结构限定词)05 00(传送原因)01 00(公共地址即FTU站址)1F 50 00(信息体地址)00 00(定值)00(品质因数) 60 6D(定值)00(品质因数) 64 00(定值)00(品质因数) 00 00(定值)00(品质因数) 03 00(定值)00(品质因数) 0A 00(定值)00(品质因数) 64 00(定值)00(品质因数) C8 00(定值)00(品质因数) B8 0B(定值)00(品质因数) 00 00(定值)00(品质因数) 00 00(定值)00(品质因数) 00 00(定值)00(品质因数) E8 03(定值)00(品质因数) 00 00(定值)00(品质因数) 01 00(定值)00(品质因数) 14 00(定值)00(品质因数) 01 00(定值)00(品质因数) 14 00(定值)00(品质因数) 01 00(定值)00(品质因数) 01 00(定值)00(品质因数) 0F 00(定值)00(品质因数) 00 00(定值)00(品质因数) 01 00(定值)00(品质因数) 01 00(定值)00(品质因数) 64 00(定值)00(品质因数) 64 00(定值)00(品质因数) 30 75(定值)00(品质因数) E8 03(定值)00(品质因数) 01 00(定值)00(品质因数) 03 00(定值)00(品质因数) 

发送→S帧 :

68 04 01 00 00 00

接收>定值上传 

68(启动符)3A(长度)08 00(发送序号)06 00(接收序号)0B(类型标识)8F(可变结构限定词)0a 00(传送原因)01 00(公共地址即FTU站址)3D 50 00(信息体地址)00 00(定值)00(品质因数) 00 00(定值)00(品质因数) 01 00(定值)00(品质因数) A1 69(定值)00(品质因数) 14 00(定值)00(品质因数) AA 00(定值)00(品质因数) 4F 00(定值)00(品质因数) E7 00(定值)00(品质因数) 01 00(定值)00(品质因数) 00 00(定值)00(品质因数) 88 13(定值)00(品质因数) C8 00(定值)00(品质因数) 00 00(定值)00(品质因数) 50 46(定值)00(品质因数) C8 00(定值)00(品质因数)

2.6.2修改定值

2.6.2.1单点设置

发送>修改定值

68(启动符)10(长度)02 00(发送序号)04 00(接收序号)31(类型标识)01(可变结构限定词)0A 00(传送原因)01 00(公共地址即FTU站址)0D 50 00(信息体地址)02 00(定值)00(品质因数)

接收>定值修改完成并上传 

68(启动符)10(长度)00 00(发送序号)02 00(接收序号)31(类型标识)01(可变结构限定词)07 00(传送原因)01 00(公共地址即FTU站址)0D 50 00(信息体地址)02 00(定值)00(品质因数)

2.6.2.2多点设置

发送>修改定值:

68(启动符)67(长度)00 00(发送序号)02 00(接收序号)31(类型标识)9E(可变结构限定词)06 00(传送原因)01 00(公共地址即FTU站址)01 50 00(信息体地址)10 27(定值)00(品质因数)10 27(定值)00(品质因数)10 27(定值)00(品质因数)10 27(定值)00(品质因数)10 27(定值)00(品质因数)10 27(定值)00(品质因数)10 27(定值)00(品质因数)10 27(定值)00(品质因数)10 27(定值)00(品质因数)10 27(定值)00(品质因数)10 27(定值)00(品质因数)10 27(定值)00(品质因数)00 00(定值)00(品质因数)D0 07(定值)00(品质因数)00 00(定值)00(品质因数)E8 03(定值)00(品质因数)00 00(定值)00(品质因数)00 00(定值)00(品质因数)00 00(定值)00(品质因数)F4 01(定值)00(品质因数)14 00(定值)00(品质因数)00 00(定值)00(品质因数)E8 03(定值)00(品质因数)E8 03(定值)00(品质因数)00 00(定值)00(品质因数)50 46(定值)00(品质因数)64 00(定值)00(品质因数)00 00(定值)00(品质因数)88 13(定值)00(品质因数)64 00(定值)00(品质因数)

接收>定值修改完成并上传:

68(启动符)67(长度)04 00(发送序号)06 00(接收序号)31(类型标识)1E(可变结构限定词)07 00(传送原因)01 00(公共地址即FTU站址)01 50 00(信息体地址)10 27(定值)00(品质因数)10 27(定值)00(品质因数)10 27(定值)00(品质因数)10 27(定值)00(品质因数)10 27(定值)00(品质因数)10 27(定值)00(品质因数)10 27(定值)00(品质因数)10 27(定值)00(品质因数)10 27(定值)00(品质因数)10 27(定值)00(品质因数)10 27(定值)00(品质因数)10 27(定值)00(品质因数)00 00(定值)00(品质因数)D0 07(定值)00(品质因数)00 00(定值)00(品质因数)E8 03(定值)00(品质因数)00 00(定值)00(品质因数)00 00(定值)00(品质因数)00 00(定值)00(品质因数)F4 01(定值)00(品质因数)14 00(定值)00(品质因数)00 00(定值)00(品质因数)E8 03(定值)00(品质因数)E8 03(定值)00(品质因数)00 00(定值)00(品质因数)50 46(定值)00(品质因数)64 00(定值)00(品质因数)00 00(定值)00(品质因数)88 13(定值)00(品质因数)64 00(定值)00(品质因数)

2.7测试

如果主站超过一定时间没有下发报文或RTU也没有上送任何报文则双方都可以按频率发送U帧,测试帧

发送→U帧 :

68  04  43  00  00  00

接收→应答 :

68  04  83  00  00  00

————————————————————————————————————————

三.超时设定

参数

默认值

备注

选择值

t0

30s

连接建立的超时

 

t1

15s

发送或测试APDU的超时

 

t2

10s

无数据报文t2

 

t3

20s

长期空闲t3 >t1状态下发送测试帧的超时

 

T0 连接建立的超时,指主站端一直发出连接请求,在30秒内得不到连接建立成功的状态下,要向应用层提示,说明无法建立连接,一般可设置进行多次连接,当每次连接都超过30秒无法建立成功时给出提示。(当前控制器为服务器模式,此计数未用)

T1 发送或测试APDU的超时,指当发送一个APDU帧时,开始T1计时,在15秒内,如果得不到对方通过I帧或S帧的确认时,连接将被重新建立。这个过程是双向的,即对于厂站端和主站端当这个过程任一方发生时,两方的连接都需关闭,重新建立连接。

T2 发送报文的确认超时,指当收到一个I格式报文时,需要在0-10秒内给予确认。如果没有确认就可能发生T1超时,而从新建立连接。(T2未用)

T3 发送测试帧的超时,指当厂站端和主站端在无I格式数据需要发送,也无S格式帧进行确认时,数据链路空闲达到20秒,发送U格式TESTFR帧,以确定数据链路是否连通。发送测试帧后,若在T1时间内没有收到测试确认,则连接关闭,若达到20秒,则再次发送TESTFR帧。若在T3时间内收到I格式帧、S格式帧、U格式帧则计时计数器重新触发。

————————————————————————————————————————

四.IEC 60870-5-104规定的K值和W值

当报文接收方收到发送方的I格式报文后,如果没有I格式报文需要发送给对方,可以向对方发送S格式报文以对所接收到的报文进行确认;
为了防止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格式报文后长时间无法在对方的接收序号中得到确认,这就意味着发生了报文丢失。当出现上述这些报文丢失、错序的情况时,通常意味着TCP连接出现了问题,发送方或接收方应关闭现在的 TCP连接然后再重新建立新的TCP连接,并在新的TCP连接上重新开始会话过程。在主站端和子站RTU端进行通信时,接收方可以使用S格式报文(当有应用服务单元需要发送给对方时,可使用I格式报文)对已接收到的I格式报文进行确认,以免发送方超时收不到确认信息而重新建立TCP连接。这就存在一个接收方收到多少个I格式报文进行一次确认的问题,以及发送方应在多少个I格式报文未得到确认时停止发送数据。IEC 60870-5-104规定了两个参数k和w,其取值范围为1到32767,其中k表示发送方在有k个I格式报文未得到对方的确认时,将停止数据传送,w 表示接收方最迟在接收了w个I格式报文后应发出认可;IEC 60870-5-104规定k和w的默认值分别为12个APDU和8个APDU。在实际中,k和w的具体取值可以根据TCP连接双方的数据通信量来加以确定,对于子站RTU端来说,每收到一个调度端的I格式报文都应立即进行响应,其w的取值实际上为1,由于RTU端可以循环向调度端发送遥信、遥测等信息,因此k的取值与其循环发送的定时周期有关,通常12到20APDU就足够了;对于主站端,由于不停接收到RTU的数据,因此应及时地给以确认,通常w取小于8个APDU的值。

————————————————————————————————————————

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151396.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于Anycast的介绍[通俗易懂]

    关于Anycast的介绍[通俗易懂]Anycast最初是在RFC1546中提出并定义的,它的最初语义是,在IP网络上通过一个Anycast地址标识一组提供特定服务的主机,同时服务访问方并不关心提供服务的具体是哪一台主机(比如DNS或者镜像服务),访问该地址的报文可以被IP网络路由到这一组目标中的任何一台主机上,它提供的是一种无状态的、尽力而为的服务(如图1)。目前对于Anycast的中文译称主要有,“任播”、“泛潘”、“选播”等,本

    2022年5月24日
    140
  • 数据结构的堆排序_数据结构冒泡排序算法

    数据结构的堆排序_数据结构冒泡排序算法一、什么是堆排序1.堆,堆排序对于“堆”我们可以理解为具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆堆

    2022年8月16日
    3
  • SpringBoot和Spring到底有没有本质的不同?

    SpringBoot和Spring到底有没有本质的不同?现在的Spring相关开发都是基于SpringBoot的。最后在打包时可以把所有依赖的jar包都打进去,构成一个独立的可执行的jar包。如下图:使用java-jar命令就可以运行这个独…

    2022年5月10日
    32
  • 什么是51单片机最小系统?

    什么是51单片机最小系统?什么是单片机最小系统?说白了就是单片机能正常工作的最简单的电路。当然有些芯片自己上电就能工作,这里我们介绍的是51单片机的最小系统电路。通常51单片机的最小电路包括:单片机、晶振、复位电路。下面我们逐一介绍。一、单片机如上图所示,其各个引脚功能如下:1~8:P1对应的IO口(可编程输入输出口)。9:RST复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。10~17:P3对应的IO口。18:XTAL2晶振输出端。19:XTAL1晶振输入端。20:GND电源地。..

    2022年6月23日
    27
  • 浙江python培训

    浙江python培训浙江八年级新增Python编程课程,孩子能学得懂Python吗?前几天,浙江省的一则教育消息火了。据悉,从9月份开始的新学期,浙江省三到九年级信息技术课将同步替换新教材,其中,八年级将新增Python课程内容。新高一信息技术编程语言由VB替换为Python。八年级就要学Python,网友们展开了激烈的讨论。可以看出,编程教育在中小学阶段已经渐渐普及。对于中学开展Python课程,很多网友呈赞同态度。除了浙江,北京和山东也确定要把Python编程基础纳入信息技…

    2022年5月13日
    34
  • Glance详解_glance of

    Glance详解_glance ofGlance简介Glance是OpenStack平台中负责镜像服务的组件,其功能包括系统镜像的查找、注册和获取等,简单来说glance的功能就是用户可以通过其提供的RESTAPI查询和获取镜像元数据。glance负责OpenStack中的ImageService,那么Image是什么,简单来说Image就是一个模板,里面包含各种常用的操作系统和软件,这样用户在租用OpenStack服务后就…

    2025年7月26日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号