- 可編程序控制器應用實訓(三菱機型)
- 蘇家健 顧陽主編
- 19字
- 2018-12-28 14:26:28
項目2 基本邏輯指令及定時器、計數器基礎
任務1 基本指令的使用
知識鏈接1 FX2N系列可編程控制器主要編程元件
PLC是按照電氣繼電控制線路設計思想,借助于大規模集成電路和計算機技術開發的一種新型工業控制器。使用者可以不必考慮PLC內部元器件的具體組成線路,而將PLC看成由各種功能元器件組成的工業控制器,利用編程語言對這些元器件線圈、觸點進行編程以達到控制要求,為此使用者必須熟悉和掌握這些元器件的功能、編號及其使用方法。每種元器件都用特定的字母來表示,如X表示輸入繼電器、Y表示輸出繼電器、M表示輔助繼電器、T表示定時器、C表示計數器、S表示狀態元件等,并對這些元器件給予規定的編號。下面對主要元器件做一下說明。
FX2N系列PLC具有數十種編程元件,其編號分為兩個部分。第一部分是代表功能的字母,如輸入繼電器用“X”表示,輸出繼電器用“Y”表示;第二部分為數字,數字為該類器件的序號。FX2N系列PLC中輸入繼電器及輸出繼電器的序號為八進制數,其余器件的序號為十進制數。
(1)輸入繼電器(X)。FX2N 系列可編程控制器輸入繼電器編號范圍為X000~X267(184點)。
輸入繼電器與PLC的輸入端相連,用于PLC接收外部開關信號,如開關、傳感器等輸入信號。輸入繼電器必須由外部信號來驅動,不能用程序驅動。它可提供無數對常開觸點和常閉觸點,這些接點在PLC內可以自由使用。
(2)輸出繼電器(Y)。輸出繼電器編號范圍為Y000~Y267(184點)。
輸出繼電器是PLC用來輸送信號到外部負載的元件,輸出繼電器只能用程序指令驅動,每一個輸出繼電器有一個外部輸出的常開觸點。而內部的軟觸點,不管是常開還是常閉,都可以無限次地自由使用。
(3)輔助繼電器(M)。PLC內部有很多輔助繼電器,輔助繼電器與輸出繼電器一樣只能用程序指令驅動,外部信號無法驅動它的常開、常閉觸點,在PLC內部編程時可以無限次地自由使用。但是,這些觸點不能直接驅動外部負載,外部負載必須由輸出繼電器的外部觸點來驅動。
在邏輯運算中經常需要一些中間繼電器進行輔助運算,這些器件往往用做狀態暫存或移位等運算。另外,輔助繼電器還具有一些特殊功能。下面是幾種常見的輔助繼電器。
① 通用輔助繼電器M0~M499。通用輔助繼電器按十進制地址編號M0~M499,共500點。
② 斷電保持輔助繼電器M500~M1023(524點)。PLC在運行過程中若發生停電,輸出繼電器和通用輔助繼電器全部成為斷開狀態。上電后,除了PLC運行時被外部輸入信號接通的以外,其他仍斷開。不少控制系統要求保持斷電瞬間狀態。斷電保持輔助繼電器就是用于此場合,斷電保持是由PLC內裝鋰電池支持的。
③ 特殊輔助繼電器M8000~M8255(256點)。PLC內有256個特殊輔助繼電器,這些特殊輔助繼電器各自具有特定的功能。通常分為兩大類。
● 只能利用其觸點的特殊輔助繼電器。線圈由PLC自動驅動,用戶只可以利用其觸點。例如:M8000為運行監控用,PLC運行時M8000接通;M8002為僅在運行開始瞬間接通的初始脈沖特殊輔助繼電器;M8012為產生100ms時鐘脈沖的特殊輔助繼電器。
● 可驅動線圈型特殊輔助繼電器,用戶激勵線圈后,PLC做特定動作,例如:M8030為鋰電池電壓指示燈特殊輔助繼電器,當鋰電池電壓跌落時,M8030動作,指示燈亮,提醒PLC維修人員需要趕快調換鋰電池了;M8033為PLC停止時輸出保持輔助繼電器;M8034為禁止全部輸出特殊輔助繼電器;M8039為定時掃描特殊輔助繼電器。
需要說明的是,未定義的特殊輔助繼電器不可在用戶程序中使用。
輔助繼電器的常開常閉觸點在PLC內可無限次地使用。
(4)狀態器(S)。狀態器是構成狀態轉移圖的重要器件,它與后述的步進順控指令配合使用。通常狀態器軟件有下面五種類型。
● 初始狀態器S0~S9共10點。
● 回零狀態器S10~S19共10點。
● 通用狀態器S20~S499共480點。
● 保持狀態器S500~S899共400點。
● 報警用狀態器S900~S999共100點。這100個狀態器器件可用做外部故障診斷輸出。
S0~S499沒有斷電保持功能,但是用程序可以將它們設定為有斷點保持功能的狀態。狀態器的常開、常閉觸點在PLC內可以使用,且使用次數不限。不用步進順控指令時,狀態器S可以作為輔助繼電器M在程序中使用。此外,每一個狀態繼電器還提供一個步進觸點,稱為STL觸點。在步進控制的梯形圖中使用。
(5)定時器(T)。PLC中定時器T相當于繼電器控制系統中的延時繼電器,它可提供無限對常開延時觸點、常閉延時觸點供編程使用。定時器元件號按十進制編號,設定時間由編程時設定系數K決定。T0~T199 為0.1s定時器,設定值范圍為0.1~3276.7s,最小單位為0.1s。T200~T245為0.01s定時器,設定值范圍為0.01~327.67s。其他還有積算型定時器。
(6)計數器(C)。計數器元件號按十進制編號,計數器計數次數由編程時設定系數K決定。它可提供無限對常開觸點、常閉觸點供編程使用。C0~C99為通用加計數器,計數范圍為1~32767。C100~C199為停電保持加計數器,計數范圍為1~32767。其他還有可逆加減計數器等。
知識鏈接2 基本指令
FX系列PLC有基本指令20條,步進指令2條,功能指令近百條。本節主要介紹基本指令。
1.邏輯取及線圈驅動指令LD、LDI、OUT
LD取指令:表示讀入一個與母線相連的常開觸點指令,即常開觸點邏輯運算起始。
LDI取反指令:表示讀入一個與母線相連的常閉觸點指令,即常閉觸點邏輯運算起始。
OUT線圈驅動指令,也叫輸出指令。
如圖2.1所示是上述三條基本指令的使用說明。

