关于将双精度浮点型数据转换为单精度浮点数的问题 点击:3337 | 回复:1



拐子奔

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 5回
  • 年度积分:0
  • 历史总积分:29
  • 注册:2015年7月20日
发表于:2015-07-22 21:45:42
楼主

    大家好,最近遇到一个仪表,MODBUS通讯数据为一个双精度浮点型数据,占用4个寄存器。

M340不支持双精度浮点型数据,如何进行转换保存为单精度浮点型数据呢?

    双精度的数据解析公式为

    X=(-1)^S x 2^( E-1023) x1.M

    双精度共64位,为0-63

    S:符号位,共1位,编号:63;

    E:阶码位,共11位,编号:62-52;

    M:小数位,共52位,编号51-0;


例如:40001:40E4;  40002: DA80;   40003::0000;    40004:0000

数据:40E4 DA80 0000 0000

则:

S=0,

E=40E=1038

M=4DA80

X=(-1)^0*2^(E-1023)*1.M

=2^15*1.(4*1/16+D*1/16^2+A*1/16^3+8*1/16^4+.........)

=32768*1.(0.25+13/16*16+10/16^3+.......)

=32768*1.(0.25+0.05078+0.0024+.......)

=42708.00

问题是:如果按照这样解析,程序如何做简便;

有没有更好的办法

PS:小弟新人,没有积分悬赏,希望大家多指点交流




Fengws_sd

  • 精华:0帖
  • 求助:4帖
  • 帖子:62帖 | 201回
  • 年度积分:0
  • 历史总积分:1179
  • 注册:2004年6月21日
发表于:2016-05-28 18:08:25
1楼

S7-200PLC双精度浮点数转单精度浮点数例程

http://www.doc88.com/p-3019721099554.html


热门招聘
相关主题

官方公众号

智造工程师