- 三菱FX3系列PLC功能指令應用全解
- 李金城編著
- 8442字
- 2024-01-19 15:51:37
1.3.3 定時器T和計數器C
在編程軟元件中,定時器和計數器是身兼位元件和字元件雙重身份的軟元件,其常開、常閉觸點是位元件,定時時間設定值和計數預置設定值是字元件,當前值也是字元件。
1.定時器T
1)編址與分類
三菱FX3系列定時器編址見表1-12。
三菱FX系列PLC的內部定時器分為通用型定時器和累計型定時器。
(1)通用型定時器
通用型定時器又叫非積算型定時器或常規定時器。根據計數時鐘脈沖不同又分為100ms定時器、10ms定時器和1ms定時器。其區分由定時器編址來決定,如表1-12所示。100ms、10ms和1ms均為定時器計數時鐘脈沖周期,也叫時基。
表1-12 定時器編址

注:①FX3S,FX3G,FX3GC的累計型定時器是通過EEPROM存儲器進行停電保持的。
②不適用于FX3S-30M□/E□-2AD。
③僅FX3G支持。
④FX3U,FX3UC累計型定時器是通過電池進行停電保持的。
⑤FX3S的T32-T62可以通過設置M8028=ON更改為10ms定時器。
通用型定時器的啟動和復位都是由驅動信號決定的,當驅動信號接通時,定時器被啟動;當驅動信號斷開時,定時器也立即復位。在定時器被啟動后,如果計時時間未達到設定值時,定時器被復位,則該次計時無效,定時器當前值清零。當計時時間到達設定值后,當前值不再變化,相應定時器觸點發生動作。其梯形圖程序和時序圖如圖1-21所示。

圖1-21 通用型定時器梯形圖及時序圖
(2)累計型定時器
累計型定時器又叫累加型定時器、積算型定時器、斷電保持型定時器,它和通用型定時器的區別在于累計型定時器在定時的過程中,如果驅動條件不成立或停電引起計時停止時,累計型定時器能保持計時當前值,等到驅動條件成立或復電后,計時會在原計時基礎上繼續進行,當累加時間到達設定值時,定時器觸點動作。
累計型定時器根據計數時鐘脈沖不同又分為100ms定時器和1ms定時器。其區分由定時器編址來決定,如表1-12所示。
累計型定時器不因驅動信號斷開或停電而復位,因此三菱FX系列PLC規定了累計型定時器復位只能用RST指令進行強制復位。圖1-22為累計型定時器梯形圖及時序圖。

圖1-22 累計型定時器梯形圖及時序圖
2)定時器性質
(1)定時器是PLC中的一個較為特殊的軟元件。它的當前值和設定值是數據寄存器結構,因此,它是一個字元件,而它的線圈和輸出觸點卻是一個位元件。觸點可以作為驅動條件控制電路的通斷,線圈是定時器的輸出表示。
(2)定時器是通過對時鐘脈沖計數來進行時間設定的,因此,定時器的定時時間是由時鐘脈沖的周期T和時鐘脈沖個數(由設定值K決定)的乘積來決定的,即:
定時時間=T×K
定時器的定時精度與時間脈沖的周期T有關,周期T越小,定時的精度越高。
(3)定時器輸出觸點是內部元件映像寄存器狀態,和普通的位元件一樣,可以對其常開、常閉觸點無限次取用。
(4)定時器只有通電延時觸點,沒有瞬時和斷電延時觸點。
(5)在PLC控制中,定時器是按照位元件線圈來處理的,它需要驅動,驅動后到達設定時間后,如不進行復位,則不能被反復使用。
(6)在程序中,定時器的線圈和輸出觸點的動作是按照掃描方式順序動作的(串行方式),而時間繼電器的線圈和觸點是同時動作的(并行方式)。
3)定時器使用
在三菱FX系列PLC中,定時器的符號表示如圖1-23所示。圖中,T為定時器符號,10為編址;K20為定時器的設定值,注意,不是定時時間設定。

