java程序读取PLC的浮点数,读取到的小数位错误,请问如何解决?

1.采用modbus4j实现了modbus通信,但读取PLC的浮点数时,读取到整数位正确,小数位错误,请问如何解决?

  1. 读取PLC保持寄存器的方法如下:

    readHoldingRegistersTest(master,1,1,4);
    private static void readHoldingRegistersTest(ModbusMaster master,
            int slaveId, int start, int len) {
        try {
            ReadHoldingRegistersRequest request = new ReadHoldingRegistersRequest(
                    slaveId, start, len);
            ReadHoldingRegistersResponse response = (ReadHoldingRegistersResponse) master
                    .send(request);
            if (response.isException()) {
                System.out.println("Exception response: message="
                        + response.getExceptionMessage());
            } else {
                System.out.println(Arrays.toString(response.getShortData()));
                short[] list = response.getShortData();
                byte[] bb = shortToBytes(list);
                Float ff=byte2float(bb,0);
    
                System.out.println("读到"+ff);
    
            }
        } catch (ModbusTransportException e) {
            e.printStackTrace();
        }
    }
    

3.和PLC通讯时,PLC给出的数字为46.68,程序读取到的数字为46.5,![图片说明](https://img-ask.csdn.net/upload/201912/10/1575987797_782854.png)

4.和modbus slave仿真软件通讯时,数据读取正常。控制台输出如下:
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

2
java程序读取外部配置文件问题
2
Java Socket长连接读取数据
1
java Socket长连接读取日志程序设计
1
使用阿里easyexcel读取日期格式的数据得到的是数字
1
python如何操作HDFS读取Mapfile 文件
3
怎么用java scanner读取键盘输入 一次读取粘贴进来的多行?
2
Java语言,如何读取一个text类型的文本文件,到一个数组里面
7
java创建Thread线程,里面的值怎么返回让其他程序读取?
1
从网卡收到数据包到应用程序读取到数据都发生了什么?
1
java spire 读取指定段落 相同字体的下一个段落的内容
0
java spire 读取word 批注的最后一条回复
1
求助:一段程序从桌面的“图片”文件夹读取二进制文件传到已经有的缓冲区handle。?
2
Java Web项目,如何读取非classpath目录下的文件
0
java读取access数据库时,报错[Microsoft][ODBC 驱动程序管理器] 无效的字符串或缓冲区长度
0
Java语言CPU读取内存的控制是什么语句在后台操作进行的,原理是什么啊
3
初学者关于java读取csv文件并建立数组中跨类调用数组找不到文件的问题?
1
Java 通过ews-java-api-2.0.jar怎么将exchange服务器上获取到的邮件保存成eml格式到本地?
0
写一个Java程序,该程序读取一个文件中的TPL指令,并执行这些指令。
1
在windows下生成tfrecords,拷贝到linux后变成了stl 3d类型的文件导致程序读取报错?
0
Java语言如何读取txt学生成绩记录?txt文件放在作业05目录下,可能有好几个,读取哪一个