Hello, so far getting byte values is working but I'd like some opinions on the byte order. Should byte 0 be the LSB or MSB? Modbus being big-endian the first byte in the register (register is a 16-bit word) is the MSB. The second is the LSB. But in my PLC when I configure the variables the first byte value at a given address is the LSB, the second the MSB. To summarize: PLC configuration BYTE first AT %QB616 BYTE second AT %QB617 MODBUS register 308 (word value) second | first modbus4j should this be batchRead.addLocator("second", slaveId, RegisterRange.INPUT_REGISTER, 308, DataType.BYTE, (byte) 0); batchRead.addLocator("first", slaveId, RegisterRange.INPUT_REGISTER, 308, DataType.BYTE, (byte) 1); or batchRead.addLocator("first", slaveId, RegisterRange.INPUT_REGISTER, 308, DataType.BYTE, (byte) 0); batchRead.addLocator("second", slaveId, RegisterRange.INPUT_REGISTER, 308, DataType.BYTE, (byte) 1); I would prefer the latter. Regards jmbsps