圖1-23 定時器符號圖示
定時器的編號是按照十進制來編址的,編址同時也表示了定時器的時鐘脈沖周期T,即計時時間單位。例如,T0~T199為100ms定時器,編址在這個范圍里的定時器其計時單位均為100ms。
每個定時器有一個設定定時時間的寄存器(16位),一個對時鐘脈沖進行計數的當前值寄存器(16位)和一個用來存儲其輸出觸點的映像寄存器(1位)。這三個量使用同一地址編號的定時器符號。而在PLC的梯形圖程序中,它們出現在不同的位置則表示不同的含義。以T10為例,當T10為(T10 K20)時,是作為定時器線圈處理的,如圖1-24(a)所示,而定時器的啟動和復位均是對該線圈而言。當T10作為一個操作數出現在功能指令中時,T10是作為定時器的當前值處理的,這時T10的值是變化的,定時器啟動后,當前值便在不斷變化,最大為其設定值,如圖1-24(b)所示。當T10為常開、常閉觸點的符號時,觸點按照定時器的輸出觸點處理,當定時器計時時間到達設定時間后,觸點發生動作,并隨其線圈復位而復位,如圖1-24(c)所示。

圖1-24 定時器符號在梯形圖中的含義
對定時器,重點關心的是它的啟動、觸點動作和復位方式,我們把稱之為定時器的三要素。啟動是指定時器線圈開始工作的時刻,觸點動作時間則是指定時器觸點動作的時序,復位則是指定時器使當前值為0和觸點恢復原態的動作。掌握定時器三要素對分析時序控制是很有幫助的。
4)定時器控制功能
定時器在程序中主要使用兩種控制功能。一是定時控制功能,定時器從定時開始計時,到其設定值時,相應的定時器觸點動作;二是定時器當前值比較控制功能,定時器在計時過程中,其當前值是在不斷變化的,結合觸點比較指令,把當前值當作其中一個比較字元件,當時間到達比較值時,觸點動作。這種功能在某些控制中可以用一個定時器代替多個定時器工作。
2.計數器C
1)編址與分類
計數器C和繼電控制系統中的計數器類似,它也是位元件和字元件的組合,其觸點為位元件,其預置計數值和當前值為字元件。
三菱FX系列PLC內部計數器分為內部信號計數器和高速計數器兩大類,內部信號計數器是在執行掃描操作時對內部編程元件X,Y,M,S,T,C的信號進行計數,其接通和斷開的時間應長過PLC的掃描周期。內部信號計數器又分為16位增計數器和32位增/減計數器兩種。高速計數器專門對外部輸入的高速脈沖信號(從X0~X5輸入)進行計數,高速計數器是以中斷方式工作的,脈沖信號的周期可以小于掃描周期。這里不對高速計數器作詳盡講解,讀者如需了解請參看本書相關章節。
三菱FX3系列內部信號計數器編址如表1-13所示。
表1-13 內部信號計數器編址

注:①非停電保持的區域,根據設定的參數,可以更改為停電保持區域。
②停電保持區域,根據設定的參數,可以更改為非停電保持區域。
(1)16位增計數器(加計數器)C0~C199。
16位增計數器又叫16位加計數器。它又分為一般型(通用型)和斷電保持型兩種。
圖1-25為16位增計數器的程序及觸點動作時序圖。在梯形圖中,X011為計數脈沖輸入,其每通斷一次為一個脈沖輸入,當輸入脈沖的個數使計數器當前值變化至等于預置計數值時,其觸點C0就動作,常開為閉合,驅動Y0輸出,此后,X011仍然有計數脈沖輸入,計數器的當前值不再變化。X010為計數器的復位信號,當X010閉合時,計數器的當前值復歸為0,其相應觸點也復歸原態。
在計數器工作過程中,通用型計數器會因斷電而自動復位,斷電前所記數值會全部丟失。
斷電保持型計數器和斷電保持型定時器類似,它們能夠在斷電后保持已經記下來的數值,再次通電后,只要復位信號沒有對計數器進行過復位,計數器就在原來的基礎上繼續計數。斷電保持型計數器的其他特性和通用型計數器相同。
由PLC掃描工作原理可知,PLC是批量進行輸入狀態刷新的,一個掃描周期僅刷新一次,刷新后的輸入狀態被置于映像存儲區,供程序執行時取用。

