- 可編程序控制系統設計技術(FX系列)
- 吳啟紅
- 1645字
- 2020-11-21 15:59:30
1.2 數制與數制轉換
1.2.1 數制
1.十進制數(Decimal number,D)
十進制系統是以10為基值,具有10個獨特的數字——數字0~9。有時為了與二進制數和十六進制數相區別,十進制數可以用一個括號加下腳標10注明,或在后邊用大寫的D表示。根據數學上計數的理論,N位計數制的數,可以按N(又稱基數)的冪指數展開求和的方法求出其值。十進制數可按10的冪指數展開求和的方法表示。例如:
(98.36)10或98.36D或98.36=9×101+8×100+3×10-1+6×10-2
其中某一位數乘10的幾次方,要看這一位后面的整數部分有幾位。如上面的9后面,整數部分有1位,這個9就相當于9乘10的1次方。
在FX系列PLC中,用十制數表示的有下列地方:
1)定時器、計數器的設定值;
2)輔助繼電器M、狀態寄存器S、數據寄存器(T、C、D)的編號;
3)指定應用指令的操作數與指定動作;
4)特殊功能模塊的編號和緩沖寄存器(BFM)的編號。
2.二進制數(Binary number,B)
通常,PLC是對二進制數進行操作,用二進制來表示變量或變化的碼值。二進制系統以數字2為基數,二進制數只有兩個數碼0和1,加法逢二進一位。二進制數后可加一大寫的B表示。例如:
二進制數的每個數字都稱為一個位,在PLC中,每個字能夠以二進制數或位的形式存儲數據。一個字所包括的位數取決于PLC系統的類型,16bit和32bit最常用。圖1-3中表示由2個字節組成的16bit字,最低位(LSB)為代表最小值的數字,最高位(MSB)為代表最大值的數字,實際為符號位,為1時數為負,為0時數為正。
圖1-3 二進制數據結構
在FX系列PLC中,用十制數對定時器、計數器、數據寄存器的設定值進行指定,但是在PLC內部都是以二進制數進行處理的,而在外部設備進行監控時,則自動變換成十進制數。
3.十六進制數(Hexadecimal number,H)
由于一個數據的字由16個數據位或兩個8bit組成。十六進制數有十六個數碼:0~9和A、B、C、D、E、F,基數是16,加法逢十六進一位。十六進制數后可加一個大寫的H表示。例如:
在FX系列PLC中,同十進制數一樣,用于指定應用指令的操作數與指定動作。
4.八進制數(Octal number,O)
八進制系統是以基數為8的系統,一個八進制數能夠用三個二進制數字表示。它通常用于微處理器、計算機和可編程序控制系統,PLC用戶或程序員可以利用其組成一個信息字節中的8個數據位進行編址。例如:
一般PLC的輸入和輸出模塊地址都是按八進制編址的。
5.二、八、十與十六進制數對照
為了讀者方便,現將二、八、十與十六進制數對照,見表1-1。
表1-1 數制系統對照表
6.浮點數
浮點數是屬于有理數中某特定子集的數的數字表示方法,在計算機中,用以近似表示任意某個實數。具體地說,這個實數由一個整數或定點數(即尾數)乘以某個基數(計算機中通常是2)的整數次冪得到,這種表示方法類似于基數為10的科學記數法。
浮點計算是指浮點數參與的運算,這種運算通常伴隨著因為無法精確表示而進行的近似或舍入。
1.2.2 各種進制間的轉換
在PLC運算時,經常用到各種數制進行轉換,監控程序運行工況等。為此,以下講述各種進制轉換的方法。
1.二進制數與十六進制數
(1)二進制數→十六進制數 整數部分:將二進制數從最低位(小數點左邊第1位)開始,向左數,每4位二進制數轉換為一位十六進制數。例:(最高位不夠4位的前面補零湊夠4位)。
例:(01110001101.1100001)=38D.C2H(小數部分向右數,每4位一組轉換為1位十六進制數,最低位不夠4位的后面補零湊夠4位)。
(2)十六進制數→二進制數 將每1位十六進制數轉換為4位二進制數。
由于二進制數與十六進制數之間的轉換方法很簡單,所以經常用十六進制數去表示二進制數。一個二進制數與它的十六進制數是一一對應的,這些十六進制數,進入計算機內后,統統都會變成二進制數(實際是變成晶體管集電極電平的“高低”不同狀態)。
(3)二進制數、十六進制數→十進制數
例:。這些數據很有用,最好能記住。
(4)十進制數→二進制數
方法一:整數部分用除2取余法:79=1001111
方法二:按某十進制數包含哪些2的冪指數,心算可一步將該十進制數直接寫成二進制數:從高位到低位,含有2的冪指數的位寫1,沒有的位寫0。
(5)十進制數→十六進制數
方法一:按十→二→十六進行
方法二:除16取余法。
例:2012=7DCH