PLC基礎篇之數(shù)制及其表示方法
所謂“數(shù)制”,是指“數(shù)”的表示方法,即計數(shù)的方法。數(shù)制采用進位的方法,當數(shù)值增加到該位能表示的最大值時,會將位數(shù)增加一位(進位)。按照進位的規(guī)則進行計數(shù)的數(shù)制,稱為進位數(shù)制。常見的進位數(shù)制有:二進制(Binary)、十進制(Decimal)和十六進制(Hexadecimal)。
人類的思維習慣于十進制(Decimal),所謂“逢十進一”。這個沒什么好說的,地球人都知道。
本文要介紹的是PLC編程相關的概念,因此要重點介紹的是二進制(Binary)和十六進制(Hexadecimal)。
現(xiàn)代計算機普遍采用馮·諾伊曼(John von Neumann,1903~1957)的體系結構。美籍匈牙利科學家馮·諾伊曼根據(jù)電子元件的雙穩(wěn)特性,提出數(shù)字計算機應采用二進制進行存儲和運算。
二進制(Binary)只有“0”和“1”兩個數(shù)碼,可以表示數(shù)字量的兩種不同的狀態(tài),比如觸點的吸合與斷開,線圈的通電與斷電等等。在PLC的存儲單元中,可以使用一個“位(bit)”來表示“0”或者“1”兩種值,8個“位”組成一個字節(jié)(Byte)。以西門子S7系列PLC為例,可以使用STL語句 “S Q0.0”將Q0.0置為“1”。其中,“Q0.0”中的“Q”表示輸出過程映像區(qū)(Output),第一個“0”表示第“0”個字節(jié),第二個“0”表示該字節(jié)的第“0”位。當該指令執(zhí)行后,PLC的輸出模塊的Q0.0將會有信號輸出,它連接的繼電器線圈會通電,常開觸點吸合,接通相應的電路。
二進制采用“逢二進一”的規(guī)則,可以使用多位二進制數(shù)來表示數(shù)值。將最低位記為第0位,從右往左的第n位,其權值(數(shù)制中某位上的1所代表的數(shù)值)為2的n次方。

在西門子S7系列PLC中,二進制常數(shù)以“2#”開始,比如:2#1101。二進制數(shù)可以轉換成十進制數(shù),轉換方法是把各個位上的數(shù)乘以其權值,然后相加。比如2#1101,等于1乘以2的3次方(=8),加上1乘以2的2次方(=4),加上1乘以2的0次方(=1),等于十進制13。

由于二進制數(shù)位數(shù)太多,編程時書寫起來不太方便。為了簡化書寫,同時保持二進制宜于“位”操作的特性,人們把四個二進制位組成一組,用來表示一個數(shù)。由于四個二進制位所成表示的最大數(shù)是2#1111(=15),于是就出現(xiàn)了十六進制的數(shù)制。十六進制的數(shù)碼除了包括十進制的0~9之外,還包括A~F六個字母。A等于十進制的10,依次遞增,F(xiàn)等于10進制的15。
十六進制的表示方法比較多,在C/C++中用前綴"0x"表示,比如上一篇文章中提到的“0x0384”;在VB中使用前綴"&H"表示,比如“&H1A2B”;在西門子S7系列PLC中,使用“16#”來表示16進制數(shù)。但通常情況下,在表示16進制數(shù)的時候,需要同時指出它的數(shù)據(jù)類型(后續(xù)會有專門文章介紹數(shù)據(jù)類型相關知識),比如B#16#56表示16進制數(shù)56,它的數(shù)據(jù)類型是字節(jié)(Byte)。
十六進制數(shù)可以很方便的轉換成二進制數(shù),只需要把每一位數(shù)轉成二進制數(shù),然后組合起來即可。比如B#16#56,其中16#5=2#0101,16#6=2#0110,所以16#56=2#1010110,如下圖:

程序設計中還用到一種編碼,稱為BCD碼。BCD是英文"Binary-Code Decimal"的縮寫,這種編碼的數(shù)制是十進制。BCD碼使用四個二進制數(shù)來表示一位十進制數(shù),每一位允許的范圍是2#0000~2#1001,也就是十進制的0~9,采用“逢十進一”的規(guī)則。

BCD碼是有符號的,用最高位來表示符號,“0”表示正數(shù),“1”表示負數(shù)。對于一個四位的BCD碼而言(16個二進制位),能表示的范圍是“-999~+999”。為什么呢?其實比較好理解,你想,最高位是符號位,那么就剩下了三位,由于每一位BCD碼,其本質是十進制數(shù),所以每一位最大的數(shù)都是9,所以三位數(shù)最大就是999,加上符號,所以四位BCD碼能表示的十進制數(shù)的范圍是“-999~+999”。同樣的道理,八位BCD碼(32個二進制位)能表示的十進制數(shù)的范圍是“-9999999~+9999999”。
好了,關于PLC編程需要的數(shù)制的知識就先聊到這里了。相關參考文章:
PLC基礎篇之編程語言的魅力
PLC基礎篇之PLC的誕生及工作原理
給你講個來自《格列佛游記》的計算機故事
-
Origin(Pro):學習版的窗口限制【數(shù)據(jù)繪圖】 2020-08-07
-
如何卸載Aspen Plus并再重新安裝,這篇文章告訴你! 2020-05-29
-
OriginPro:學習版申請及過期激活方法【數(shù)據(jù)繪圖】 2020-08-06
-
CAD視口的邊框線看不到也選不中是怎么回事,怎么解決? 2020-06-04
-
教程 | Origin從DSC計算焓和比熱容 2020-08-31
-
Aspen Plus安裝過程中RMS License證書安裝失敗的解決方法,親測有效! 2021-10-15
-
CAD外部參照無法綁定怎么辦? 2020-06-03
-
CAD中如何將布局連帶視口中的內容復制到另一張圖中? 2020-07-03
