1.gnu.io.NoSuchPortException。setCommPortId("COM1");
可能被占用,可能你没直连
2.rxtxSerial.dllrxtxParallel.dll这两个必须放在System32下面或者javajrebin目录下
3.RXTXcomm.jar和2的版本要一致,且放到项目依赖中
4.importcom.serotonin.io.serial.SerialParameters;seroUtils包
参数不匹配是因为modbus4j包版本不对
5.com.serotonin.messaging.TimeoutException
是因为长度不对(可能)
6.WriteCoilRequest这种Request里面包含了功能码(选择哪种Request取决于你的功能
码),所以你的起始地址和数据就是对应的offset和value
packagemain;
importcom.serotonin.io.serial.SerialParameters;
importcom.serotonin.modbus4j.ModbusFactory;
importcom.serotonin.modbus4j.ModbusMaster;
importcom.serotonin.modbus4j.exception.ModbusInitException;
importcom.serotonin.modbus4j.exception.ModbusTransportException;
importcom.serotonin.modbus4j.msg.*;
importjava.util.Arrays;
publicclassMasterTest{
//设定MODBUS网络上从站地址
privatefinalstaticintSLAVE_ADDRESS=1;
//串行波特率