一、位元指令介紹:
1.微分指令:DIFU(FUN 13),DIFD(FUN 14)---PLS,PLF(FX2)
(1)格式:DIFU N(上升微分) N為元件編號
DIFD N(下降微分)
(2)意義:當輸入信號由OFF變為ON時,DIFU指令驅動N元件變為ON,但只維持一次掃描時間,N元件即變為OFF。當輸入信號由ON變為OFF時,DIFD指令驅動N元件變為ON,但只維持一次掃描時間,N元件即變為OFF。
(3)舉例:
A.階梯圖 B.程式
|
C.說明:若00開關原為不動作,當按下00開關時,3000即刻動作,但在一次掃描時間後,3000自動復歸。若01開關原為不動作,當按下01開關再放掉時,3001即刻動作,但在一次掃描時間後3001自動復歸。
D.時序圖
2.進位旗標設定指令STC (FUN 40)/@STC (FUN 40)---SET M8022(FX2)
進位旗標清除指令CLC (FUN 41)/@CLC (FUN 41)---RST M8022(FX2)
(1)格式:STC
CLC
(2)意義:大部份的旗標電驛只是用來表示或顯示PLC的狀態或運行的結果,所以這些電驛的狀態大部份由PLC控制,而使用者只能將它讀出,再視它的狀態來控制其它元件。
例如: A零位旗標電驛(25506):是當PLC運算(加、減、乘、除…等)後,若結果為0,則自動設為1(25506=1),使用者即根據這個旗標電驛的狀態(0或1)來判斷運算的結果是否為0。
A.錯誤旗標電驛(25509):使用者可藉由讀出錯誤旗標電驛的狀態來判斷,PLC的執行與運算是否有誤。
B.大於(25505)、等於(25506)、小於(25507)旗標電驛,則在兩數運算結果各為大於、等於、小於時設定狀態為1(後面再做詳細介紹)。
C.進位旗標電驛(25504) :當運算的結果(加、減、乘、除、移位…等)有進位時,進位旗標電驛被設為1,否則設為0。使用者即根據這個旗標電驛的狀態(0或1)來判斷運算的結果是否有進位。但進位旗標電驛與其它旗標電驛不同的是它可以以指令的方式來加以設定(STC--設為1)或清除(CLC--設為0)。但實際上,經STC設定後,進位旗標也只維持一次掃描時間,即自行復歸。
3.保持電驛指令:KEEP(FUN 11)
(1)格式:KEEP N N為元件編號
(2)意義:KEEP由兩個輸入所控制,當設定輸入動作時保持電驛N動作,之後若將設定輸入去除,保持電驛N仍然保持在動作狀態(所以才叫保持電驛)。另外當復歸輸入動作時,則保持電驛N復歸,同樣的,將復歸輸入去除,保持電驛N仍然在復歸狀態。 除了TIMER、COUNTER元件外,其它的元件前面若加KEEP指令,即可當成保持電驛使用。例如KEEP 20、KEEP HR000….等。
(3)舉例:
A.階梯圖 B.程式
|
C.說明:若00開關按下時,3000及200即刻動作。放掉00後,3000及200繼續維持動作狀態。若按下01開關,3001及200即刻復歸,放掉01後,3000及200繼續維持復歸狀態。
D.時序圖
由於復歸輸入的優先權高 於設定輸入,所以若00 及01同時按下,3000 及200應為復歸狀態。 |
4.高速計時器指令:TIMH(FUN 15)---T200∼T245(FX2)
(1)格式:TIMH N N為高速計時器編號 #C C為計時單元設定值(一般為BCD碼)
(2)意義:高速計時器的作用與一般計時器(TIM)作用相同,不同之處只是TIMH是以0.01秒為計時單位而已,它的設定值為0000∼9999,即計時範圍是0∼99.99秒。
(3)舉例:與TIM指令相同,故省略。
5.上下數計數器指令:CNTR(FUN 12)---C200∼C219(FX2)
(1)格式:CNTR N N為上下數計數器編號。 #C C為計數設定值(一般為BCD碼)
(2)意義:CNTR是一種可逆的、可上下數的計數器,它共有三個輸入控制點,當遞增輸入由0變1時,計數器的計數值自動加1:若遞減輸入由0變1時,則計數器的計數值就自動減1,但若兩者同時由0變1,則計數器不計數。另外若當復歸輸入點為1時,則計數器的計數值歸零。在計數器的計數值等於設定值時,計數器動作。計數器的設定值範圍為0000∼9999。
(3)舉例:
A.階梯圖 B.程式
|
C.說明:若00開關由0變為1時,計數器CNTR 06加1。若01開關由0變為1時,計數器CNTR 06減1。當計數值等於設定值(20)時,CNTR 06動作,因此200動作。若02開關按下,則計數器計數值歸為零。
D.時序圖
6.內部連鎖指令:IL(FUN 02)和ILC(FUN 03)---MC和MCR(FX2)
(1)格式:IL (連鎖) ILC (連鎖清除)
(2)意義:IL總是和ILC一起使用,IL放於連鎖的開頭,ILC則放於連鎖的結尾。當IL的輸入條件是OFF時(其前面的狀態為OFF),在IL和ILC之間的程式就不執行(即跳過),在此區間內的所有輸出位元及計時器將被復歸,而計數器、移位暫存器、及閉鎖暫存器則維持原有狀態。
(3)舉例:
A.階梯圖 B.程式
|
C.說明:若00開關(IL的條件)是ON時,IL與ILC間的程式正常執行,此時按下01開關,則200動作、按下02開關則201不動作、按下03開關則202動作。當00開關(IL的條件)是OFF時,IL與ILC間的程式不執行,此時200、201、202皆被復歸,就算按01、02、03都不會有任何反應。
D.時序圖
(4)使用IL/ILC可以用來取代TR,其優點是程式比TR少,如下表:
|
7.跳越與跳越結束指令:JMP(FUN 04)和JME(FUN 05)
(1)格式:JMP N N為跳越編號 JME N
(2)意義:
A.當JMP的輸入條件是OFF時(其前面的狀態為OFF),在JMP和JME之間的程式不執行,而是跳到JME後面的第一條指令,也就是說跳過JMP與JME間的程式。
B.一個程式中可以有許多個跳越,其以編號來識別。編號的範圍在00∼99間。但JMP 00與其它跳越並不完全相同。一般非編號00的跳越,在程式中祇能出現一次,且其間的程式在跳過時並不處理(不花時間),而編號00跳越則可以多次使用,且在跳越時,JMP與JME間的程式仍被處理,但不執行(須處理時間)。
(3)舉例:
A.階梯圖 B.程式
|
C.說明:若00開關(JMP的條件)是ON時,JMP與JME間的程式正常執行,此時按下01開關,則200動作、按下02開關則201動作、按下03開關則202動作。當00開關(IL的條件)是OFF時,JMP與JME間的程式不執行,但其所有元件的狀態繼續保持。因此JMP/JME與IL/ILC的差別是JMP/JME不執行時,所有元件都是保持原有的狀態,而IL/ILC則否。
D.時序圖
二、實習
1.題目說明:交替運轉電路 有兩只馬達由一只開關來控制,當第一次按下開關時,馬達M1動作,而馬達2停止。第二次再按下開關時,馬達M2動作,而馬達1停止。如此交互動作。
2.實習步驟:
(1)狀態分析:
A.本例考慮按下開關的動作時間因人而異,可能會有重覆執行的問題。所以不管按了多久,都只能算一次,需等放掉開關後,重新再按才有用。因此以上升微分指令取入開關狀態﹙避免壓按開關太久﹚。
B.馬達的交互動作可以以保持電驛指令來控制
(2)元件編號:
|
(3)繪出階梯圖
A.以上升微分指令取入開關狀態。
B.用微分動作及M1的ON/OFF來設定或復歸保持電意驛,再由保持電驛的A、B接點分別來控制M1及M2。
C.加上啟動及停止電路後全圖如下:
(4)撰寫程式並鍵入PLC中:
行 號 | 指 令(OMRON) | 行 號 | 指 令(FX2) |
00000 | LD 01 | 00000 | LD X1 |
00001 | OR 3000 | 00001 | OR M0 |
00002 | AND NOT 00 | 00002 | ANI X0 |
00003 | OUT 3000 | 00003 | OUT M0 |
00004 | LD 3000 | 00004 | LD M0 |
00005 | IL | 00005 | MC N0,M10 |
00006 | LD 02 | 00006 | LD X1 |
00007 | DIFU 3001 | 00007 | ALTP M1 |
00008 | LD 3001 | 00008 | LD M1 |
00009 | AND NOT 200 | 00009 | OUT Y0 |
00010 | LD 3001 | 00010 | LDI M1 |
00011 | AND 200 | 00011 | OUT Y1 |
00012 | KEEP 3002 | 00012 | MCR N0 |
00013 | LD 3002 | 00013 | END |
00014 | OUT 200 | ||
00015 | LD NOT 3002 | ||
00016 | OUT 201 | ||
00017 | ILC | ||
00018 | END |
(5)接線
(6)執行