圖1-25 16位增計數器的程序及觸點動作時序圖
計數器輸入脈沖信號的頻率不能過高,如果在一個掃描周期內,輸入的脈沖信號多過1個,其余的脈沖信號就不會被計數器計數,這樣會產生計數不準確的問題。因此,對計數器輸入脈沖的頻率是有一定要求的。一般要求脈沖信號的周期要大于兩倍的掃描周期,這就能滿足大部分實際工程的需要。
(2)32位增/減計數器(雙向計數器)C200~C234。
32位增/減計數器又叫雙向計數器。所謂雙向計數器就是它可以由0開始增1環形計數到預置值,也可以由0開始減1環形計數到預置值。32位增/減計數器也分為一般型和斷電保持型兩種。
32位計數器的預置值可由常數K表示,也可以通過數據寄存器D來間接表示。如果用寄存器表示,其預置值為兩個元件號相連的寄存器內容。例如,C200 D0預置值存放在D1、D0兩個寄存器中,且D1為高位,D0為低位。
那么雙向計數器的方向是如何確定的呢?雙向計數器的計數脈沖只能有一個,其計數方向是由特殊輔助繼電器M82××來定義的。M82××中的××與計數器C2××相對應,如C200由M8200定義,C210由M8210定義等。雙向定義規定M82××為ON,則C2××為減計數;M82××為OFF,則C2××為增計數,如表1-14所示。由于M82××的初始狀態是斷開的,因此默認的C2××都是增計數。只有當M82××閉合時,C2××才變為減計數。
表1-14 32位增/減計數器計數方向確定

雙向計數器與增計數器在性能上有很大的差別,主要表現在計數方式和觸點動作上。
(1)計數方式不同。
增計數器當脈沖輸入計數值達到預置值后,即使繼續有計數脈沖輸入,計數器的當前值仍然為預置值。而雙向計數器是一個環形計數器,其當前值變化可用圖1-26來說明。
雙向計數器在計數方向確定后,其當前值會隨脈沖不斷地輸入而發生變化。當當前值等于預置值后,如果繼續有脈沖變化,其當前值仍然發生變化。在增計數方向下,會一直增加到最大值2147483647。這時,如果再增加一次脈沖,當前值馬上就會變為-2147483648。如果繼續有脈沖輸入,當前值則會由-2147483648變化至-1,0,1,又繼續變化至2147483647,如此循環不斷,如圖1-26(a)所示。而在減計數方向下,當前值會沿如圖1-26(b)所示方向進行循環變化。
如果在變化的過程中,計數方向發生變化,則當前值馬上按新的方向變化。

圖1-26 雙向計數器循環計數示意圖
(2)觸點動作不同。
增量計數器的當前值增加到預置值后,其觸點動作,動作后直到對計數器斷電或復位,其觸點才恢復常態,這是典型的計數功能。其預置值就是要求計數的脈沖個數(在實際控制中,代表被計數物體的數量)。
而雙向計數器則不同,它是一個環形計數器,其預置值可以為正值,也可以為負值。因此,這個預置值僅是當前值在輸入脈沖發生變化時的比較值,而計數器觸點的動作與這個比較結果有關。在雙向計數過程中,只要當前值等于預置值時,其觸點就動作一次。
當預置值為正值時,當前值會在增計數方式和減計數方式下分別等于預置值,在這兩種情況下,計數器的觸點都會動作,如圖1-27所示。圖中,雙向計數器C200的預置值為K3,由時序圖可以看出,開始計數后,當當前值等于預置值時,C200常開觸點動合,當計數到K5時,改變計數方向,當前值由K5以減計數方式變化,變化至K3時,其C200常開觸點動斷,恢復原態。注意,這個C200常開觸點復位并不是RST指令所致,而是在計數過程中發生的,應用時要特別注意。

