chenqiangme
工控小螞蟻 天道酬勤
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 86 個
工控威望: 262 點
下載積分: 514 分
在線時間: 85(小時)
注冊時間: 2007-08-28
最后登錄: 2024-12-17
查看chenqiangme的 主題 / 回貼
樓主  發(fā)表于: 2020-03-04 22:22
大神們,智能儀表中收到IEEE-754標(biāo)準(zhǔn)的四個浮點字節(jié),比如:D0 41;  D1  30;  D2 00 ;  D3 00
如何處理合并成一個字節(jié)。例如:0x41300000(11.0)
shandiange
努力,不死終會出頭。
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 42 個
工控威望: 1019 點
下載積分: 13719 分
在線時間: 144(小時)
注冊時間: 2019-08-24
最后登錄: 2024-07-16
查看shandiange的 主題 / 回貼
1樓  發(fā)表于: 2020-03-05 10:32
頂一下。同惑
tingfenghu
級別: 工控俠客

精華主題: 0
發(fā)帖數(shù)量: 2847 個
工控威望: 3619 點
下載積分: 3521 分
在線時間: 3810(小時)
注冊時間: 2007-11-04
最后登錄: 2024-12-26
查看tingfenghu的 主題 / 回貼
2樓  發(fā)表于: 2020-03-05 12:33
拋磚引玉,
臺達(dá)PLC,
字節(jié)保存8位,字保存16位,一個字節(jié)無法處理實數(shù)。
一個字只能保存HFFFF,實數(shù)要用2個字,

  

二手PLC,觸摸屏,伺服驅(qū)動,各類氣動設(shè)備
http://shop58129605.taobao.com/
wangnaizhi
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 1273 個
工控威望: 1449 點
下載積分: 5484 分
在線時間: 896(小時)
注冊時間: 2015-08-31
最后登錄: 2024-12-25
查看wangnaizhi的 主題 / 回貼
3樓  發(fā)表于: 2020-03-05 14:09
圖片:
圖片:
差不多就是這處理的
wanzhen2006
做工控人.不停學(xué)習(xí).分享.交流.
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 261 個
工控威望: 1788 點
下載積分: 2433 分
在線時間: 608(小時)
注冊時間: 2012-03-01
最后登錄: 2024-12-26
查看wanzhen2006的 主題 / 回貼
4樓  發(fā)表于: 2020-03-06 10:46
例如:D0=A;  D1=B;  D2=C ;  D3=D.

西門子為例:解 VB0=A,VB1=B,VB2=C,VB3=D
                             VW0=AB=40001,VW2=CD=40002
                             VD0=ABCD

VB=字節(jié)=8bit(8進(jìn)制),VW =字=16bit(16進(jìn)制),VD=雙字=32bit(32進(jìn)制)

它結(jié)合了兩個16位的Modbus寄存器。它可以以4種不同的字/字節(jié)順序顯示。如下交換
使用此命令以浮點格式顯示數(shù)據(jù)。大端法。使用2個寄存器。
采用IEEE 754規(guī)范。
字節(jié)順序:A B C D
浮點數(shù)123456.00或十六進(jìn)制47 F1 20 00
在Modbus消息中通過電線時的順序:47 F1 20 00

使用此命令以浮點格式顯示數(shù)據(jù)。小端法。使用2個寄存器。
采用IEEE 754規(guī)范。
字節(jié)順序:D C B A
浮點數(shù)123456.00或十六進(jìn)制47 F1 20 00
在Modbus消息中通過電線訂購:00 20 F1 47

使用此命令以浮點格式顯示數(shù)據(jù)。大端字節(jié)交換。使用2個寄存器。
采用IEEE 754規(guī)范。
字節(jié)順序:B A D C
浮點數(shù)123456.00或十六進(jìn)制47 F1 20 00
在Modbus消息中通過電線時的順序:F1 47 00 20

使用此命令以浮點格式顯示數(shù)據(jù)。小端字節(jié)交換。使用2個寄存器。
采用IEEE 754規(guī)范。
字節(jié)順序:C D A B
浮點數(shù)123456.00或十六進(jìn)制47 F1 20 00
在Modbus消息中通過電線時訂購:20 00 47 F1
[ 此帖被wanzhen2006在2020-03-06 22:44重新編輯 ]
做工控人.不停學(xué)習(xí).分享.交流.
lvpretend
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 1264 個
工控威望: 1434 點
下載積分: 3697 分
在線時間: 324(小時)
注冊時間: 2015-07-20
最后登錄: 2024-11-29
查看lvpretend的 主題 / 回貼
5樓  發(fā)表于: 2020-03-07 09:44
你是不是需要,32位浮點數(shù)通過MODBUS-RTU分8位傳送,到4個16位寄存器,然后組裝成32位浮點數(shù)?
這個不同PLC會有不同的方法,有些PLC可以設(shè)置MODBUS傳回來的數(shù)據(jù)格式,直接讀就可以,有些不行。有些編程軟件能夠比較輕松的解決,比如西門子,有些就比較麻煩。
我這個例子你參考下:編程軟件對變量定義為字節(jié)、字、浮點后就不允許混用操縱了,我使用了絕對地址來實現(xiàn)混用操縱。程序有漏洞,如果執(zhí)行這段程序時有中斷程序,且在中斷程序里對這個絕對地址進(jìn)行了更改就會出錯,所以需要避免中斷對絕對地址的數(shù)據(jù)更改。

方法只供參考。