因为该问题难查,故单独放成一篇
问题:
模拟plc终端catplc与后台cata通信,消息走了n条后就停住了,后台显示发送读待机时间消息后未
收到终端的响应,等待超时后重连;
终端显示收到后台读待机时间消息后,回应了一条应答消息,之后后台就没有新的消息发过来了。
这里出现了一个问题,我们记作问题A,终端到底响应了没有?
遇到这类问题,应该偏向于发送最后一条消息的家伙可信,那么就应该相信终端这个家伙了,因为他最后显示发了一条应答消息。
那么后台最后发了一条消息(读待机时间),是这一条消息出错了吗?有可能,那么就在消息接收处设置断点跟吧,结果确实等不到消息。那么这时该怎么办呢?
其实是上一条消息错了(读终端状态消息),只所以这么说,是因为该消息过后下一条就出错了!
是处理(读终端状态消息)的应答时,出现了异常,该异常又被catch了,所以就显示该消息过了,但是该消息留在队列中并未出队(因为未正常处理完成,后面的出队命令就没有执行),于是引起了超时。
网友评论