圖1-27 雙向計數器程序和觸點動作時序圖(預置值為正值)
同樣,當預置值為負值時,當前值也會在減計數方式和增計數方式下兩次等于預置值,這兩種情況,計數器的觸點都會動作,如圖1-28所示。圖中,當計數器C200在減計數方式下等于K-5時,其觸點動作,恢復原態(OFF),見圖中c點。而C200在增計數方式下等于K-5時,觸點動合(ON),見圖中b點。圖中a點是減計數方式等于K-5時,因為C200觸點此時就處于原態(OFF)中,所以Y1仍然維持原態。
由上面兩個例子可以得出以下結論:雙向計數器的當前值在增計數到達其預置值時,其常開觸點動作為ON;當前值在減計數到達其預置值時,其常開觸點動作為OFF。
不論是在增計數方式還是在減計數方式,如果給雙向計數器發出RST信號,計數器的當前值馬上復歸為0,其觸點也恢復原態。

圖1-28 雙向計數器程序和觸點動作時序圖(預置值為負值)
2)計數器性質
(1)內部計數器是PLC中的一個較為特殊的軟元件,它的當前值和預置計數值是數據寄存器結構,因此,它是一個字元件。而它的輸出觸點卻是一個位元件,可以作為驅動條件控制電路的通斷。
(2)內部計數器輸出觸點是內部元件映像寄存器狀態,和普通的位元件一樣,可以對其常開、常閉觸點無限次取用。
(3)在PLC控制中,內部計數器是按照位元件線圈來處理的,它需要驅動,驅動后當前值到達預置計數值后,其輸出觸點動作。計數器的復位必須用RST指令完成。
(4)在程序中,內部計數器的線圈和輸出觸點的動作是按照掃描方式順序動作的(串行方式)。
3)計數器使用
在三菱FX系列PLC中,內部計數器的符號表示如圖1-29所示。圖中,C為內部計數器符號,10為編址,而C10則表示某個內部計數器的編號,K20為內部計數器的預置計數值。

圖1-29 內部計數器符號圖示
內部計數器的編號是按照十進制來編址的,編址同時也表示了內部計數器的分類,不同編號的計數器其應用會有很大的差別。
每個內部計數器有一個設定預置計數值的寄存器(16位或32位),一個對計數脈沖進行計數的當前值寄存器(16位或32位)和一個用來存儲其輸出觸點的映像寄存器(1位)。這三個量使用同一地址編號的計數器符號。而在PLC的程序中,它們出現在不同的位置則表示不同的含義。以C10為例,當C10為(C10 K20)時,是作為計數器線圈處理的,如圖1-30(a),計數器的啟動和復位均對該線圈而言。當C10作為一個操作數出現在功能指令中時,C10是作為計數器的當前值處理的,這時C10的值是變化的,計數器啟動后,當前值便在不斷變化,如圖1-30(b)。當C10為常開、常閉觸點的符號時,觸點按照計數器的輸出觸點處理,當計數器當前值達到設定預置計數值后,輸出觸點動作,如圖1-30(c)。

圖1-30 定時器符號處理梯形圖表示
4)計數器預置計數值、觸點動作時序和復位
和定時器不一樣,計數器重點關心的是它的預置計數值、觸點動作時序和復位,我們把它們稱作計數器的三要素。啟動是指計數器線圈在接收到第一個脈沖上升沿開始計數的時刻,亦即計數開始,此后,隨著計數脈沖的不斷輸入,計數器當前值也跟著變化,當其當前值變化到等于預置計數值時,計數器的觸點動作。具體動作過程與計數器類別有關,如果在當前值等于預置計數值后,仍然有計數脈沖輸入,則當前值會繼續變化,直至變化至最大值或進行環形計數。計數器的復位是指在脈沖輸入過程中,用RST指令進行復位,這時,計數器的當前值會復歸為0,其觸點也恢復原態。計數器在應用時,要求在計數前都要先清零,因為如不清零,其殘留計數值不會自動去除,會影響到下面的計數。
5)內部計數器應用
在計數器計數過程中,如果通過指令改變了計數器的當前值,則會對計數過程產生一定的影響。
如圖1-31所示,當X002啟動計數器C1后,如果在計數的過程中,利用X0改變了其當前值,若當前值小于其預置值,則當前值馬上變為更改后的當前值,并繼續計數下去,直到等于預置值并且觸點動作為止。若當前值等于或大于預置值,則當前值馬上變化為預置值,且觸點也馬上動作。

