------------这种情况我们遇见过,是网络中某一个仪表内部插板与外壳接线端子接触不良所致,可打开仪表,校正内部的接口,同时用橡皮檫檫接口位置。
----------建议轮询不要用done和error bit来做,很容易出错。我之前这样做的,说什么也不能轮询,看status也看不出是什么问题。最好的办法是用计数器,每个50ms增1,然后用用计数器的数值来调用modbusmaster,不去管什么done或error,机械性的轮询。
-----------modbus通迅本来速度就慢,对响应速度要求很严的场合不适用。
再者写这种程序时,另外再加一个监护程序,当发现轮询跳不动时,或轮询死机时,做一次故障记录并复位重启轮询程序。这样会好很多。
欢迎光临 工控编程吧 (https://www.gkbc8.com/) | Powered by Discuz! X3.4 |