-
Notifications
You must be signed in to change notification settings - Fork 134
Open
Description
Hello everyone!
This is my test code
public class Main {
final static private int slaveId = 49;
public static void main(String[] args) {
String portName = args.length>0 ? args[0] : "/dev/ttyS4";
try {
Modbus.setLogLevel(Modbus.LogLevel.LEVEL_DEBUG);
SerialParameters serialParameters = new SerialParameters(
portName,
SerialPort.BaudRate.BAUD_RATE_9600,
8,
1,
SerialPort.Parity.NONE
);
SerialUtils.setSerialPortFactory(new SerialPortFactoryJSSC());
ModbusSlave slave = ModbusSlaveFactory.createModbusSlaveRTU(serialParameters) ;
slave.setServerAddress(slaveId);
slave.setBroadcastEnabled(true);
slave.setReadTimeout(args.length>1 ? Integer.valueOf(args[1]) : 10000);
FrameEventListener listener = new FrameEventListener() {
@Override
public void frameSentEvent(FrameEvent event) {
System.out.println("frame sent " + DataUtils.toAscii(event.getBytes()));
}
@Override
public void frameReceivedEvent(FrameEvent event) {
System.out.println("frame recv " + DataUtils.toAscii(event.getBytes()));
}
};
slave.addListener(listener);
ModbusHoldingRegisters holdingRegisters = new ModbusHoldingRegisters(1000);
for (int i = 0; i < holdingRegisters.getQuantity(); i++) {
holdingRegisters.set(i, i + 1);
}
holdingRegisters.setFloat32At(0, (float)(Math.PI * Math.random()));
slave.getDataHolder().setInputRegisters(holdingRegisters);
slave.getDataHolder().setHoldingRegisters(new ModbusHoldingRegisters(1000));
slave.listen();
} catch (ModbusProtocolException | ModbusIOException | SerialPortException e) {
e.printStackTrace();
}
}
}This is output:
INFO: Frame recv: 04031B6C000482A5
frame recv 04031B6C000482A5
INFO: Frame recv: 040308438CFE
frame recv 040308438CFE
WARNING: End address out of bounds : 38209
INFO: Frame recv: 5041
frame recv 5041
WARNING: null
INFO: Frame recv: 8BAE
frame recv 8BAE
WARNING: null
INFO: Frame recv: C040
frame recv C040
WARNING: null
INFO: Frame recv: 0204031B5800
frame recv 0204031B5800
WARNING: End address out of bounds : 23323
INFO: Frame recv: 04C3
frame recv 04C3
WARNING: null
INFO: Frame recv: 6B040308439A
frame recv 6B040308439A
WARNING: End address out of bounds : 18082
INFO: Frame recv: 556F
frame recv 556F
WARNING: null
INFO: Frame recv: 45B2
frame recv 45B2
WARNING: null
INFO: Frame recv: 53EC
frame recv 53EC
WARNING: null
INFO: Frame recv: AA6D
frame recv AA6D
WARNING: null
INFO: Frame recv: 070403E80002F1DD
frame recv 070403E80002F1DD
INFO: Frame recv: 070404440400
frame recv 070404440400
WARNING: End address out of bounds : 2116
...
It seems like it get all the packets of all the devices in a network and get some invalid frames too. As a result slave is almost don't respond for request.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels