104规约整理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 站)的数据传输。这个方法很有效。例如,当在站间有超过一个以上的连接打开从而可利用时,一次只有一个连接可以用于数据传输。定义STARTDT 和STOPDT 的功能在于从一个连接切换到另一个连接时避免数据的丢失。STARTDT 和STOPDT 还可与单个连接一起用于控制连接的通信量。 2、测试过程:
(1)未使用但已建立的连接会通过发送测试APDUs( TESTFR=激活)并得到接收站发回的TESTFR=确认,在两个方向上进行周期性测试。
(2)发送站和接收站在某个具体时间段内没有数据传输(超时)会启动测试过程。
以上过程使用U 格式:在同一时刻,TESTFR, STOPDT 或 STARTDT 中只有一个功能可以被激活。
(1)在启动数据传输时:STARTDT 被激活,启动方STARTDT 生效,即第3位为1,接受方STARTDT 确认,即第4位为1 ,如下:
发送:启动数据传输U 帧 68 04 07 00 00 00
接受:启动数据传输确认U 帧 68 04 0b 00 00 00
(2)在启动测试过程时:TESTFR 被激活,启动方TESTFR 生效,即第7位为1,接受方TESTFR 确认,即第8位为1 ,如下:
发送:启动数据传输U 帧 68 04 43 00 00 00
接受:启动数据传输确认U 帧 68 04 83 00 00 00
(3)在停止数据传输时:STOPDT 被激活,启动方STOPDT 生效,即第5位为1,接受方STOPDT 确认,即第6位为1 ,如下:
发送:启动数据传输U 帧 68 04 13 00 00 00
接受:启动数据传输确认U 帧 68 04 23 00 00 00
八位位组t 八位位组3 八位位组4
八位位组2
3、传输过程
在创建一个TCP连接后,使用I格式传输数据,发送和接收序列号都被设置成0。两个序列号在每个APDU和每个方向上都会按顺序递增一位。发送方增加发送序列号,接受方增加接收序列号。当接收站按APDU正确收到的数字返回接收序列数字时,表示接收站认可这个APDU或者多个APDU.发送站把一个或几个APDU保存到一个缓冲区里直到它将自己的发送序列号作为一个接收序列号收回,这个接收序列号小于等于发送序列号时有效。这样就可以删除缓冲区里正确传送过的APDU。万一更长的数据传输只在一个方向进行,就得在另一个方向发送S格式,在缓冲区溢出或超时前认可APDU。这种方法应该在两个方向上应用。
报文实例:
初始化子站
TX:启动数据传输U帧:=68 04 07 00 00 00
RX:启动数据传输确认U帧:=68 04 0b 00 00 00
时钟同步
TX:校时命令:=68 14 00 00 00 00 67 01 06 01 01 00 00 00 00 78 23 1d 10 39 04 05
RX:校时命令:=68 14 00 00 02 00 67 01 07 00 01 00 00 00 00 78 23 1d 10 39 04 05
总召唤
TX:总召唤:=68 0e 02 00 02 00 64 01 06 01 01 00 00 00 00 14
RX:总召唤确认:=68 0e 02 00 04 00 64 01 07 00 01 00 00 00 00 14
RX:单点信息:=68 36 04 00 04 00 01 a9 14 00 01 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 01 00 00 00 00 00 00 00 00 00 01 00 00 RX:无品质测量值:=68 23 06 00 04 00 15 8b 14 00 01 00 01 07 00 00 00 00 00 00 00 00 00 00 00 a3 8b 00 00 00 00 00 00 00 00 02 00
RX:总召唤结束:=68 0e 08 00 04 00 64 01 0a 00 01 00 00 00 00 14
TX:S帧数据:=68 04 01 00 0a 00
TX:测试U帧:=68 04 43 00 00 00
RX:测试确认U帧:=68 04 83 00 00 00