chenqiangme
工控小螞蟻 天道酬勤
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 86 個
工控威望: 262 點
下載積分: 514 分
在線時間: 85(小時)
注冊時間: 2007-08-28
最后登錄: 2024-08-10
查看chenqiangme的 主題 / 回貼
樓主  發(fā)表于: 2020-03-04 22:22
大神們,智能儀表中收到IEEE-754標準的四個浮點字節(jié),比如:D0 41;  D1  30;  D2 00 ;  D3 00
如何處理合并成一個字節(jié)。例如:0x41300000(11.0)
lvpretend
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 1258 個
工控威望: 1428 點
下載積分: 3680 分
在線時間: 322(小時)
注冊時間: 2015-07-20
最后登錄: 2024-05-22
查看lvpretend的 主題 / 回貼
1樓  發(fā)表于: 2020-03-07 09:44
你是不是需要,32位浮點數(shù)通過MODBUS-RTU分8位傳送,到4個16位寄存器,然后組裝成32位浮點數(shù)?
這個不同PLC會有不同的方法,有些PLC可以設置MODBUS傳回來的數(shù)據(jù)格式,直接讀就可以,有些不行。有些編程軟件能夠比較輕松的解決,比如西門子,有些就比較麻煩。
我這個例子你參考下:編程軟件對變量定義為字節(jié)、字、浮點后就不允許混用操縱了,我使用了絕對地址來實現(xiàn)混用操縱。程序有漏洞,如果執(zhí)行這段程序時有中斷程序,且在中斷程序里對這個絕對地址進行了更改就會出錯,所以需要避免中斷對絕對地址的數(shù)據(jù)更改。

方法只供參考。