我正在使用 jlibmodbus-1.2.8.4用于在 Linux Ubuntu 14.04 LTS
对于串行通信,我使用 JSSC - Java 简单串行连接器。
我正在使用 USB 转串行转换器
电缆串行连接到我的机器。
我为我的 ubuntu 使用了 FTDI 驱动程序,因为我使用的转换器电缆不提供 Ubuntu 驱动程序。所以我安装了FTDI drivers对于 x86。
我有测试应用程序,它确实第一次完美运行,我能够使用测试 MODBUS 模拟器读/写寄存器。但是在重新启动后,我收到串行读取超时错误并且它已停止工作。
我有以下问题:
- 我需要使用 USB 转串行转换器 FTDI 驱动程序吗?或 Ubuntu 14.04 LTS 不需要它,它已内置支持。
- 我也确实使用
sudo modprobe usbserial vendor=0xXXXXX product=0xXXXXX
加载了 usbserial 模块,我是否需要这样做,并将其添加到/etc/modules
中? - 在最新版本的“JlibModbus”
1.2.9.0
中,我收到 CRC 校验错误,而不是以前版本的串行读取超时错误?我已经验证了奇偶校验和波特率,这些参数没有问题,但读取保持寄存器的 CRC 仍然失败? - MODBUS RTU Master Java based Library 还有其他选择吗?我看过 jamod 和 modbus4j,但看起来不支持 RTU Master,而且我找不到任何示例。
最佳答案
我正在使用最新的 (1.2.9.1) JLibModbus 库和 USB 转串口转换器。我使用的是 Moxa UPort 1150I 和 Noname USB 转 RS485 转换器。
请打开 DEBUG 模式并显示输出。
此外,您可以尝试使用 j2mod 库。
关于java - JlibModbus Java 库的 Modbus 读取超时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47558315/