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

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

  

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

西門(mén)子為例:解 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é)合了兩個(gè)16位的Modbus寄存器。它可以以4種不同的字/字節(jié)順序顯示。如下交換
使用此命令以浮點(diǎn)格式顯示數(shù)據(jù)。大端法。使用2個(gè)寄存器。
采用IEEE 754規(guī)范。
字節(jié)順序:A B C D
浮點(diǎn)數(shù)123456.00或十六進(jìn)制47 F1 20 00
在Modbus消息中通過(guò)電線時(shí)的順序:47 F1 20 00

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

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

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

方法只供參考。