圖2.1 LD、LDI、OUT指令的使用說明
LD、LDI兩條指令的目標元件是X、Y、M、S、T、C,用于將觸點接到母線上。也可以與后述的ANB、ORB指令配合使用,在分支起點也可使用。
OUT是驅動線圈的輸出指令,它的目標元件是Y、M、S、T、C。對輸入繼電器X不能使用。OUT指令可以連續使用多次。
對定時器的定時線圈使用OUT指令后,必須設定常數K,圖中K為10,對應于延時時間為1s。對計數器的計數線圈,使用OUT指令后,也必須設定常數K,K表示計數器設定次數。
2.觸點串聯指令AND、ANI
AND與指令:用于單個常開觸點的串聯。
ANI與非指令:用于單個常閉觸點的串聯。
AND與ANI都是一個程序步指令,它們串聯觸點的個數沒有限制,也就是說這兩條指令可以多次重復使用。AND、ANI指令的使用說明如圖2.2所示。目標元件為X、Y、M、S、T、C。

圖2.2 AND、ANI指令的使用說明
3.觸點并聯指令OR、ORI
OR或指令:用于單個常開觸點的并聯。
ORI或非指令:用于單個常閉觸點的并聯。
OR與ORI指令都是一個程序步指令,它們的目標元件是X、Y、M、S、T、C。對這兩種指令的使用做如下說明。
(1)OR和ORI指令用于單個觸點的并聯連接。
(2)需要兩個以上觸點串聯連接電路塊的并聯連接時,要用后述的ORB指令。
OR、ORI是從該指令的當前步開始,對前面的LD、LDI指令并聯連接。并聯的次數無限制。OR、ORI指令的使用說明如圖2.3所示。

圖2.3 OR、ORI指令的使用說明
4.串聯電路塊的并聯連接指令ORB
兩個或兩個以上的觸點串聯連接的電路叫串聯電路塊。對串聯電路塊并聯連接時,有如下的說明。
(1)分支開始用LD、LDI指令,分支結果用ORB指令。
(2)ORB指令為無目標元件指令,而且為一個程序步。ORB有時也簡稱或塊指令。ORB指令的使用說明如圖2.4所示。

