104规约

1、介绍

厂站与配网主站进行通讯的规约,以以太网为载体,服务模式是平衡模式;
用于远动控制通信的,用于调度自动化系统,厂站之间的通讯;
具有TCP/IP的冲突检测和错误重传机制,具有比101协议更高的可靠性和稳定性;
端口号默认为2404。

2、帧格式

2.1、104规约的帧格式如下图:
在这里插入图片描述
APCI: 应用协议控制信息
ASDU:应用服务数据单元
APDU:应用协议数据单元
APCI控制信息的三种帧格式
控制域:定义了保护报文不至丢失和重复发送的控制信息,报文传输启动/停止,以及传输连接的监视等。
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。
信息元素集:以一定的格式表示的信息的状态或数值(如遥信量、遥测量的值)。
信息对象时标:信息发送的时间。(时、分、毫秒数)。
2.2、104的三种帧格式
I帧为信息帧,用于传输数据,长度大于6个字节,为长帧;
S帧为确认帧,用于确认接收的I帧,长度为6个字节,为短帧;
U帧为控制帧,用于控制启动/停止/测试,长度为6个字节,为短帧。
2.2.1、I帧的格式(信息传输)
传输应用数据,捎带确认对方的发送。传送自动化信息,含发送序号,接收序号,ASDU长度可变。
控制域的第一个八位位组的第1位比特=0定义了I格式,I格式应用规约数据单元常常包含应用服务数据单元ASDU。
在这里插入图片描述
注:
发送方发送信息时增加发送序号;
接收方确认对方的发送序号时增加接收序号;
带信息发送并确认对方帧。
接收序号为“期望序号”=实际接收序号+1。
2.2.2、S帧的格式(监视帧)
S格式帧为短帧,为计数的监视功能类型,用于传输对站端确认的报文,长度仅6个字节。无应用数据可传输时,带接受序号确认已经收到的信息。
控制域的第一个八位位组的第1位比特=1,第二位比特=0定义了S格式。S格式的APDU不包括ASDU,当报文接收方收到发送方的I格式报文后,如果没有I格式的报文发送给对方,可以向对方发送S格式的报文以对接收到的报文进行确认。
在这里插入图片描述
接受序列号为期望序列号。
2.2.3、U帧的格式(控制帧)
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功能之一被激活。
在这里插入图片描述
U、S帧长度固定为6个字节,只有APCI而无ASDU:68 04 xx xx xx xx。
68 04 07 00 00 00 启动传输激活
68 04 0B 00 00 00 启动传输确认
68 04 13 00 00 00 停止传输激活
68 04 23 00 00 00 停止传输确认
68 04 43 00 00 00 链路测试激活
68 04 83 00 00 00 链路测试确认
U格式的APDU的帧内容是固定的6种,如下图:
在这里插入图片描述
2.3、未被确认的I格式APDU最大数目(k)
k表示在某一个特定的时间内未被确认的连续编号的I格式APDU的最大数目。设置k值后,当未确认的I格式APDU达到k值时,发送方停止发送。接收方收到w个I格式的APDU后确认。k的取值范围是1~32767,w的取值范围应不超过k的2/3。
2.4、超时参数
T0:是控制站与被控站建立连接的超时时间,即被控站进入等待链接的状态后,若超过此时间,控制站还没有连接被控站,被控站就主动退出等待链接的状态;规约推荐缺省值为30秒。
T1:被控站启动U帧测试过程后等待U帧测试应答的超时时间,若超过此时间还没有收到控制站的U帧的测试应答帧,就主动关闭TCP链接;规约缺省值为15秒。
T2:被控站以突发的传送原因向控制站上送了变化信息或以激活结束的传送原因向控制站上送总召唤/电度召唤结束帧后,等待控制站S帧的超时时间,若超过此时间还没有收到,就主动关闭TCP链接;规约推荐缺省时间为10秒。
T3:当被控站和控制站之间没有实际的数据交换时,任何一端启动U帧的测试过程的最大时间间隔;规约的缺省时间为20秒。

3、报文解析

