gaokunjian
级别: 略有小成
精华主题: 0
发帖数量: 190 个
工控威望: 337 点
下载积分: 1072 分
在线时间: 353(小时)
注册时间: 2011-06-27
最后登录: 2024-09-18
查看gaokunjian的 主题 / 回贴
楼主  发表于: 2013-11-29 08:25
最近拿到一国外的传感器模块,采用RS485通信,通信协议里说输出的数据是32位单精度IEEE-754浮点数,想通过PLC把它转换为十进制的数,用在人机上做显示,请问该怎么去转换?如输出的数据为0x41280000,则十进制表示为10.50?
请高手解答!
john42tw
级别: 网络英雄
精华主题: 0
发帖数量: 1276 个
工控威望: 6107 点
下载积分: 52048 分
在线时间: 1120(小时)
注册时间: 2012-04-24
最后登录: 2024-03-06
查看john42tw的 主题 / 回贴
1楼  发表于: 2013-11-29 09:29
单精度IEEE-754浮点数 詳細解說上網查詢

    4        1         2         8         0         0          0        0
=0100   0001   0010   1000    0000   0000   0000   0000


bit 31       正負號     "0"  => +

bit23~30  指數       "100 0001 0" =>130    130-127=3  =>3次方

bit 0 ~22  尾數(要加1)=>"1010   1000    0000   0000   0000   0000"
                                   =1*2^3+0*2^2+1*2^1+0*2^0+1*2^-1.............
                                   =8        +0       +    2    +  0    + 0.5
                                   =10.5

  
john42tw
级别: 网络英雄
精华主题: 0
发帖数量: 1276 个
工控威望: 6107 点
下载积分: 52048 分
在线时间: 1120(小时)
注册时间: 2012-04-24
最后登录: 2024-03-06
查看john42tw的 主题 / 回贴
2楼  发表于: 2013-11-29 10:20
把數據存在 (D1) D0
[FLT D0 D10]
(D11)D10就是浮點數 10.5
人機上將D10設定為浮點數
本帖最近评分记录:
  • 下载积分:+1(catywu) 热心助人!
    john42tw
    级别: 网络英雄
    精华主题: 0
    发帖数量: 1276 个
    工控威望: 6107 点
    下载积分: 52048 分
    在线时间: 1120(小时)
    注册时间: 2012-04-24
    最后登录: 2024-03-06
    查看john42tw的 主题 / 回贴
    3楼  发表于: 2013-11-29 13:17
    引用
    引用第4楼gaokunjian于2013-11-29 10:47发表的  :

    FX3G,没有FLT指令,晕啊

    把數據存在 (D1) D0
    人機上將D0設定為浮點數
    試看看