求教关于MODBUS 浮点算法的问题 点击:462 | 回复:0



aleng1314

    
发表于:2009-11-27 09:38:18
楼主

昆仑通态的人机界面里存有 温度 压力 频率 以及 年 月 日 数据

温度 压力 频率 是以浮点数储存的

年 月 日 是以长整型的形式储存的

已经读出数据

温度 &H3F800000 =1                         人机界面显示为 1

压力 &H40400000 =2 .8388608      人机界面显示为 3

频率 &H42C80000 = 94.198988      人机界面显示为 100

年 &H07D9   = 2009      正常

月 &H000B   =11     正常

日 &H001B   =27     正常

我的数据处理是方式是 读连续的4个地址 读4个BYTE字节 然后按照国际的标准算法算的 得出这样的结果

首先我想问一下 是否允许我 用BYTE字节 来读 4字节的浮点数?

再次我的算法上是否有问题

附上我的算法 以&H40400000 为例子

0,100 0000    0,100 0000    0000 0000    0000 0000

左边起 第1位 0 表是正数 

第2~9位 为 128            128-127=1 表示2的1次幂  为2

第10~32位 是小数部分 取值为 4194304    即小数部分为 1.4194304

最后的结果 为 1x(1.4194304)x 2 = 2.8388608 

不知道我这么算 是否正确?请教问题到底出在哪?

 



楼主最近还看过

SSI ļʱ