基本邏輯指令(簡稱基本指令)主要用于實現(xiàn)順序邏輯控制。無論哪個公司生產(chǎn)的可編程控制器均有基本邏輯編輯指令,但是所使用的指令條數(shù)及指令的表示符號一般不完全相同,但是其內(nèi)容及功能卻十分相似。日本omron公司生產(chǎn)的c系列p型機有12條基本指令,這12條基本指令在其簡易編程器上均有相應(yīng)的按鍵,可以直觀、方便地將基本邏輯指令通過編程器傳送到主機。
1、ld指令和ld not指令
ld指令是邏輯條件類指令,其作用是把由操作數(shù)指定的觸點狀態(tài)(on或off)送到存儲器的一個工作單元(此單元為一位的寄存器,稱為結(jié)果寄存器)中。
指令格式:ld xxxx
操作數(shù)xxxx為繼電器號。
ld not指令也是邏輯條件類指令,其作用是把由操作數(shù)指定的觸點狀態(tài)(on或off)取反后送到結(jié)果寄存器。
指令格式:ld not xxxx
圖1 ld和ld not指令在梯形圖中的符號
由此可見,ld指令的功能是將動合(常開)觸點接到邏輯母線上,ld not指令的功能是將動斷(常閉)觸點接到邏輯母線上。
ld指令及其他基本邏輯指令可使用的繼電器見表1。
表1 基本邏輯指令可使用的繼電器
2、and指令和and not指令
and指令也是邏輯條件類指令。其作用是把由操作數(shù)指定的觸點狀態(tài)與結(jié)果寄存器的狀態(tài)進行邏輯與,其結(jié)果再送結(jié)果寄存器。
指令格式:and xxxx
操作數(shù)xxxx為繼電器號。
and not指令也是邏輯條件類指令。它的作用是把由操作數(shù)指定的觸點狀態(tài)取反后與結(jié)果寄存器的狀態(tài)進行邏輯與,其結(jié)果再送結(jié)果寄存器。
指令格式:and not xxxx
and和and not指令在梯形圖中的符號如圖2所示。
圖2 and和and not指令在梯形圖中的符號
由此可見,and指令的功能是串聯(lián)一個動合觸點,and not指令的功能是串聯(lián)一個動斷觸點。
3、or指令和or not指令
or指令也是邏輯條件類指令。其作用是把由操作數(shù)指定的觸點狀態(tài)與結(jié)果寄存器的狀態(tài)進行邏輯或,其結(jié)果再送結(jié)果寄存器。
指令格式:or xxxx
操作數(shù)xxxx為繼電器號。
or not指令也是邏輯條件類指令。其作用是把由操作數(shù)指定的觸點狀態(tài)取反后與結(jié)果寄存器的狀態(tài)進行邏輯或,其結(jié)果再送入結(jié)果寄存器。
指令格式:or not xxxx
or和or not指令在梯形圖中的符號如圖3所示。
圖3 or和or not指令在梯形圖中的符號
由此可見,or指令的功能是并聯(lián)一個動合觸點,or not指令的功能是并聯(lián)一個動斷觸點。
4、out指令
out指令是輸出指令,其作用是把結(jié)果寄存器的內(nèi)容寫到由操作數(shù)指定的繼電器中。
指令格式:out xxxx
操作數(shù)xxxx為繼電器號。
out指令在梯形圖中的符號如圖4所示。
圖4 out指令在梯形圖中的符號
由此可見,out指令的功能就是接一個繼電器的線圈。
一般out指令出現(xiàn)在每個梯級的最右端,該指令將結(jié)果寄存器中的內(nèi)容寫到指定的繼電器。如輸出給輸出繼電器,則可驅(qū)動相應(yīng)的外部負載。out指令后的繼電器號,一般不能重復(fù)使用,否則可能引起邏輯上的混亂。
編程舉例:
當輸入0002和0003同時為on時或輸入0004為on,且0001為off時,輸出0500為on。完成該功能的梯形圖程序及指令語句表程序如圖5所示。
圖5 ld、and、or、out指令
5、and ld指令和or ld指令
and ld指令是邏輯條件類指令,無操作數(shù),其作用是把結(jié)果寄存器中的內(nèi)容與堆棧的內(nèi)容進行邏輯與,其結(jié)果再送結(jié)果寄存器。
or ld指令也是邏輯條件類指令,無操作數(shù),其作用是把結(jié)果寄存器中的內(nèi)容與堆棧的內(nèi)容進行邏輯或,其結(jié)果再送結(jié)果寄存器。
簡單地說,and ld指令是將兩觸點塊串聯(lián)起來,or ld指令是將兩觸點塊并聯(lián)起來。
and ld指令和or ld指令的示例分別見圖6和圖7。
圖6 and ld指令
圖7 or ld指令
在圖6中,在動斷觸點0003后又形成了一條新的邏輯母線,而動合觸點0004是接在該邏輯母線上的,故應(yīng)用ld指令。
例 試編寫圖8(a)所示梯形圖程序所對應(yīng)的指令語句表程序。其指令語句表見圖8(b)。
圖8 邏輯指令的綜合應(yīng)用
6、tim定時器指令和timh高速定時器指令
tim定時器指令用于對時間的控制。所完成的操作功能:滿足執(zhí)行條件時,控制plc內(nèi)部的一個時鐘脈沖,根據(jù)程序中所設(shè)定的時間常數(shù),定時器的當前值每隔0.1 s減1,減到0000時,完成延時時間的控制,此時定時器的觸點產(chǎn)生相應(yīng)的動作(動合閉合、 動斷斷開),實現(xiàn)延時控制作用。如果定時器的當前值尚未減至0000,由于某種原因不滿足工作條件時,則定時器復(fù)位,當前值變?yōu)樵O(shè)定值。
timh指令和tim指令所完成的操作功能是一樣的,它們的不同點是時間的度量單位不同,tim指令的度量單位是0.1 s,計時范圍為0~999.9 s。timh指令的度量單位是0.01 s(即當前值每隔0.01 s減1),計時范圍為0~99.99 s,因此,如果掃描周期超過10 ms,則timh指令不能執(zhí)行,定時操作可能不準確。另外,timh是功能指令(fun 15),在編程器上沒有與其對應(yīng)的專用鍵,輸入timh指令時,要先按fun鍵,然后輸入功能代碼。但在輸入觸點時仍按tim鍵。
tim指令的格式:tim、xx
#xxxx
timh指令的格式與此類似。
定時器指令要求兩個操作數(shù):第一個操作數(shù)xx為定時器號,范圍為00~47。第二個操作數(shù)是#后xxxx,為定時器的設(shè)定值,其范圍為0000~9999(十進制,單位為0.1 s(tim指令)或0.01 s(timh指令))。第二個操作數(shù)除常數(shù)外,還可以是通道號,以通道內(nèi)容(4位bcd碼)為設(shè)定值。
tim和timh指令在梯形圖中的符號如圖9所示。
圖9 tim和timh指令在梯形圖中的符號
由此可見,定時器指令就是接一個時間繼電器的線圈。
圖10中,輸入繼電器0002得電10s后,輸出繼電器0500得電。注意:在此期間0002不能失電,否則定時器復(fù)位,0500將不能得電。
圖10 tim指令
圖11說明了timh的工作情況:0002得電1 s后,0500得電;0002失電,0500同時失電。圖11中部的圖形稱為波形圖(或時序圖)。
圖11 timh指令
c系列p型機中,定時器與計數(shù)器總共有48個(00~47),一旦用tim指令指定某一個作為定時器,就不能再將其作為計數(shù)器使用;同樣,如果用cnt指令指定某一個作為計數(shù)器,就不能再將其作為定時器使用。另外,定時器不能直接對外輸出,需要時可借助輸出繼電器。
7、cnt計數(shù)器指令和cntr可逆計數(shù)器指令
cnt指令格式:cnt xx
#xxxx
cntr的指令格式與此類似。
cnt和cntr指令在梯形圖中的符號如圖11所示。
圖11 cnt和cntr指令在梯形圖中的符號
cnt指令和cntr指令都要求兩個操作數(shù):第一個操作數(shù)xx為定時器號,范圍為00~47(不能與已使用的定時器或計數(shù)器號相同),第二個操作數(shù)是#后xxxx,為計數(shù)設(shè)定值,設(shè)定值為0~9999,計數(shù)范圍為0~9999次。
由此可見,cnt指令和cntr指令都是接入一個計數(shù)器的線圈。
在cnt計數(shù)器中,cp端為計數(shù)輸入端。cp端每次由off到on時,該計數(shù)器的當前值減1,當計數(shù)器的當前值減到0000時,計數(shù)器動作。r端為復(fù)位輸入端,當r端由off到on時,計數(shù)器的當前值復(fù)位為設(shè)定值。若cp與r信號同時出現(xiàn),復(fù)位優(yōu)先。計數(shù)器動作后如果沒有復(fù)位信號,則其觸點狀態(tài)不變。
圖12中0002由off到on 10次后,cnt01的觸點動作,使0500得電。在任何時刻如0003由off到on,cnt01的計數(shù)值由當前值復(fù)位為設(shè)定值10。
圖12 cnt指令
cntr是環(huán)形可逆計數(shù)器指令,acp是加1計數(shù)輸入端,scp是減1計數(shù)輸入端,r為復(fù)位輸入端(置“0”輸入)。其編程順序是:acp、scp、r、cntr、計數(shù)器號、設(shè)定值。acp端每次由off到on時,cntr的當前值加1;scp端每次由off到on時,cntr的當前值減1;若acp和scp信號同時到來時,當前計數(shù)值不變。當復(fù)位輸入信號r為on時,cntr的當前計數(shù)值被復(fù)位到0000,此時acp和scp信號均不起作用。
cntr采用環(huán)形計數(shù)方式,在計數(shù)器的當前值達到設(shè)定值時,若加1計數(shù)acp再來一個信號,則計數(shù)器的當前值變?yōu)?000,產(chǎn)生進位,使計數(shù)器產(chǎn)生輸出(on),繼續(xù)計入新數(shù),當前值增加,而計數(shù)器的輸出又為off。在計數(shù)器的當前值為0000時,若減1計數(shù)scp再來一個信號,則計數(shù)器的當前值變?yōu)樵O(shè)定值,產(chǎn)生借位,使計數(shù)器產(chǎn)生輸出,繼續(xù)計入新數(shù),計數(shù)器的當前值減少,而計數(shù)器的輸出又為off。在程序輸入時,對cntr的觸點的輸入,仍按cnt鍵。
圖13 cntr指令
圖13 中0002/0003波形上方的數(shù)字式計數(shù)器當前值。
cntr和cnt的設(shè)定值也可由某