chenqiangme
工控小螞蟻 天道酬勤
級別: 略有小成
|
大神們,智能儀表中收到IEEE-754標(biāo)準(zhǔn)的四個(gè)浮點(diǎn)字節(jié),比如:D0 41; D1 30; D2 00 ; D3 00 如何處理合并成一個(gè)字節(jié)。例如:0x41300000(11.0) |
---|---|
|
tingfenghu
級別: 工控俠客
|
拋磚引玉, 臺(tái)達(dá)PLC, 字節(jié)保存8位,字保存16位,一個(gè)字節(jié)無法處理實(shí)數(shù)。 一個(gè)字只能保存HFFFF,實(shí)數(shù)要用2個(gè)字, |
|
---|---|---|
|
wanzhen2006
做工控人.不停學(xué)習(xí).分享.交流.
級別: 論壇先鋒
|
例如: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é)合了兩個(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消息中通過電線時(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消息中通過電線訂購: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消息中通過電線時(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消息中通過電線時(shí)訂購:20 00 47 F1 [ 此帖被wanzhen2006在2020-03-06 22:44重新編輯 ] |
|
---|---|---|
|
lvpretend
級別: 論壇先鋒
|
你是不是需要,32位浮點(diǎn)數(shù)通過MODBUS-RTU分8位傳送,到4個(gè)16位寄存器,然后組裝成32位浮點(diǎn)數(shù)? 這個(gè)不同PLC會(huì)有不同的方法,有些PLC可以設(shè)置MODBUS傳回來的數(shù)據(jù)格式,直接讀就可以,有些不行。有些編程軟件能夠比較輕松的解決,比如西門子,有些就比較麻煩。 我這個(gè)例子你參考下:編程軟件對變量定義為字節(jié)、字、浮點(diǎn)后就不允許混用操縱了,我使用了絕對地址來實(shí)現(xiàn)混用操縱。程序有漏洞,如果執(zhí)行這段程序時(shí)有中斷程序,且在中斷程序里對這個(gè)絕對地址進(jìn)行了更改就會(huì)出錯(cuò),所以需要避免中斷對絕對地址的數(shù)據(jù)更改。 方法只供參考。 |
---|---|
|