一、狀態設計法說明:
在自動控制的領域當中,若以較簡單的分類來說,有順序控制及反饋控制兩種﹙PLC較偏向順序控制方面﹚。而順序控制又可分成程序控制及條件控制兩種。所謂程序控制是依使用者所預定的順序,自動進行控制各項元件;而條件控制是依使用者所設定的條件,對不同的輸入做出不同的反應動作。兩者之間看似不同,其實內部確有極相似的觀念存在,那就是兩者都是狀態的組合。程序控制是依序執行不同的狀態,而條件控制則是根據輸入,再加以判斷分析,最後選擇適合的狀態來反應。依據這種觀念,筆者提出狀態設計法,這種設計法能涵蓋大部份的順序控制,是一種較快速的設計法。
二、設計步驟實例:
設計一電路控制,條件如後:按PB1則M1、M2動作;按PB2則M2、M3動作;按PB3則M3、M1動作。(本例屬於條件控制)
1.狀態分析並直接繪出階梯圖
(1)將電路功能分析成若干狀態,每一個狀態都以一個內部電驛來代表。上述功能可以分成三種狀態,亦即
A.按PB1時為第一種狀態S1,並以內部電驛1000(M0)來代表
B.按PB2時為第一種狀態S2,並以內部電驛1001(M1)來代表
C.按PB3時為第一種狀態S3,並以內部電驛1002(M2)來代表
輸 入 元 件 |
輸 出 元 件 |
內 部 元 件 |
PB1→00 (X0)
PB2→01 (X1)
PB3→02 (X2)
OL1→03 (X3)
OL2→04 (X4)
OL3→05 (X5) |
MC1→500 (Y0)
MC2→501 (Y1)
MC3→502 (Y2)
|
S1→1000 (M0) S2→1001 (M1) S3→1002
(M2) |
|
(2)因為馬達的動作均為持續運轉,所以每一種狀態都應該能自保持,因此階梯圖如左下圖;
(3)因為三種狀態中,在一段時間只能有一種存在,所以假若S1動作,則S2、S3必需切斷;同理S2動作,則S1、S3必需切斷;S3動作,則S1、S2必需切斷。這是一種互鎖電路,最好的方法是利用開關的B接點。也就是用A接點接通自己而用B接點切斷別人,如右上圖。
(4)加上OL得到左下圖
(5)利用狀態電驛的A接點來驅動輸出:狀態S1(1000)時,M1、M2(500、501)動作;狀態S2(1001)時,M2、M3(501、502)動作;狀態S3(1002)時,M3、M1(502、500)動作。交叉分析得到如右上圖。
(6)將上兩圖組合以後得到完整的階梯圖如下
2.撰寫程式並鍵入PLC中
行 號 |
指 令(OMRON) |
行 號 |
指 令(FX2) |
00000 |
LD
00 |
00000 |
LD
X0 |
00001 |
OR
1000 |
00001 |
OR
M0 |
00002 |
AND NOT 01 |
00002 |
ANI
X1 |
00003 |
AND NOT 02 |
00003 |
ANI
X2 |
00004 |
AND NOT 03 |
00004 |
ANI
X3 |
00005 |
OUT
1000 |
00005 |
OUT M0 |
00006 |
LD
01 |
00006 |
LD
X1 |
00007 |
OR
1001 |
00007 |
OR
M1 |
00008 |
AND NOT 00 |
00008 |
ANI
X0 |
00009 |
AND NOT 02 |
00009 |
ANI
X2 |
00010 |
AND NOT 04 |
00010 |
ANI
X4 |
00011 |
OUT
1001 |
00011 |
OUT M1 |
00012 |
LD
02 |
00012 |
LD
X2 |
00013 |
OR
1002 |
00013 |
OR
M2 |
00014 |
AND NOT 00 |
00014 |
ANI
X0 |
00015 |
AND NOT 01 |
00015 |
ANI
X1 |
00016 |
AND NOT 05 |
00016 |
ANI
X5 |
00017 |
OUT
1002 |
00017 |
OUT M2 |
00018 |
LD
1000 |
00018 |
LD
M0 |
00019 |
OR
1002 |
00019 |
OR
M2 |
00020 |
OUT
500 |
00020 |
OUT
Y0 |
00021 |
LD
1000 |
00021 |
LD
M0 |
00022 |
OR
1001 |
00022 |
OR
M1 |
00023 |
OUT
501 |
00023 |
OUT
Y1 |
00024 |
LD
1001 |
00024 |
LD
M1 |
00025 |
OR
1002 |
00025 |
OR
M2 |
00026 |
OUT
502 |
00026 |
OUT
Y2 |
00027 |
END |
00027 |
END |
|
3.接線
4.執行
四、實習
1.題目:設計紅綠燈控制電路,如下圖所示(本例屬於程序控制)
2.實習步驟
(1)狀態分析並直接繪出階梯圖
A.如上圖所示,雖然共有12個燈,但直向的兩組燈可直接並接,橫向的兩組燈也一樣,所以實際上只需6個輸出點即可,分別供給RL1、YL1、GL1、RL2、YL2、GL2。
B.依紅綠燈變化的情形來分析,可以得出下列四個依設定時間而順序執行的狀態。
a. 狀態S1(1000或M0)→GL1及RL2亮
b. 狀態S2(1001或M1)→YL1及RL2亮
c. 狀態S3(1002或M2)→RL1及GL2亮
d. 狀態S4(1003或M3)→RL1及YL2亮
輸 入 元 件 |
輸 出 元 件 |
內 部 元 件 |
PB1→00 (X0)
PB2→01 (X1)
|
GL1→500 (Y0)
YL1→501 (Y1)
RL1→502 (Y2)
GL2→503 (Y3)
YL2→504 (Y4)
RL2→505 (Y5)
|
S1→1000 (M0) S2→1001
(M1) S3→1002 (M2) S4→1003
(M3) T1→TIM00 (T0) T2→TIM01 (T1) T3→TIM02
(T2) T4→TIM03 (T3) |
|
C.因此階梯圖如左下圖;
D.因為四種狀態中,在一段時間只能有一種存在,但因為狀態是依序進行的,所以假若S1動作,則S4必需切斷;同理S2動作,則S1必需切斷;S3動作,則S2必需切斷;S4動作,則S3必需切斷。另外為了避免在狀態執行中又按下01開關,因此在S1迴路上必須串上其它狀態的B接點,如右上圖。
E.因為在任何狀態下,按下PB1時,都應能切斷電路,因此必須在每一狀態行,都插入PB1的B接點,如下圖。
F.利用狀態電驛的A接點來驅動輸出:狀態S1(1000)時,GL1、RL2(500、505)動作;狀態S2(1001)時,YL1、RL2(501、505)動作;狀態S3(1002)時,RL1、GL2(502、503)動作;狀態S4(1003)時,RL1、YL2(502、504)動作。交叉分析得到下圖。
G.將上兩圖組合以後得到完整的階梯圖如下圖
(2).撰寫程式並鍵入PLC中
行 號 |
指 令(OMRON) |
行 號 |
指 令(FX2) |
00000 |
LD
01 |
00000 |
LD
X1 |
00001 |
AND NOT 1002 |
00001 |
ANI
M2 |
00002 |
AND NOT 1003 |
00002 |
ANI
M3 |
00003 |
OR
TIM03 |
00003 |
OR
T3 |
00004 |
OR
1000 |
00004 |
OR
M0 |
00005 |
AND NOT 1001 |
00005 |
ANI
M1 |
00006 |
AND NOT 00 |
00006 |
ANI
X0 |
00007 |
OUT
1000 |
00007 |
OUT
M0 |
00008 |
TIM
00 |
00008 |
OUT
T0 |
|
#50 |
|
K50 |
00009 |
LD
TIM00 |
00009 |
LD
T0 |
00010 |
OR
1001 |
00010 |
OR
M1 |
00011 |
AND NOT 1002 |
00011 |
ANI
M2 |
00012 |
AND NOT 00 |
00012 |
ANI
X0 |
00013 |
OUT
1001 |
00013 |
OUT
M1 |
00014 |
TIM
01 |
00014 |
OUT
T1 |
|
#20 |
|
K20 |
00015 |
LD
TIM01 |
00015 |
LD
T1 |
00016 |
OR
1002 |
00016 |
OR
M2 |
00017 |
AND NOT 1003 |
00017 |
ANI
M3 |
00018 |
AND NOT 00 |
00018 |
ANI
X0 |
00019 |
OUT
1002 |
00019 |
OUT
M2 |
00020 |
TIM
02 |
00020 |
OUT
T2 |
|
#50 |
|
K50 |
00021 |
LD
TIM02 |
00021 |
LD
T2 |
00022 |
OR
1003 |
00022 |
OR
M3 |
00023 |
AND NOT 1000 |
00023 |
ANI
M0 |
00024 |
AND NOT 00 |
00024 |
ANI
X0 |
00025 |
OUT
1003 |
00025 |
OUT
M3 |
00026 |
TIM
03 |
00026 |
OUT
T3 |
|
#20 |
|
K20 |
00027 |
LD
1000 |
00027 |
LD
M0 |
00028 |
OUT
500 |
00028 |
OUT
Y0 |
00029 |
LD
1001 |
00029 |
LD
M1 |
00030 |
OUT
501 |
00030 |
OUT
501 |
00031 |
LD
1002 |
00031 |
LD
M2 |
00032 |
OR
1003 |
00032 |
OR
M3 |
00033 |
OUT
502 |
00033 |
OUT
Y2 |
00034 |
LD
1002 |
00034 |
LD
M2 |
00035 |
OUT
503 |
00035 |
OUT
Y3 |
00036 |
LD
1003 |
00036 |
LD
M3 |
00037 |
OUT
504 |
00037 |
OUT
Y4 |
00038 |
LD
1000 |
00038 |
LD
M0 |
00039 |
OR
1001 |
00039 |
OR
M1 |
00040 |
OUT
505 |
00040 |
OUT
Y5 |
00041 |
END |
00041 |
END |
|
(3)接線
(4)執行