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

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

    FX3G,没有FLT指令,晕啊
    john42tw
    级别: 网络英雄
    精华主题: 0
    发帖数量: 1276 个
    工控威望: 6107 点
    下载积分: 52048 分
    在线时间: 1120(小时)
    注册时间: 2012-04-24
    最后登录: 2024-03-06
    查看john42tw的 主题 / 回贴
    5楼  发表于: 2013-11-29 13:17
    引用
    引用第4楼gaokunjian于2013-11-29 10:47发表的  :

    FX3G,没有FLT指令,晕啊

    把數據存在 (D1) D0
    人機上將D0設定為浮點數
    試看看
    gaokunjian
    级别: 略有小成
    精华主题: 0
    发帖数量: 190 个
    工控威望: 337 点
    下载积分: 1072 分
    在线时间: 353(小时)
    注册时间: 2011-06-27
    最后登录: 2024-09-18
    查看gaokunjian的 主题 / 回贴
    6楼  发表于: 2013-11-29 16:46
    引用
    引用第5楼john42tw于2013-11-29 13:17发表的  :

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

    试了,不行呢,这可难倒我啦 ,有哪位大神有好方法啊 跪拜
    yamqq
    雅马哈,爱普生,电装机器人。
    级别: 网络英雄

    精华主题: 0
    发帖数量: 1717 个
    工控威望: 5539 点
    下载积分: 24588 分
    在线时间: 299(小时)
    注册时间: 2008-05-05
    最后登录: 2024-08-25
    查看yamqq的 主题 / 回贴
    7楼  发表于: 2013-11-29 19:52
    这种方法慢慢算
    这个人很懒,什么也没有留下!
    catywu
    级别: 家园常客
    精华主题: 2 篇
    发帖数量: 621 个
    工控威望: 827 点
    下载积分: 19872 分
    在线时间: 537(小时)
    注册时间: 2007-08-19
    最后登录: 2024-09-13
    查看catywu的 主题 / 回贴
    8楼  发表于: 2022-06-01 21:31
    昨天碰到相同的问题,今天早上搞定了,下载浮点数十六进制转换器v1.0看看数据显示形式就明白了。很简单的。
    [ 此帖被catywu在2022-06-02 08:40重新编辑 ]
    18857713026
    赚点辛苦钱不容易啊 诶~~~~ 努力赚钱
    级别: 略有小成
    精华主题: 0
    发帖数量: 375 个
    工控威望: 469 点
    下载积分: 1145 分
    在线时间: 182(小时)
    注册时间: 2020-11-27
    最后登录: 2024-09-20
    查看18857713026的 主题 / 回贴
    9楼  发表于: 2022-06-07 16:30
    我之前用SMART做过  做成功能块  换算直接调用  
    不支持功能块的PLC  我想想就头大
    catywu
    级别: 家园常客
    精华主题: 2 篇
    发帖数量: 621 个
    工控威望: 827 点
    下载积分: 19872 分
    在线时间: 537(小时)
    注册时间: 2007-08-19
    最后登录: 2024-09-13
    查看catywu的 主题 / 回贴
    10楼  发表于: 2022-06-08 15:29
    人机直接读取传感器模块地址,人机上将传感器模块地址设为浮点数。我用MCGS触摸屏读取成功。
    niningtt
    级别: 工控侠客
    精华主题: 0
    发帖数量: 1229 个
    工控威望: 3549 点
    下载积分: 856 分
    在线时间: 458(小时)
    注册时间: 2010-08-24
    最后登录: 2024-06-25
    查看niningtt的 主题 / 回贴
    11楼  发表于: 2022-06-08 17:44
    PLC读过来就是浮点数,不需要转,本身就是十进制的浮点数,难不成还有16进制浮点数?