05、secs协议常见问题分析以及如何建立通信

发布时间 2023-05-24 19:45:17作者: 画个一样的我

1、建立通信

在主机和设备之间发送SECS-II消息之前,必须首先“建立”通信。这是通过S1F13(建立通信请求)消息来完成的。这应该是在初始启动后或在长时间不通信之后发送的第一个消息。

这里一定要注意,设备和主机在发送消息之前,一定要先建立通信。

通常情况下,主机和设备都会发送一个S1F13,而且不幸的是,两者都会超时,等待应答。不建议您这样做。

最好是让设备先发送S1F13。然后主机在回复设备的S1F13后,再发送S1F13给设备。让设备发送S1F13可能需要对该设备进行一些实验。有时,让设备进出远程模式,或让设备离线,然后在线,导致设备发送一个S1F13。

如何理解让设备发送S1F13可能需要对该设备进行一些实验?我的理解是:以为不确定设备会不会主动发送 S1F3,所以需要先行做测试,来确定设备会不会主动发送 S1F13。

2、协议故障排除

介绍在使用SECS协议时遇到的一些常见的错误场景。

2.1 T2 Timeout

下面显示了一个T2超时的场景。主机试图与设备通信,但设备脱机,没有响应。此错误情况可能是由物理断开或设备离线引起的。

注意:

这里也可能是设备与主机没有建立通信,导致的 T2 超时

2.2 T3 Timeout

下面显示了一个T3超时场景。主机会向该设备发送一条主消息。它完成时没有出现任何错误。但设备无法发送次要回复消息。错误条件表明主机和设备正在通信,但设备没有响应,这可能是因为通信尚未建立。

2.3 Function 0

函数0被保留给所有的流,以指示一个失败的事务。此次要应答由接收方发送,因此发送方不必等待T3超时。在任何情况下,它都像T3超时一样表示失败的事务。

2.4 Stream 9’s

Streams 9’s 由设备发送到主机,以指示:无法将来自主机的消息处理,或者设备对之前接收到的消息检测到超时。