恭喜,你发布的帖子
发布于 2026-01-08 16:25:02
101楼
现象实际上是有时MSG到电表时超时。你设置超时时间100ms,让其出错即可。本质上是电表的MODBUS程序写的有问题,或其CPU性能过弱。
测试方法:
1,超时改为100ms,超时就超时,对超时计数,若干次以后才判断通讯真正错误。
2,每个MSG后,延时若干Ms,比如20ms。
3,如果考虑硬件问题,可以加一个485中继器测试。
我帖子有说明过了。
西家MB有默认3次的重试。第一次询问,经历超时后发出第二次询问,又经历超时后发出第三次询问,又经历超时后报ERROR 3。结束本次msg指令。
我这个问题重来都是经历过第一次超时后,重试就成功了。没有出现过ERR 3的情况。
暂时绕过此问题的方法也在上面说过。只是没有条件再细究问题出在哪个点上。
你说:每个MSG后,延时若干Ms,比如20ms
MB本身有一个隐藏参数可以设定通讯前延迟时间。这个跟你提到的应该是同等作用吧?我上面也说过,我确实也加过MB外部的延时,就是用延时暂时绕过了这个问题。
请填写推广理由:
分享
只看
楼主