- S7-1200 PLC應(yīng)用教程(第2版)
- 廖常初主編
- 1371字
- 2021-10-27 14:33:22
2.3.2 數(shù)制與編碼
1.數(shù)制
(1)二進制數(shù)
二進制數(shù)的1位(bit)只能取0和1這兩個不同的值,可以用來表示開關(guān)量(或稱數(shù)字量)的兩種不同的狀態(tài),例如觸點的斷開和接通、線圈的通電和斷電等。如果該位為1,則梯形圖中對應(yīng)的位編程元件(例如位存儲器M和過程映像輸出位Q)的線圈“通電”,其常開觸點接通,常閉觸點斷開,以后稱該編程元件為TRUE或1狀態(tài),如果該位為0,則對應(yīng)的編程元件的線圈和觸點的狀態(tài)與上述的相反,稱該編程元件為FALSE或0狀態(tài)。
(2)多位二進制整數(shù)
計算機和PLC用多位二進制數(shù)來表示數(shù)字,二進制數(shù)遵循逢二進一的運算規(guī)則,從右往左的第n位(最低位為第0位)的權(quán)值為2n。二進制常數(shù)以2#開始,用下式計算2#1100對應(yīng)的十進制數(shù):
1×23+1×22+0×21+0×20=8+4=12
(3)十六進制數(shù)
多位二進制數(shù)的書寫和閱讀很不方便。為了解決這一問題,可以用十六進制數(shù)來取代二進制數(shù),每個十六進制數(shù)對應(yīng)于4位二進制數(shù)。十六進制數(shù)的16個數(shù)字是0~9和A~F(對應(yīng)于十進制數(shù)10~15)。B#16#、W#16#和DW#16#分別用來表示十六進制字節(jié)、字和雙字常數(shù),例如W#16#13AF。在數(shù)字后面加“H”也可以表示十六進制數(shù),例如16#13AF可以表示為13AFH。
表2-3給出了不同進制數(shù)的表示方法。
表2-3 不同進制的數(shù)的表示方法

2.編碼
(1)補碼
有符號二進制整數(shù)用補碼來表示,其最高位為符號位,最高位為0時為正數(shù),為1時為負數(shù)。正數(shù)的補碼就是它本身,最大的16位二進制正數(shù)為2#0111 1111 1111 1111,對應(yīng)的十進制數(shù)為32767。
將正數(shù)的補碼逐位取反(0變?yōu)?,1變?yōu)?)后加1,得到絕對值與它相同的負數(shù)的補碼。例如將1158對應(yīng)的補碼2#0000 0100 1000 0110逐位取反后加1,得到-1158的補碼2#1111 1011 0111 1010。
將負數(shù)的補碼的各位取反后加1,得到它的絕對值對應(yīng)的正數(shù)的補碼。例如將-1158的補碼2#1111 1011 0111 1010逐位取反后加1,得到1158的補碼2#0000 0100 1000 0110。
整數(shù)的取值范圍為-32768~32767,雙整數(shù)的取值范圍為-2147483648~2147483647。
(2)BCD碼
BCD(Binary-coded Decimal)是二進制編碼的十進制數(shù)的縮寫,BCD碼用4位二進制數(shù)表示一位十進制數(shù)(見表2-3),每一位BCD碼允許的數(shù)值范圍為2#0000~2#1001,對應(yīng)于十進制數(shù)0~9。BCD碼的最高位二進制數(shù)用來表示符號,負數(shù)為1,正數(shù)為0。一般令負數(shù)和正數(shù)的最高4位二進制數(shù)分別為1111或0000(見圖2-6)。3位BCD碼的范圍為-999~+999,7位BCD碼(見圖2-7)的范圍為-9999999~+9999999。BCD碼各位之間的關(guān)系是逢十進一,圖2-6中的BCD碼為-829。

圖2-6 3位BCD碼的格式

圖2-7 7位BCD碼的格式
BCD碼常用來表示PLC的輸入/輸出變量的值。TIA博途用BCD碼來顯示日期和時間值。撥碼開關(guān)(見圖2-8)內(nèi)的圓盤的圓周面上有0~9這10個數(shù)字,用按鈕來增、減各位要輸入的數(shù)字。它用內(nèi)部硬件將10個十進制數(shù)轉(zhuǎn)換為4位二進制數(shù)。PLC用輸入點讀取的多位撥碼開關(guān)的輸出值就是BCD碼,可以用“轉(zhuǎn)換值”指令CONVERT將它轉(zhuǎn)換為二進制整數(shù)。
用PLC的4個輸出點給譯碼驅(qū)動芯片4547提供輸入信號,可以用LED七段顯示器顯示一位十進制數(shù)(見圖2-9)。需要使用“轉(zhuǎn)換值”指令CONVERT,將PLC中的二進制整數(shù)或雙整數(shù)轉(zhuǎn)換為BCD碼,然后分別送給各個譯碼驅(qū)動芯片。

圖2-8 撥碼開關(guān)

圖2-9 LED七段顯示器電路
(3)美國信息交換標準代碼(ASCII碼)
美國信息交換標準代碼(American Standard Code for Information Interchange,ASCII碼)由美國國家標準局(ANSI)制定,它已被國際標準化組織(ISO)定為國際標準(ISO 646標準)。ASCII碼用來表示所有的英語大/小寫字母、數(shù)字0~9、標點符號和在美式英語中使用的特殊控制字符。數(shù)字0~9的ASCII碼為十六進制數(shù)30H~39H,英語大寫字母A~Z的ASCII碼為41H~5AH,英語小寫字母a~z的ASCII碼為61H~7AH。