圖2.4 ORB指令的使用說明
ORB指令的使用方法有兩種:一種是在并聯的每個串聯電路塊后加ORB指令,如圖2.4所示的語句表;另一種是集中使用ORB指令,兩種指令的使用對比如圖2.5所示。對于前者分散使用ORB指令時,并聯電路的個數沒有限制,但對于后者集中使用ORB指令時,這種電路塊并聯的個數不能超過8個(即重復使用LD、LDI指令的次數限制在8次以下),所以不推薦用后者編程。

圖2.5 兩種ORB指令的使用對比
5.并聯電路塊的串聯連接指令ANB
兩個或兩個以上接點并聯的電路稱為并聯電路塊,分支電路并聯電路塊與前面電路串聯連接時,使用ANB指令。在使用時應注意以下幾點。
(1)分支的起點用LD、LDI指令,并聯電路塊結束后,使用ANB指令與前面電路串聯。
(2)ANB指令簡稱與塊指令,ANB也是無操作目標元件,是一個程序步指令。ANB指令的使用說明如圖2.6和圖2.7所示。

圖2.6 ANB指令使用說明之一

圖2.7 ANB指令使用說明之二
(3)當并聯的串聯電路塊≥3時,有兩種編程方法,但最好采用如圖2.6所示的編程方法。串聯電路塊逐塊連接,對每一電路塊使用ANB指令,ANB使用次數無限制。采用如圖2.7所示的編程方法時,ANB指令雖然也可連續使用,但重復使用LD、LDI指令的次數限制在8次以下,這點請注意。
6.多重輸出指令MPS、MRD、MPP
MPS為進棧指令。
MRD為讀棧指令。
MPP為出棧指令。
PLC中有11個存儲中間運算結果的存儲器,稱為棧存儲器。進棧MPS指令就是將運算中間的結果存入棧存儲器,使用一次MPS指令,該時刻的運算結果就壓入棧存儲器第一級,再使用一次MPS指令,當前的運算結果壓入棧存儲器的第一級,先壓入的數據依次向棧的下一級推移。
使用出棧MPP指令就是將存入棧存儲器的各數據依次上移,最上級數據讀出后就從棧內消失。
讀棧MRD指令是存入棧存儲器的最上級的最新數據的讀出專用指令,棧內的數據不發生上移和下移。
這組指令都是沒有數據(操作元件號)的指令,可將觸點先存儲,因此可用于多重輸出電路。MPS、MRD、MPP指令的使用說明如圖2.8、圖2.9、圖2.10和圖2.11所示。如圖2.8所示給出了棧存儲器與多重輸出的指令。

圖2.8 棧存儲器與多重輸出指令

圖2.9 一層棧電路

圖2.10 二層棧電路

圖2.11 四層棧電路
如圖2.9所示是一層棧電路,并且與ANB、ORB指令配合。
如圖2.10所示是二層棧電路。如圖2.11所示是一個四層棧電路。
MPS、MRD、MPP指令在使用中應注意:
(1)MPS、MRD、MPP指令用于多重輸出電路。
(2)MPS與MPP指令必須配對使用。
(3)MPS與MPP連續使用必須少于11次。
7.主控及主控復位指令MC、MCR
MC為主控指令,用于公共串聯觸點的連接;MCR叫主控復位指令,即MC的復位指令。在編程時,經常遇到多個線圈同時受一個或一組觸點控制。如果在每個線圈的控制電路中都串入同樣的觸點,將多占用存儲單元,應用主控指令可以解決這一問題。使用主控指令的接點稱為主控觸點,它在梯形圖中與一般的觸點垂直。它們是與母線相連的常開觸點,是控制一組電路的總開關。MC、MCR指令的使用說明如圖2.12所示。

圖2.12 MC、MCR指令的使用說明
MC指令是3步指令,MCR指令是2步指令,兩條指令的操作目標元件是Y和M,但不允許使用特殊輔助繼電器M。
當如圖2.12所示的X0接通時,執行MC與MCR之間的指令;當輸入條件斷開時,不執行MC與MCR之間的指令。非積算定時器和用OUT指令驅動的元件復位,積算定時器、計數器、用SET/RST指令驅動的元件保持當前的狀態。使用MC指令后,母線移到主控觸點的后面,與主控觸點相連的觸點必須用LD或LDI指令。MCR使母線回到原來的位置。在MC指令區內使用MC指令稱為嵌套,嵌套級N的編號(0~7)順次增大,返回時用MCR指令,從大的嵌套級開始解除,如圖2.13所示。

圖2.13 多重嵌套主控指令
8.置位與復位指令SET、RST
SET為置位指令,其功能是使元件置位并保持,直至復位為止。RST為復位指令,使元件復位并保持,直至置位為止。SET、RST指令的使用說明如圖2.14所示。

