Используя Java-программирование и с помощью Modbusutill (Jmod) jar, я разработал код, который будет подключаться к ПЛК через Modbus TCP.Здесь я получил ситуацию, в которой мне нужно преобразовать 4 входных регистра в двойное значение.Скажем, регистры (16870,24900,1588,30492), и если я преобразую это, я должен получить значение, как 3003782.9651476783.Так что для преобразования я использовал метод, предоставленный библиотекой, вот код,
byte[] bytes = {(byte) 16870,(byte) 24895,(byte) -32348,(byte) 617};
double value = ModbusUtil.registersToDouble(bytes);
System.out.println(value);
, здесь я использовал метод ModbusUtil.registersToDouble(bytearray[])
, а в качестве параметра я предоставляю байтовый массив.Но это не работает, я получаю исключение,
java.lang.ArrayIndexOutOfBoundsException: 4
at net.wimpi.modbus.util.ModbusUtil.registersToDouble(ModbusUtil.java:326)
at modbus.ReadDataFromPLC.realValue(ReadDataFromPLC.java:110)
at modbus.ReadDataFromPLC.main(ReadDataFromPLC.java:11)
Это исключение, которое я получаю, кто-нибудь, пожалуйста, помогите мне, как преобразовать 4 целых числа, чтобы получить двойное значение.
Спасибо ввперед.