精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>電子百科>通信技術>

modbus浮點數如何處理

2018年02月08日 09:49 電子發燒友整理 作者: 用戶評論(0

Modbus 協議是應用于電子控制器上的一種通用語言。通過此協議,控制器相互之間、控制器經由網絡(例如以太網)和其它設備之間可以通信。它已經成為一通用工業標準。有了它,不同廠商生產的控制設備可以連成工業網絡,進行集中監控。

此協議定義了一個控制器能認識使用的消息結構,而不管它們是經過何種網絡進行通信的。它描述了一控制器請求訪問其它設備的過程,如果回應來自其它設備的請求,以及怎樣偵測錯誤并記錄。它制定了消息域格局和內容的公共格式。

modbus浮點數處理方式

浮點數保存的字節格式如下:

modbus浮點數如何處理

這里S 代表符號位,1是負,0是正E

偏移127的冪,二進制階碼=(EEEEEEEE)-127。

M 24位的尾數保存在23位中,只存儲23位,最高位固定為1。

此方法用最較少的位數實現了較高的有效位數,提高了精度。零是一個特定值,冪是0 尾數也是0。

浮點數-12.5作為一個十六進制數0xC1480000保存在存儲區中,

這個值如下:

modbus浮點數如何處理

浮點數和十六進制等效保存值之間的轉換相當簡單。下面的例子說明上面的值-12.5如何轉換。

浮點保存值不是一個直接的格式,要轉換為一個浮點數,位必須按上面的浮點數保存格式表所列的那樣分開,例如:

modbus浮點數如何處理

從這個例子可以得到下面的信息

符號位是1 表示一個負數

冪是二進制10000010或十進制130,130減去127是3,就是實際的冪。

尾數是后面的二進制數10010000000000000000000

在尾數的左邊有一個省略的小數點和1,這個1在浮點數的保存中經常省略,加上一個1和小數點到尾數的開頭,得到尾數值如下:

1.10010000000000000000000

接著,根據指數調整尾數。一個負的指數向左移動小數點。一個正的指數向右移動小數點。因為指數是3,尾數調整如下:

1100.10000000000000000000

結果是一個二進制浮點數,小數點左邊的二進制數代表所處位置的2的冪,例如:

1100表示(1*2^3)+(1*2^2)+(0*2^1)+(0*2^0)=12。

小數點的右邊也代表所處位置的2的冪,只是冪是負的。例如:

.100.。。表示(1*2^(-1))+(0*2^(-2))+(0*2^(-2))。。。=0.5。

這些值的和是12.5。因為設置的符號位表示這數是負的,因此十六進制值0xC1480000表示-12.5。

非常好我支持^.^

(86) 26%

不好我反對

(245) 74%

( 發表人:李建兵 )

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?