以公共地址字节数为2,传输原因字节数为2,信息体地址字节数为3,进行一下简单的报文解析。
3.1、首次握手(U帧)
发送-----激活传输启动: 68(启动符)04(长度)07(控制域)00 00 00
接收-----确认激活传输启动: 68(启动符)04(长度)0B(控制域)00 00 00
3.2、总召唤(I帧)
召唤YC、YX(可变长I帧)初始化后定时发送总召唤,每次总召唤的间隔时间一般设置15分钟召唤一次,不同的主站系统设置不同。
发送-----总召唤:68(启动符)0E(长度)00 00(发送序号)00 00(接收序号)64(类型标识)01(可变限定结构词)06 00(传输原因)01 00(公共地址即RTU地址)00 00 00(信息体地址)14(区分是总召唤还是分组召唤,02年修改后的规约中不存在分组召唤)
接收-----S帧
注意:记录接收到的长帧,双方可以按频率发送,比如接收8帧I帧回复1帧S帧,也可以要求接收1帧I帧回复1帧S帧。
68 04 01 00 02 00
接收-----总召唤确认(发送帧的镜像,除传输原因不同):
68(启动符)0E(长度)00 00(发送序号)00 00(接收序号)64(类型标识)01(可变限定结构词)07 00(传输原因)01 00(公共地址即RTU地址)00 00 00(信息体地址)14(同上)
发送-----S帧
68 04 01 00 02 00
接收-----YX帧(以类型标识1为例)
68(启动符)1A(长度)02 00(发送序号)02 00(接受序号)01(类型标识,单点遥信)04(可变结构限定词,有4个遥信上送)14 00(传输原因 响应总召唤)01 00(公共地址即RTU地址)03 00 00(信息体地址,第3号遥信)00(遥信分)
发送-----S帧
68 04 01 00 04 00
接收-----YX帧(以类型标识3为例)
68(起始符)IE(长度)04 00(发送序号)02 00(接收序号)03(类型标识,双点遥信)05(可变结构限定词,有5个遥信上送)14 00 (传输原因,响应总召)01 00(公共地址)01 00 00(信息体地址,第1号遥信)02(遥信合)06 00 00(信息体地址,第6号遥信)02(遥信合)0A 00 00(信息体地址,第10号遥信)01(遥信分)0B 00 00(信息体地址,第11号遥信)02(遥信合)0C 00 00(信息体地址,第12号遥信)01(遥信分)
发送-----S帧
68 04 01 00 06 00
接收-----YC帧(以类型标识9为例)
68 (起始符) 13(长度)06 00(发送序号)02 00(接收序号)09(类型标识,带品质描述的遥测)82(可变结构限定词,有2个连续遥测上送)14 00(传输原因,响应总召唤)01 00(公共地址)01 07 00(信息体地址,从0x0701开始第0号遥测)A1 10(遥测值10A1)00 (品质描述)89 15(遥测值1589)00 (品质描述)
发送-----S帧
68 04 01 00 08 00
接收-----结束总召唤帧
68(启动符)0E(长度)08 00(发送序号)02 00(接受序号)64(类型标识)01(可变结构限定词)0A 00(传输原因)01 00(公共地址)00 00 00(信息体地址)14(同上)
发送-----S帧
68 04 01 00 0A 00
3.3、发送对时报文(通过设置RTU参数表中的“对间间隔”,单位是分钟,一般是20分钟)
发送-----对时命令
68(起始符)14(长度)02 00(发送序号)0A 00(接收序号)67(类型标识)01(可变结构限定词)06 00(传输原因)01 00(公共地址)00 00 00(信息体地址)01(毫秒低位)02(毫秒高位)03(分钟)04(时)81(日与星期)09(月)05(年)
接收-----对时命令
68(起始符)14(长度)02 00(发送序号)0A 00(接收序号)67(类型标识)01(可变结构限定词)07 00(传输原因)01 00(公共地址)00 00 00(信息体地址)xx(毫秒低位)xx(毫秒高位)xx(分钟)04(时)81(日与星期)09(月)05(年)
发送-----S帧
68 04 01 00 0E 00
3.4、电度总召唤(一般是15分钟召唤一次)
发送-----召唤电度
68(起始符)0E(长度)04 00(发送序号)0E 00(接受序号)65(类型标识)01(可变结构限定词)06 00(传输原因)01 00(公共地址)00 00 00(信息体地址)45(QCC)
接收-----召唤确认
68(起始符)0E(长度)04 00(发送序号)0E 00(接受序号)65(类型标识)01(可变结构限定词)07 00(传输原因)01 00(公共地址)00 00 00(信息体地址)45(QCC)
发送-----S帧
68 04 01 00 12 00
接收-----电度数据
68(起始符)1A(长度)12 00(发送序号)06 00(接收序号)0F(类型标识)02(可变结构限定词,有2个电度量上送)05 00(传输原因)01 00(公共地址)01 0C 00(信息体地址,从0x0C01开始第1号电度)00 00 00 00(电度值)00 (描述信息)02 0C 00(信息体地址,从0x0C02开始第1号电度)00 00 00 00(电度值)01(描述信息)
发送-----S帧
68 04 01 00 14 00
接收-----结束总召唤帧
68(起始符)0E(长度)14 00(发送序号)06 00(接受序号)65(类型标识)01(可变结构限定词)0A 00(传输原因)01 00(公共地址)00 00 00(信息体地址)45(QCC)
发送-----S帧
68 04 01 00 16 00
3.5、如果RTU有变化数据主动上送,主动上送变为遥信,类型标识为1或3.
接收-----变位遥信
68(启动符)0E(长度)16 00(发送序号)06 00(接收序号)01(类型标识,单点遥信)01(可变结构限定词,有1个变位遥信上送)03 00(传输原因,表突发事件)01 00(公共地址)03 00 00(信息体地址,第3号遥信)00(遥信分)
发送-----S帧
68 04 01 00 18 00
接收-----变位遥信
68(启动符)0E(长度)18 00(发送序号)06 00(接收序号)03(类型标识,双点遥信)01(可变结构限定词,有1个变位遥信上送)03 00(传输原因,表突发事件)01 00(公共地址)06 00 00(信息体地址,第3号遥信)01(遥信分)
发送-----S帧
68 04 01 00 1a 00
主动上送SOE,类型标识为0x1e和0x1f
接收-----SOE
68(起始符)15(长度)1a 00(发送序号)06 00(接受序号)1e(类型标识,单点遥信)01(可变结构限定词,有1个SOE)03 00(传输原因,表突发事件)01 00(公共地址)08 00 00(信息体地址,第8号遥信)00(遥信分)ad(毫秒低位)39(毫秒高位)1c(分钟)10(时)7a(日与星期)0b(月)05(年)
发送-----S帧
68 04 01 00 1c 00
接收-----SOE
68(起始符)15(长度)1c 00(发送序号)06 00(接受序号)1f(类型标识,双点遥信)01(可变结构限定词,有1个SOE)03 00(传输原因,表突发事件)01 00(公共地址)0a 00 00(信息体地址,第10号遥信)01(遥信分)2f(毫秒低位)40(毫秒高位)1c(分钟)10(时)7a(日与星期)0b(月)05(年)
3.6、如果主站超过一定时间没有下发报文或RTU也没有上送任何报文则双方都可以按照频率发送U帧,测试帧。
发送-----U帧
68 04 43 00 00 00
接收-----应答
68 04 83 00 00 00
3.7、遥控
发送-----遥控预置
68(起始符)0e(长度)20 00(发送序号)06 00(接收序号)2e(类型标识)01(可变结构限定词)06 00(传输原因)01 00(公共地址)05 0b 00(信息体地址,遥控号0xb05-0xb01=4)82(控合)
接收-----遥控返校
68(起始符)0e(长度)0e 00(发送序号)06 00(接收序号)2e(类型标识)01(可变结构限定词)07 00(传输原因)01 00(公共地址)05 0b 00(信息体地址,遥控号0xb05-0xb01=4)82(控合)
发送-----遥控执行
68(起始符)0e(长度)04 00(发送序号)18 00(接收序号)2e(类型标识)01(可变结构限定词)06 00(传输原因)01 00(公共地址)05 0b 00(信息体地址,遥控号0xb05-0xb01=4)02(控合)
接收-----执行确认
68(起始符)0e(长度)12 00(发送序号)08 00(接收序号)2e(类型标识)01(可变结构限定词)07 00(传输原因)01 00(公共地址)05 0b 00(信息体地址,遥控号0xb05-0xb01=4)02(控合)
发送-----遥控撤销
68(起始符)0e(长度)04 00(发送序号)18 00(接收序号)2e(类型标识)01(可变结构限定词)08 00(传输原因)01 00(公共地址)05 0b 00(信息体地址,遥控号0xb05-0xb01=4)02(控合)
接收-----撤销确认
68(起始符)0e(长度)12 00(发送序号)08 00(接收序号)2e(类型标识)01(可变结构限定词)09 00(传输原因)01 00(公共地址)05 0b 00(信息体地址,遥控号0xb05-0xb01=4)02(控合)

