我正在Linux上开发Modbus TCP客户端,以使用libmodbus与不同的Modbus设备进行通信。
要初始化TCP连接,将调用函数int modbus_connect(modbus_t *ctx);
,如果连接成功,则返回0。
我需要有一个单独的线程来连续监视此TCP与设备的连接,以查看它是否仍在连接,如果没有,请尝试再次连接。
连续调用modbus_connect
以检查连接是否成功将创建多个连接,这不是我想要的。
我可以尝试不断尝试从设备读取数据,如果有错误,请检查错误代码,然后尝试重新连接。但是,对Modbus设备进行读写操作是通过不同的类和线程进行的,应从通信控件中提取该类和线程。
[libmodbus中似乎没有任何功能可支持此功能。
任何建议都值得赞赏。
你比我走得更远。您能否分享一些有关如何成功建立连接的信息?我的设置与您可能的设置相同。我有一些要从中读取信息的APAR-654单元。
thnks