gaokunjian
級別: 略有小成
|
最近拿到一國外的傳感器模塊,采用RS485通信,通信協議里說輸出的數據是32位單精度IEEE-754浮點數,想通過PLC把它轉換為十進制的數,用在人機上做顯示,請問該怎么去轉換?如輸出的數據為0x41280000,則十進制表示為10.50? 請高手解答! |
---|---|
|
john42tw
級別: 網絡英雄
|
單精度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
級別: 網絡英雄
|
把數據存在 (D1) D0 [FLT D0 D10] (D11)D10就是浮點數 10.5 人機上將D10設定為浮點數 |
---|---|
本帖最近評分記錄: |
gaokunjian
級別: 略有小成
|
FX3G,沒有FLT指令,暈啊 |
---|---|
|
john42tw
級別: 網絡英雄
|
把數據存在 (D1) D0 人機上將D0設定為浮點數 試看看 |
---|---|
|
gaokunjian
級別: 略有小成
|
試了,不行呢,這可難倒我啦 ,有哪位大神有好方法啊 跪拜 |
---|---|
|
catywu
級別: 家園?
|
昨天碰到相同的問題,今天早上搞定了,下載浮點數十六進制轉換器v1.0看看數據顯示形式就明白了。很簡單的。 [ 此帖被catywu在2022-06-02 08:40重新編輯 ] |
---|---|
|
18857713026
賺點辛苦錢不容易啊 誒~~~~ 努力賺錢
級別: 略有小成
|
我之前用SMART做過 做成功能塊 換算直接調用 不支持功能塊的PLC 我想想就頭大 |
---|---|
|
catywu
級別: 家園?
|
人機直接讀取傳感器模塊地址,人機上將傳感器模塊地址設為浮點數。我用MCGS觸摸屏讀取成功。 |
---|---|
|