问题描述
我具有以下配置:
Modbus poll应用程序在通过USB串行适配器连接到Linux嵌入式设备的Windows计算机上运行:
slaveId=10,serialBaudrate=38400,serialDataBits=8,serialParity=EVEN,serialStopBits=1,serialPortFactory=JSerialComm,serialPortId=/dev/ttymxc1,
使用Modbus轮询(模拟Modbus主站)时,我尝试使用“写入多个寄存器”功能每10毫秒写入123个寄存器。 在Linux设备上,我正在运行一个java类,该类使用jLibModbus v1.2.9.7库(它将是modbus从站)和jSerialComm v2.6.2,可以正确读取前10-20条消息,然后我在日志中不断看到:
INFO: Frame recv: 0000
WARNING: null
我已如下编辑SerialPortJSerialComm类的'open'方法:
public void open() throws SerialPortException {
SerialParameters sp = getSerialParameters();
port = com.fazecast.jSerialComm.SerialPort.getCommPort(sp.getDevice());
port.openPort();
port.setComPortParameters(sp.getBaudrate(),sp.getDataBits(),sp.getStopBits(),sp.getParity().getValue(),true);
port.setFlowControl(com.fazecast.jSerialComm.SerialPort.FLOW_CONTROL_disABLED);
port.setComPortTimeouts(com.fazecast.jSerialComm.SerialPort.TIMEOUT_READ_SEMI_BLOCKING
| com.fazecast.jSerialComm.SerialPort.TIMEOUT_WRITE_BLOCKING,0);
in = port.getInputStream();
out = port.getoutputStream();
}
我也尝试过使用不同的超时配置,但没有任何运气。
有什么可能是错误的吗?
谢谢,谢谢。
安德里亚
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)