![](https://csdnimg.cn/release/download_crawler_static/14456148/bg4.jpg)
许 继 电 气 许继 104 通信规约
第 页
4
为了防止报文丢失和报文重复传送,两个序列号在每个 APDU 和每个方向上
都应按顺序加一。发送方增加发送序列号而接受方增加接收序列号。当接收站按
连续正确收到的 APDU 的数字返回接收序列号时,表示接收站认可这个 APDU
或者多个 APDU。发送站把一个或几个 APDU 保存到一个缓冲区里直到它将自
己的发送序列号作为一个接收序列号收回,而这个接收序列号是对所有数字小于
或等于该号的 APDU 的有效确认,这样就可以删除缓冲区里已正确传送过的
APDU。万一更长的数据传输只在一个方向进行,就得在另一个方向发送 S 格式,
在缓冲区溢出或超时前认可 APDU。这种方法应该在两个方向上应用。在创建一
个 TCP 连接后,发送和接收序列号都被设置成 0。
3.3. 测试过程:
未使用但已建立的连接会通过发送测试 APDU(TESTFR=激活)并得到接收
站发回的 TESTFR=确认,在两个方向上进行周期性测试。
发送站和接收站在某个具体时间段内没有数据传输(超时)会启动测试过程。
每一帧的接收 – I 帧,S 帧或 U 帧 – 会重新计时 t3.。B 站要独立地监视连接。
只要它接收到从 A 站传来的测试帧,它就不再发送测试帧。
测试过程也可以在“激活”的连接上启动,这些连接缺乏活动性,但需要确
保连通。
3.4. 用启/停进行传输控制
控制站(例如,A 站)利用 STARTDT(启动数据传输)和 STOPDT(停止数据
传输)来控制被控站(B 站)的数据传输。这个方法很有效。例如,当在站间有
超过一个以上的连接打开从而可利用时,一次只有一个连接可以用于数据传输。
定义 STARTDT 和 STOPDT 的功能在于从一个连接切换到另一个连接时避免数
据的丢失。STARTDT 和 STOPDT 还可与单个连接一起用于控制连接的通信量。
当连接建立后, 连接上的用户数据传输不会从被控站自动激活。 即,当一
个连接建立时 STOPDT 处于缺省状态。在这种状态下,被控站并不通过这个连
接发送任何数据,除了未编号的控制功能和对这些功能的确认。控制站必须通过
这个连接发送一个 STARTDT 指令来激活这个连接中的用户数据传输。被控站用
STARTDT 响应这个命令。如果 STARTDT 没有被确认,这个连接将被控制站关
闭。这意味着站初始化之后, STARTDT 必须总是在来自被控站的任何用户数
据传输(例如,一般的询问信息)开始前发送。任何被控站的待发用户数据都只
有在 STARTDT 被确认后才发送。
STARTDT/STOPDT 是一种控制站激活/解除激活监视方向的机制。 控制站
即使没有收到激活确认,也可以发送命令或者设定值。 发送和接收计数器继续
运行,它们并不依赖于 STARTDT/STOPDT 的使用。
在某种情况下,例如,从一个有效连接切换到另一连接(例如,通过操作员),
控制站首先在有效连接上传送一个 STOPDT 指令, 受控站停止这个连接上的用
户数据传输并返回一个 STOPDT 确认。 挂起的 ACK 可以在被控站收到