曾姚王
紙上得來終覺淺,絕知此事要躬行!
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 268 個
工控威望: 350 點
下載積分: 15740 分
在線時間: 149(小時)
注冊時間: 2021-07-24
最后登錄: 2024-12-20
查看曾姚王的 主題 / 回貼
樓主  發(fā)表于: 66天前
今天用臺達(dá)的一個DVP-08SN 485RTU讀一個儀表的數(shù)據(jù),始終是1,后來用串口讀出,發(fā)現(xiàn)數(shù)據(jù)類型只有選擇FLOAT INVERSE才正確,請問,浮點反轉(zhuǎn)這個數(shù)據(jù)是怎么回事。讀出42F6CCCDH怎么浮點數(shù)是123.4
[ 此帖被曾姚王在2024-10-17 17:03重新編輯 ]
暴躁小白兔
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 150 個
工控威望: 198 點
下載積分: 4387 分
在線時間: 95(小時)
注冊時間: 2021-05-11
最后登錄: 2024-12-20
查看暴躁小白兔的 主題 / 回貼
1樓  發(fā)表于: 66天前
圖片:
什么儀表,秀出來長長見識
------------------------------------
在工業(yè)通信和數(shù)據(jù)采集領(lǐng)域,"Float Inverse"(浮點反轉(zhuǎn))這個術(shù)語通常用于描述一種特定的數(shù)據(jù)格式,特別是在Modbus協(xié)議中。在這種格式下,浮點數(shù)的字節(jié)序(byte order)是相反的,也就是說,浮點數(shù)的高位字節(jié)(most significant byte, MSB)存儲在較低的地址,而低位字節(jié)(least significant byte, LSB)存儲在較高的地址。這種存儲方式與標(biāo)準(zhǔn)的大端(big-endian)或小端(little-endian)字節(jié)序相反。

在某些情況下,儀表或設(shè)備可能使用浮點反轉(zhuǎn)格式來存儲或傳輸浮點數(shù)。例如,根據(jù)西門子官方支持論壇的討論
,當(dāng)從Modbus儀表讀取浮點數(shù)時,如果發(fā)現(xiàn)讀取的值與預(yù)期不符,可能需要考慮字節(jié)序的問題。在這種情況下,可能需要在讀取數(shù)據(jù)后對字節(jié)序進(jìn)行調(diào)整,以獲得正確的浮點數(shù)值。

處理浮點反轉(zhuǎn)數(shù)據(jù)的一般步驟可能包括:

讀取包含浮點數(shù)的兩個連續(xù)的Modbus寄存器(通常為16位,或2個字節(jié))。
交換這兩個寄存器的字節(jié)序,使得原本的高位字節(jié)變?yōu)榈臀蛔止?jié),反之亦然。
將調(diào)整后的字節(jié)重新組合成一個浮點數(shù),以獲得正確的數(shù)值。
需要注意的是,處理浮點反轉(zhuǎn)數(shù)據(jù)時,應(yīng)確保了解設(shè)備的文檔和規(guī)范,以正確理解數(shù)據(jù)格式和所需的字節(jié)序調(diào)整。在某些情況下,可能需要使用特定的軟件工具或編程技巧來實現(xiàn)這一過程。
樓主留言:
謝謝,我再看看怎么轉(zhuǎn),臺達(dá)都十幾年沒用了。
[ 此帖被暴躁小白兔在2024-10-18 14:13重新編輯 ]