C# NModbus4 没有收到回复

之前做过一个项目。

项目中,通过Modbus不断去读取PLC里面其中一个寄存器,寄存器里保存的是位置数。如果不为零时,就去拍归处理。

这阵子这个项目出了点问题,检测时,发现Modbus卡在动不了。

我使用的是C#语言的NModbus4这个类库。

后面查了一下,原来,使用这个类库,默认的设置为:

ReadTimeOut为-1,即无限等待。

Retries 为3,即重连3次。

所以万一没采集数据上来,则容易造成卡住的情况发生。

后面我这边是这样处理的,首先把这个读写的超时设置得比较短(30ms)。

然后不进行重新连接。自己处理,如果超时的话,就当没采集上来,自己再采集。

posted on 2022-07-30 18:00  不务正业的冯工  阅读(969)  评论(1编辑  收藏  举报

导航