圖2.14 SET、RST指令的使用說明
由圖2.14(c)的波形圖可知,當X0接通,即使再變成斷開,Y0也保持接通。X1接通后,即使再變成斷開,Y0也將保持斷開。SET指令的操作目標元件為Y、M、S。而RST指令的操作元件為Y、M、S、D、V、Z、T、C。這兩條指令是1~3程序步。用RST指令可以對定時器、計數器、數據寄存器、變址寄存器的內容清零。對同一編程元件,可多次使用SET和RST指令,還可用來復位積算定時器T246~T255和計數器。RST復位指令用于計算器、定時器的使用說明如圖2.15所示。

圖2.15 RST指令用于T、C的使用說明
當X0接通,輸出接點T246復位,定時器的當前值也成為0。
輸入X1接通期間,T246接收1ms時鐘脈沖并計數,計到1234時Y0就動作。
32位計數器C200根據M8200的開、關狀態進行遞加或遞減計數,它對X4接點的開關數計數。輸出接點的置位或復位取決于計數方向及是否達到D0中所存的設定值。
輸入X3接通,輸出接點復位,計數器C200當前值清零。
9.脈沖輸出指令PLS、PLF
PLS指令在輸入信號上升沿產生脈沖輸出,而PLF在輸入信號下降沿產生脈沖輸出,這兩條指令都是2程序步,它們的目標元件是Y和M,但特殊輔助繼電器不能作為目標元件。
PLS、PLF指令的使用說明如圖2.16所示。使用PLS指令,元件Y、M僅在驅動輸入接通后的一個掃描周期內動作(置1),即PLS指令使M0產生一個掃描周期脈沖,而使用PLF指令,元件Y、M僅在驅動輸入斷開后的一個掃描周期內動作,即PLF指令使元件M1產生一個掃描周期脈沖。

圖2.16 PLS、PLF指令的使用說明
10.空操作指令NOP
NOP指令是一條無動作、無目標的一程序步指令。可編程控制器的編程器一般都有指令的插入和刪除功能,在程序中一般很少使用NOP指令,執行完清除用戶存儲器的操作后,用戶存儲器的內容全部變為空操作指令。
11.程序結束指令END
END是一條無目標元件的一程序步指令。PLC反復進行輸入處理、程序運算、輸出處理,若在程序最后寫入END指令,則END以后的程序不再執行,直接進行輸出處理。在程序調試過程中,按段插入END指令,可以順序擴大對各程序段動作的檢查。采用END指令將程序劃分為若干段,在確定處于前面電路塊的動作正確無誤之后,依次刪去END指令。要注意的是,在執行END指令時,監視時鐘也被刷新。
知識鏈接3 定時器與計數器
1.定時器
定時器相當于繼電器電路中的時間繼電器,可在程序中用做延時控制。
(1)定時器的類型。FX2N系列可編程控制器的定時器具有以下四種類型。
① 100ms定時器:T0~T199(200點),計時范圍:0.1~3276.7s。
② 10ms定時器:T200~T245(46點),計時范圍:0.01~327.67s。
③ 1ms積算定時器:T246~T249(4點:中斷動作),計時范圍:0.001~32.767s。
④ 100ms積算定時器:T250~T255(6點),計時范圍:0.1~3276.7s。
(2)定時器的工作原理。可編程控制器中的定時器是對機內1ms、10ms、100ms等不同規格時鐘脈沖累加計時的。定時器除了占有自己編號的存儲器位外,還占有一個設定值寄存器和一個當前值寄存器。設定值寄存器存放程序賦予的定時設定值。當前值寄存器記錄計時當前值。這些寄存器為16位二進制存儲器。其最大值乘以定時器的計時單位值即是定時器的最大計時范圍值。定時器滿足計時條件時開始計時,當前值寄存器則開始記數,當它的當前值與設定值寄存器存放的設定值相等時定時器動作,其常開觸點接通,常閉觸點斷開,并通過程序作用于控制對象,達到時間控制的目的。
(3)普通定時器與積算定時器的使用。如圖2.17所示為定時器在梯形圖中使用的情況。圖2.17(a)所示為普通定時器。圖2.17(b)所示為積算定時器。圖2.17(a)中X001為計時條件,當X001接通時,定時器T10計時開始。K20為設定值。十進制數“20”為該定時器計時單位值的倍數。T10為100ms定時器,當設定值為“K20”時,其計時時間為2s。圖中Y010為定時器的工作對象。當計時時間到,定時器T10的常開觸點接通,Y010置1。在計時過程中,計時條件X001斷開或PLC電源停電,計時過程中止且當前值寄存器復位(置0)。若X001斷開或PLC電源停電發生在計時過程完成且定時器的觸點已動作時,觸點的動作也不能保持。
若把定時器T10換成積算定時器T250,情況就不一樣了。積算定時器在計時條件失去或PLC失電時,其當前值寄存器的內容及觸點狀態均可保持,可在多次斷續的計時過程中“累計”計時時間,所以稱為“積算”。如圖2.17(b)所示為積算定時器T250的工作梯形圖。因積算定時器的當前值寄存器及觸點都有記憶功能,必須在程序中加入專門的復位指令。圖中X002即為復位條件。當X002執行“RST T250”指令時,T250的當前值寄存器及觸點同時置0。

