有些测量仪器输出的数据就是32位浮点数,你那个仪器,我不清楚数据排列是怎样的。我以某一款测量三相电量仪表为例说明一下,希望你可以从中得到启发。情况是这样的:
1、测量输出值是32位浮点数,其中低16位存放在第1个保持寄存器,高16位存放在第2个保持寄存器。
2、读取的每个保持寄存器数据是高8位在前,低8位在后。
3、三菱PLC的32位浮点数是由2个地址连续的寄存器存储,存储格式是低16位存入第1个,高16位存入第2个。例如,D1-D2存储浮点数,那么D1存储低16位,D2存储高16位。
4、根据三述上点描述,转换方法是,先把读取的仪表每个保持寄存器的高8位和低8位数据,组成一个16位数据,再把2个保持寄存器数据,按照低16位、高16位的顺序存入PLC的2个地址连续的D寄存器,这样就得到了浮点数。 我也是得到奇怪的数据后,经过思考才发现问题所在。
[ 此帖被zhangqi_1234在2018-11-02 12:16重新编辑 ]