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