圖2.17 定時器的使用
定時器可采用十進制常數(K)作為設定值,也可用后述的數據寄存器的內容做間接指定。
2.計數器
計數器在程序中用做計數控制。FX2N系列可編程控制器計數器可分為內部計數器及外部計數器。內部計數器是對機內元件(X、Y、M、S、T和C)的信號計數的計數器。由于機內信號的頻率低于掃描頻率,內部計數器是低速計數器,也稱普通計數器。對高于機器掃描頻率的信號進行計數,需用高速計數器。機內高速計數器的使用將在后續章節介紹。現將普通計數器分類介紹如下。
(1)16 位增計數器(設定值:1~32767)。有兩種16 位二進制增計數器,通用的C0~C99(100點)和掉電保持用的C100~C199(100點)。
16位是指其設定值及當前值寄存器為二進制16位寄存器,其設定值在K1~K32767范圍內有效。設定值K0與K1意義相同,均在第一次計數時,其觸點動作。
如圖2.18所示為16位增計數器的工作過程。圖中計數輸入X011是計數器的工作條件,X011每次接通驅動計數器C0 的線圈時,計數器的當前值加1。“K10”為計數器的設定值。當第10次執行線圈指令時,計數器的當前值和設定值相等,觸點就動作。計數器C0 的工作對象Y000接通,在C0的常開觸點置1后,即使計數器輸入X011再動作,計數器的當前狀態保持不變。

圖2.18 16位增計數器的工作過程
由于計數器的工作條件X011本身就是斷續工作的,外電源正常時,其當前值寄存器具有記憶功能,因而即使是非掉電保持型的計數器也需要復位指令才能復位。圖中X010為復位條件。當復位輸入X010接通時,執行RST指令,計數器的當前值復位為0,輸出觸點也復位。
計數器的設定值,除了常數設定外,也可通過數據寄存器間接設定。
使用計數器C100~C199時,即使停電,當前值和輸出觸點的置位/復位狀態也能保持。
(2)32位增/減計數器(設定值:-2147483648~+2147483647)。有兩種32位的增/減計數器,通用的C200~C219(20點)和掉電保持用的C220~C234(15點)。
32位是指其設定值寄存器為32位。由于是雙向計數,32位的首位為符號位。設定值的最大絕對值為31 位二進制數所表示的十進制數,即為-2147483648~+2147483647。設定值可直接用數據或間接用數據寄存器的內容。間接設定時,要用元件號緊連在一起的兩個數據寄存器。
計數的方向(增計數器或減計數器)由特殊輔助繼電器M8200~M8234設定。
對于C×××,當M8×××接通(置1)時為減法計數,當M8×××斷開(置0)時為加法計數。
如圖2.19所示為32位增/減計數器的動作過程。圖中X014作為計數輸入驅動C200線圈進行加計數或減計數。X012為計數方向選擇。計數器設定值為-5。當計數器的當前值由-6增加為-5時,其觸點置1,由-5減小為-6時,其觸點置0。

圖2.19 32位增/減計數器的工作過程
32位增/減計數器為循環計數器。當前值的增減雖與輸出觸點的動作無關,但從+2147483647起再進行加計數,當前值就變成-2147483648。從-2147483648起再進行減計數,則當前值變為+2147483647。
當復位條件X013接通時,執行RST指令,則計數器的當前值為0,輸出觸點也復位;使用斷電保持計數器,其當前值和輸出觸點狀態皆能斷電保持。
32位計數器可當做32位數據寄存器使用,但不能用做16位指令中的操作元件。