圖1-31 計數當前值變化影響梯形圖程序
上面討論的是增量計數器情況,對于雙向計數器來說,在增計數方式下,即使當前值改變大于預置值,則當前值會在更改后的當前值基礎上繼續計數下去,但其觸點不會動作,觸點動作的時間仍按其原有的規定執行。
3.定時器和計數器的設定
定時器的定時時間設定存在很多設定方法,有直接設定、間接設定、外部設備設定等。現以定時器為例進行說明,下面的方法也都適用于計數器的預置數設定。
1)定時時間的直接設定
定時器定時時間的直接設定就是指其定時時間軟元件直接用十進制常數指定(不可以用十六進制數指定,也不可以用小數指定)。梯形圖程序如圖1-32所示。

圖1-29 定時時間的直接設定
直接指定的優點是簡潔明白,一看就知道定時時間是多少。缺點是如果定時時間是不確定的,需要改變定時值則必須修改程序才能完成。這對于某些對定時值需要根據控制條件而變化的動態控制程序來說,就不能滿足其隨時修改的要求。這時,就要用到定時值的間接設定。
2)定時時間的間接設定
定時器的定時時間間接設定是指把定時時間元件指定為一個數據存儲單元(D或R數據寄存器),而該數據存儲單元所存儲的二進制數據值便為定時器的定時設定值。那么只要變化數據存儲單元的存儲內容,就改變了定時器的定時設定值。梯形圖程序如圖1-33所示。

圖1-33 定時時間的間接設定
【例6】試說明定時器T0 D0的定時時間設定值。(D0)=K200。
解:T0為100ms時鐘脈沖定時器,則定時值=100ms×200=20000ms=20s。
間接指定只能是D或R寄存器,不能為S、V、Z或ER寄存器,也不可以為組合位元件。寄存器的數據是按BIN數來處理的,如果是負數,則定時器設定值自動為0;如為32位寄存器數,則定時器設定值按指定數據低16位處理。
【例7】試說明下面梯形圖中定時器T的定時時間設定值。
解:(1)如圖1-34梯形圖中T2的定時時間設定值,(D0)=H0FF03,按照BIN數約定,這是一個負數,所以T2的定時值為0。

圖1-34 例7(1)梯形圖
(2)如圖1-35梯形圖中,(D1,D0)是按照雙字輸入的,但對T0來說,它只認D1的值,(D1)=H0032=K50,而T10只認D0的值,(D0)=H000A=K10,所以T0的定時設定值為5秒,而T10為1秒。

圖1-35 例7(2)梯形圖
間接指定也可以用變址方式指定,如圖1-36所示。這時,定時時間設定值由變址后的寄存器數據內容所確定。
【例8】試說明圖1-36中各個定時器的定時時間設定值。

圖1-36 定時時間變址方式指定
解:(1)假設(V0)=K-10。這是一個立即數變址,其變址后的數值為K100+(V0)=K100-K10=K90,T10的定時設定值為9秒。
(2)假設(Z0)=K20,(D0)=K100,(D20)=K50。這是一個典型的變址尋址,變址后的寄存器地址是0+K20=K20,即D20。D20的內存值為K50,所以T20的定時設定值為5秒。
2)定時時間的外部設定
定時時間的間接設定,可以在程序中改變寄存器的值來完成。更多情況下是通過PLC的外部設備進行人機對話來修正間接設定寄存器的值。
(1)外接開關
當觸摸屏沒有普及時,早期的PLC是通過外部開關的組態來間接指定定時器的定時時間值。現在當控制設備比較簡單,設定時間精度要求不高時,T13會采用這種方法。
● 外接按鈕輸入
在PLC的三個輸入端口X000、X001、X002分別接上三個按鈕,設計如圖1-37的梯形圖程序,可通過按鈕來間接設定定時器的定時時間值。

