关于数据运算请求大家帮忙一下。 点击:437 | 回复:4



zld430070

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 125回
  • 年度积分:0
  • 历史总积分:331
  • 注册:2006年6月02日
发表于:2007-09-05 21:36:00
楼主
本人刚接触西门子变频器通讯,对一组数据的变换不是很明白,希望大家能够帮忙解决一下,谢谢!数据变换如下:   42480000(HEX)=50.0(REAL)   ,我想知道它们是如何换算的呢?



皓月

  • 精华:9帖
  • 求助:0帖
  • 帖子:483帖 | 5271回
  • 年度积分:0
  • 历史总积分:8863
  • 注册:2003年11月09日
发表于:2007-09-05 21:41:00
1楼
不用转换,直接读其实数值就可以
如md0=42480000(hex)
在监控表监控时,去监控类型为real,数据=50.0

zld430070

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 125回
  • 年度积分:0
  • 历史总积分:331
  • 注册:2006年6月02日
发表于:2007-09-05 21:45:00
2楼
我知道,我是说将十六进制数4248 0000如何经过计算得出50这个实数值来,我就是不知道它的运算过程,还希望你能帮我说明一下,谢谢!

皓月

  • 精华:9帖
  • 求助:0帖
  • 帖子:483帖 | 5271回
  • 年度积分:0
  • 历史总积分:8863
  • 注册:2003年11月09日
发表于:2007-09-05 21:58:00
3楼
双字长参数,数值为42480000(IEEE 浮点
数)。IEEE 浮点数的格式如下:
位31 = 符号,
位23 至位30 = 阶,
位0 至位22 = 尾数,
用十进制数表示时是:
数值=((-1)的'符号'次幂)
x(2 的(阶-127)次幂)
x1.(尾数)。
在本例中:
符号=0,
阶=84(hex)=132
尾数:(1).900000 =[1+9/16+0/256...]
数值等于:(1)x(32)x(1.5625)=50.00。

zld430070

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 125回
  • 年度积分:0
  • 历史总积分:331
  • 注册:2006年6月02日
发表于:2007-09-05 22:01:00
4楼
好的,谢谢,我看一下!十分感谢!

热门招聘
相关主题

官方公众号

智造工程师