电力-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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • uint和int的区别_int32和uint32

    uint和int的区别_int32和uint32本次测试的环境是Mac系统下,CPU64位。注意:go语言中的int的大小是和操作系统位数相关的;如果是32位操作系统,int类型的大小就是4字节;如果是64位操作系统,int类型的大小就是8个字节1、测试不同int类型占用字节数大小1.1、测试有符号int类型import( “testing” “unsafe” “math” “fmt”)funcTestIntSize(t*testing.T){ fmt.Println(“不同int类型占用的字节数大小:”)

    2022年8月15日
    6
  • jQuery的Ajax实例(附完整代码)

    jQuery的Ajax实例(附完整代码)目录写在前边什么是AjaxAjax基本结构实例实例1实例2小结写在前边作为一个前端刚入门没多久的小白,想在这里分享一下我的学习内容,就算是学习笔记了。因为前端的大部分学习都是通过网站上的教程,所以遇到不懂得问题,也只有求助于网络,通过度娘,了解到了一些论坛、博客。在发现了众多技术大牛的同时,我也发现,一些像我这样的小白,由于能力有限,在查找相关资料的时候,对于大佬的一些操作理解困难,虽说能照猫…

    2022年7月26日
    10
  • Qt OpenGL教程[通俗易懂]

    原文:http://qiliang.net/old/nehe_qt/QtOpenGL教程最近一段时间除了学习Qt,翻译Qt文档之外,由于工作和兴趣的原因,开始着手看QtOpenGL编程。在网上搜索了有关OpenGL的教程,发现NeHe的OpenGL教程的还很不错,作者是NeHe。上面有很多种语言的实现,但是没有Qt和Gtk的,所以我就想着手写这个QtOp

    2022年4月9日
    196
  • 第七课 实战文件注册机制「建议收藏」

    第七课 实战文件注册机制「建议收藏」                实战文件注册机制【盲人摸象】故名思意就是借助一些我们常用的按钮事件,API断点,去高速有效的锁定此课主要是以回顾和巩固以上六课我们所学的知识,当然这课我奉劝大家还是认真的学习,尤其是以后想靠外挂赚钱的同学,这课学得多自然就会得多不要认为我就是一味的靠我的经验,以下就是一系列调试的技巧 这课主要是观看MOV的赋值,以及寄存器的变化,从而达到激活成功教程这也是以后在激活成功教程带有V…

    2022年7月26日
    6
  • Java学习之spring MVC常用注解

    Java学习之springMVC常用注解0x00前言续上篇文章的内容继续来记录springmvc会常用到的一些注解。0x01常用注解RequestParam注解@Controller

    2021年12月12日
    43
  • VARIANT、COleVariant 和_variant_t

    VARIANT、COleVariant 和_variant_t 在OLE、ActiveX和COM中,VARIANT数据类型提供了一种非常有效的机制,由于它既包含了数据本身,也包含了数据的类型,因而它可以实现各种不同的自动化数据的传输。下面让我们来看看OAIDL.H文件中VARIANT定义的一个简化版:structtagVARIANT{ VARTYPEvt; union{  shortiVal;//VT_I2.  longlVal;//VT

    2022年7月18日
    16

发表回复

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

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