圖1-37 按鈕輸入梯形圖程序
按鈕X002為定時時間間接設定寄存器D0的清零按鈕,每次設定時,都必須先按清零按鈕,以保證定時時間設定從0開始。按鈕X000為加按鈕,每按一次,定時時間增加0.1秒。按鈕X001為減按鈕,每按一次定時時間減少0.1秒。這樣,通過這兩個按鈕的動作次數可以基本上估計定時時間的多少。程序中,ADD為加法指令,SUB為減法指令。如果要按一次增加1秒或減少1秒,把這兩個指令中的K1改成K10即可。以上說明是針對100ms定時器T0~T199而言。
這種通過按鈕輸入來改變定時時間的方式非常簡單實用,定時時間可以隨機設定;缺點是改變一個定時器的定時時間需要三個輸入端口。在一些簡易的設備上經常采用這種方法。
利用功能指令TTMR,可以使用一個按鈕很方便地對多個定時器的定時時間進行修改。詳細講述請參看示教定時器指令TTMR的內容。
● 外接開關輸入
在PLC的輸入端口X0、X1接上兩個開關,這時,X0、X1可以形成四種不同的組態,如圖1-38所示。這四種組態可以對應四個定時時間設定值。這樣,操作人員只要控制開關的組態,就間接指定了定時時間設定值。

圖1-38 外接開關接線圖
這種方式簡單可靠,成本低廉,在一些簡易的PLC控制設備上常被采用,其缺點是:如果時間設定較多,則需增加輸入端口,而且時間設定也是固定的,不能任意設定。
● 外接撥碼開關輸入
撥碼開關是一組獨立的開關,如圖1-39(a)所示,把它們與輸入端口順序連接,如圖1-39(b)所示,可以組成一組N位二進制數(N為開關的個數),PLC利用MOV指令將該N位二進制數通過組合位元件方式讀入到內存中,二進制數的值由開關的通斷狀態組合確定。這是PLC早期人機對話的方式。

圖1-39 撥碼開關輸入
這種方式與外接開關輸入方式相比優點是程序設計簡單,可以進行動態設定;缺點是占用較多的輸入端口,人機對話功能極差,不經過計算根本看不出輸入端口的開關組態代表什么數值。
上述兩種利用開關的組態改變定時器的時間設定值的方法,幾乎適用于所有品牌的PLC。在早期PLC的簡單控制設備中,得到了比較廣泛的應用。
● 外接數字開關
數字開關是一個4位撥碼開關組合,占用4個輸入端口。圖1-40(a)為數字開關外形圖,圖1-40(b)為一個二位數字開關接線圖,撥動開關會顯示一個十進制數(0~9),通過功能指令BIN把數字開關這個十進制數用8421BCD編碼的狀態組合送入PLC。

圖1-40 數字開關輸入
這種方式最大的特點是人機對話非常清晰,數字開關所顯示的是人們非常熟悉的十進制數。
● 外接按鍵輸入
外接按鍵輸入是指在PLC的輸入端口接入11個按鍵開關(帶復位)和1個開關,它們組成了一個小型的鍵盤,定時器定時時間的設定和修改操作均通過這個小型的鍵盤進行,如圖1-41所示。

圖1-41 外接按鍵輸入
這種輸入方式是通過三菱FX系列PLC的功能指令TKY來實現的。TKY為10鍵輸入指令,注意,這個指令僅三菱FX2N PLC及FX3系列PLC才有,FX1S/FX1N/FX1NC系列PLC都沒有這個功能指令。
(2)外接模擬電位器
三菱電機為模仿數字式時間繼電器的定時時間調節開發了FX2N-8AV-BD模擬電位器功能擴展板,如圖1-42(a)所示,使用時直接安裝在PLC的基本單元的數據線接口上。板上有8個小型電位器VR0~R7,位置編號如圖1-42(b)所示,轉動電位器旋鈕,就好像調節數字式時間繼電器的電位器一樣,可以控制PLC的內部定時器的定時時間。

圖1-42 外接模擬電位器
模擬電位器VR0~VR7的數值由PLC通過指令VRRD和VRSC讀取到數據寄存器D中。外置模擬電位器僅適用于FX1S/FX1N/FX2N系列PLC,不適用于FX3系列PLC。
(3)外接文本顯示器和觸摸屏
文本顯示器和觸摸屏是目前最常用的設定定時器定時時間的方式。
文本顯示器,又名終端顯示器、顯示模塊,是一種單純以文字呈現的人機互動系統。觸摸屏又稱人機界面(HMI),是進行人機對話的極其重要的元件,是工業控制系統極其重要的組成部分,工控人員可以通過觸摸屏和PLC之間進行各種信息的傳遞和交換。