Поскольку (jlibModbus java lib я использовал в качестве протокола) он использует 32 бита, используя 16-битные 2 регистра, я получил два значения регистра.
int[] registerValues = master.readInputRegisters(1,330,14);
int unitsReg1=registerValues[12];
int unitsReg2=registerValues[13];
float units=getRealRegisterValue(unitsReg1,unitsReg2);
тогда я написал этот метод
private float getRealRegisterValue(int register1, int register2) {
//Get binary string of register values
String s1 = Integer.toBinaryString(register1);
String s2 = Integer.toBinaryString(register2);
//Append them respectively
String b=s1+"s2";
//get integer values
int intBits = Integer.parseInt(b, 2);
System.out.println(intBits);
//get float real value from IEEE 754 format
float realValue = Float.intBitsToFloat(intBits);
return realValue;
}
Я думаю, что это будет кому-то полезно, я должен потратить на это много времени.