104规约问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、104规约可以简单理解成网络版的101规约。
他是建立在TCP/IP层之上,可以把他认为是会话层的的规约(我是这么理解的)。
在串口通讯程序中我们要自己写程序,用校验机制来保证及判断报文的完整性(属于链路层的东西);用重发机制保证报文不丢失(网络层或传输层的东西)。
而在网络通讯中,这些功能都由底层的TCP/IP协议完成了,所以,我们就不必关心再校验,丢包等问题了。
故此,104规约就没有你所说那些东西了
二、关于传输方式:平衡还是非平衡,是如何确定的,即什么情况下,子站才能知道应该采取什么方式进行数据传输:对于变位遥信soe数据主动上传还是等待召唤。
1、104规约是基于TCP/IP协议的电力系统通信规约,C/S结构的。
在通信开始时需要建立连接。
2、在104规约中的用户数据采用的时101规约的一部分ASDU单元。
3、104规约没有具体定义主站如何和子站进行通信的规则,是采用问答方式还是采用循环发送方式由主站决定,子站要能够完成主站相应的请求。
4、我们做的104规约是这样的。
开始建立连接,然后主站进行总召唤数据,子站回答总召唤。
然后主站进行分组召唤,根据分组标号,子站回答主站要的信息。
当子站有事件产生(包括SOE、遥信变位等),在子站的回答正常报文之前优先传送,保证实时性。
5、没有一级和二级数据之分。
6、子站不会主动上送数据,它相当于一个服务器,只会响应主站的请求。
7、当双方的通信规则是polling方式时,如果主站不进行召唤,子站是没有义务发送任何数据。
1,2,3,4,5都是可以理解的,也基本符合104规约,只是他既有总召唤,也有分组召唤(在104中是没有必要的)。
至于6,子站(IDE)不会主动上送数据,完全是无稽之谈。
从站一般是服务器,但是他并不是“只会响应主站的请求”。
注意,在104中,实际上链路层都已经包含在TCP/IP中了,104中使用了APCI 来控制报文的收发以及顺序,
在101中非平衡模式中,召唤1级或者2级数据是由链路层来完成的。
之所以这样做是因为有可能多个站点共享链路,召唤1级或者2级实际上是分配链路的访问权限,谁接到请求,谁发送数据。
而104是全双工的模式,介质访问使用了以太网的机制,因此在应用层不需要考虑冲突的问题,104使用站召唤和分组召唤来请求数据,另外子站也可以通过背景扫描的方式主动地周期发送数据给主站。
三、104规约定义的三种控制域格式。
据我的理解就是U格式是用来激活/终止链路的。
I格式是用来控制站与被控站的信息传输的。
那么我想问它的S格式(编号的监视功能)是做什么用的呢?
理解了平衡传输,你就会明白为什么一定要有S帧格式的了!
S帧用于监视。
S格式用来确认收到I帧的个数
四、当被控站主动上传数据时,控制端没有进行STATRDT激活连接,请问此时如何工作?
谢谢!
没有激活连接,你就只能再连接了!
没有激活连接,那你就等吧,直到他发出了STARTDT,你响应STARTDT 后才能送
五、104没有重传机制,报文在超时,乱序后不是采用重传,而是关闭连接,然后重新建立连接,并将计数器清零
但是重新建立连接后也还是要把刚才未确认的数据重新发送一下呀。
对事件来说是需要的。
“重发不是保证数据正确,而是保证重要数据尽可能不丢失。
”重新连接后会有总召唤的
104规约中规定,在数据没有得到确认前,不能从缓冲区中删除。
但这样并不是为了重发,即104规约本身没有定义重发机制。
怎样理解这种规定,或者说既然不是为了重发,为什么得不到确认的就不能从缓冲区中删除?
如果数据没有确认,而删除了缓冲区的数据,势必造成确认计数器不准而必须重新连接。
在没有得到确认前,数据保存在缓冲区中,如果超时没有确认,则要重新建立连接,然后你可以将缓冲区中的数据再次发送。
当然你也在超时后清除缓冲区中的数据,但是对于某些重要数据的发送情况一定要告诉给应用层,然后由应用层决定是否重新发送。
IEC-60870-5-104:应用模型是:物理层,链路层,网络层,传输层,应用层
基本定义:端口号2404,站端为Server 控端为Client,平衡式传输,2Byte站地址,2Byte传送原因,3Byte信息地址。
发送数据:
68 04 07 00 00 00 (对这条报文做个分析;起始字节=68 数据单元长度(APDU)=4 U格式帧 STARTDT:ACT=1 CON=0
STOPDT:ACT=0 CON=0 TESTFR: ACT=0 CON=0)
接收数据:
68 04 0b 00 00 00 (这条报文分析:起始字节=68 数据单元长度(APDU)=4 U格式帧 STARTDT:ACT=0 CON=1 STOPDT:ACT=0
CON=0 TESTFR: ACT=0 CON=0
链路连接完成!上面两条报文是:启动命令,启动确认04,07)
发送数据:
68 04 43 00 00 00 (起始字节=68 数据单元长度(APDU)=4 U 格式帧 STARTDT:ACT= 0 CON=0 STOPDT:ACT=0 CON=0
TESTFR: ACT= CON =0)
接收数据:
68 04 83 00 00 00 (起始字节=68 数据单元长度(APDU)=4 U 格式帧 STARTDT:ACT= 0 CON=0 STOPDT:ACT=0 CON=0
TESTFR: ACT=0 CON =143,83,是测试命令,和测试确认)
发送数据:
68 04 43 00 00 00
接收数据:
68 04 83 00 00 00
发送数据:
68 04 43 00 00 00
接收数据:
68 04 83 00 00 00
发送数据: (64:TPY总召命令,01:NUM,06 00:Cause激活,01 00 :F.Add,00 00 00 :I.add)
68 0E 3C 00 9E 02 64 01 06 00 01 00 00 00 00 14
接收数据: (64:TPY总召命令,01:NUM,07 00:Cause激活确认,01 00 :F.Add,00 00 00 :I.add)
68 0E 6A 03 78 00 64 01 07 00 01 00 00 00 00 14
接收数据: (01:遥信[全遥信和遥信变位],D0:可变结构限定词[信息体的个数],14 00:传送原因,全数
据, 01 00:站地址,01 00 00:信息体地址[点号=信息体地址-起始地址],遥信状态 00:分,01合)
68 5D 6C 03 78 00 01 D0 14 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 接收数据:
68 5D 6E 03 78 00 01 D0 14 00 01 00 51 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 01 01 01 00 01 00 00
01 01 01 01 00 01 00 01 01 01 01 01 00 01 00 00 00 00 00 00 00 00 00 发送数据:
68 04 01 00 A4 02 (这个是S帧,没有具体信息内容,用来对站端所发信息报文的确认)
发送数据:
68 04 43 00 00 00
发送数据:
68 04 43 00 00 00
接收数据:
68 5D 70 03 78 00 01 D0 14 00 01 00 A1 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 01 00 00 01 01 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 01 01 01 00 01 00 00 01 00 00 00 01 01 00 00 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 发送数据:
68 04 43 00 00 00
接收数据:
68 1D 72 03 78 00 01 90 14 00 01 00 F1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
接收数据: (15:遥测,B2可变结构限定词,14 00:全数据,01 00 :站地址, 01 07 00 :信息体地址[点号=
信息体地址-起始地址,比如:信息体地址=0X701,应用厂站表配置YC起始地址=0X701,所以点号=0X701-0X701=0])
注意:YX,COS,SOE的起始地址一致68 71 74 03 78 00 15 B2 14 00 01 00 01 07 00 00 00 00 00 03 00 03 00 03 00 00 00 00 00 05 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
接收数据:
68 71 76 03 78 00 15 B2 14 00 01 00 33 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 49 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BA F1 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
接收数据:
68 71 78 03 78 00 15 B2 14 00 01 00 65 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
接收数据:
68 71 7A 03 78 00 15 B2 14 00 01 00 97 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00。