4、常用的类型标识

4.1、遥测
09—带品质描述的遥测量,每个遥测值占三个字节
0A—带3个字节时标的且具有品质描述的遥测值,每个遥测值占6个字节
0B—不带时标的标度化值,每个遥测值占3个字节
0C—带3个字节时标的标度化值,每个遥测值占6个字节
0D—带品质描述的浮点值,每个遥测值占5个字节
0E—带3个字节时标且具有品质描述的浮点值,每个遥测值占8个字节
15—不带品质描述的遥测值,每个遥测值占2个字节
4.2、遥信
01—不带时标的单点遥信,每个遥信占1个字节
03—不带时标的双点遥信,每个遥信占1个字节
14—具有状态变位检测的成组单点遥信,每个字节包括8个遥信
4.3、SOE
02—带3个字节短时标的单点遥信
04—带3个字节短时标的双点遥信
1E—带7个字节时标的单点遥信
1F—带7个字节时标的双点遥信
4.4、遥调
0F—不带时标的电度量,每个电度量占5个字节
10—带3个字节短时标的电度量,每个电度量占8个字节
25—带7个字节长时标的电度量,每个电度量占12个字节
4.5、其他
2e—双点遥控
2f—双点遥调
64—召唤全数据
65—召唤全电度
67—时钟同步

5、常用的传输原因列表

1—周期,循环
2—背景扫描
3—突发,自发上传
4—初始化
5—请求或被请求
6—激活
7—激活确认
8—停止激活
9—停止激活确认
0A—激活结束
14—响应总召唤

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