asp 強制轉換浮點數值 PLC內部各型別資料轉換

2021-10-13 16:55:18 字數 1243 閱讀 4203

plc使用的過程中,會有各種型別的資料需要處理。如十進位制數、16進製制數、2進製數、浮點數等。除了能夠熟練的使用各種型別的資料外,深入的掌握這些資料的內部處理機制,可以在plc程式設計使用更加輕鬆的處理各種問題。這裡就各種型別資料在plc內部的表示方法展開分享。

十進位制(dec)

即為我們通常所使用的1234567890……這樣型別的資料。在plc內部,十進位制數一般用於如下幾個方面:

16進製制(hex)

應用指令的運算元中的數值指定和指令動作的指定(h常數)。在做通訊處理時,常會用到16進製制資料的情況。

2進製數(bin)

即為0或者1這樣的資料。邏輯控制處理的資料,就是0和1這兩種型別的資料。其plc內部對上述的10進製和16進製制資料處理,均式轉換為2進製處理的。其轉換過程如下圖對應:

從上圖中,二進位制的最高位為符號位。當最高位位0時,所表示的數為正數;當最高位為1時,所表示的數為負數。

8進製(oct)

一般對plc的io位址,均是按照8進製來進行分配處理的。如x0~x7、x10~x17。編號尾部以0開始以7結束,總共8位。

bcd(bcd)

bcd就是將構成10進製數的各位上0~9的數值以四位的bin來表現的形式。實際運用過程中,這種已經很少使用了。

實數(浮點數)

plc執行過程中,運算採用2進製浮點數(實數),監控採用了10進製浮點數(實數)。

各種型別資料間的轉換關係如下:

以上資料型別的運用場景如下:

二進位制浮點數的轉換關係:

二進位制浮點數的有效位數:

特別說明:

在進行資料處理過程中,特殊書繼電器m8020(零)、m8021(借位)、m8022(進製)的處理。

浮點數精度的轉換

在 x86 x64 體系裡,由於 x87 fpu 硬體使用擴充套件雙精度格式,因此必然會遇到 single double precision 格式與double extended precision 格式之間的互換問題。轉換為擴充套件雙精度數 當由單精度數或雙精度轉換為擴充套件雙精度數時,expon...

浮點數所表示的數值範圍

1.浮點數表示 f m r e m為尾數,e為階碼,r是基數 為2 設階碼數值位e取k位 階符1位且採用補碼 尾數r的數值位取n位 數符1位且採用補碼 階符 1位 階碼e k位 數符 1位 尾數m n位 都使用二進位制表示,例如 f 11.0101 1.10101 2 10 2.浮點數所表示的數值範...

C 浮點數轉換為定點數

筆者最近在程式設計的時候,要控制浮點數的精度進行計算和對比,在網上經過一系列查詢後終於 在csdn上面找到了相關的內容,雖然控制浮點數的精度後沒有效能上的提公升,筆者知道了如何修改 和控制浮點數的精度了,總的來說,每天要進步一點點。如下 1 include cuda runtime.h 2 incl...