“小時候總想著,自己要是可以控制時間就好了,給時間按下暫停鍵,然后把班里的那個死對頭打一頓哈哈哈哈哈嗝,做夢呢。雖然我不可以控制時間,但是我可以通過定時器控制PLC的程序執行呀,這也是從另一方面實現我控制時間的的夢想了,激動!
PLC中,定時器和計數器是兩個非常主要的編程元件,是PLC程序編制不可或缺的環節。我在之前的文章中簡單地扯了一下這兩個元件,而現在就是揭秘時刻了,讓我們一起來看看它們的廬山真面目吧!
一、定時器
說到定時器,其實我們生活中就有很多它的應用,例如洗衣機的定時選擇,烤箱的定時旋鈕、空調的定時遙控、定時炸彈(這個還是算了)等。當然,還有電工朋友們比較熟悉的時間繼電器也算是一種定時器。而PLC的定時器是一種編程元件,其實它就相當于繼電控制系統中的時間繼電器。為了便于學習PLC的定時器,我們先來了解一下時間繼電器。
在繼電控制電路中,如果要用到時間控制,就必須要用到時間繼電器,其實我對時間繼電器不熟悉,因為我對繼電控制電路的接觸本來就不多,但是我說過,我是專門去學習了接觸器的,時間繼電器和接觸器有點類似,只不過接觸器不能進行時間控制罷了。
要驅動接觸器的常開、常閉觸點動作,就必須給接觸器的線圈通電,同樣的,在控制電路中,要使時間繼電器的各種觸點動作,也是需要驅動條件的,即線圈得電。這讓我想起了我平時在家打游戲的時候,如果是其他人叫我吃飯,那我肯定是專注游戲,紋絲不動的,但如果是老媽的獅子吼,還管什么游戲,小命要緊,這里的老媽獅子吼就是驅動條件,而我去吃飯就是觸點動作,可以說非常形象了。
根據變化的不同,時間繼電器有三種類型觸點:瞬時動作、通電延時、斷電延時。結合時間繼電器常開觸點動作時序圖,我們可以更為直觀的看出其觸點的動作過程,特別是“通電延時”和“斷電延時”。
通電延時,也就是線圈得電,但觸點延時動作,線圈失電,觸點馬上動作。這就像是我們上課,上課鈴響,大家磨磨蹭蹭的挪向教室,但下課鈴聲一響,大家就跟長跑運動員一樣瞬時就不見人影了。斷電延時,也就是線圈得電,觸點馬上動作,線圈失電,觸點延時動作。這也像是上課,如果說通電延時是上數學課,那斷電延時就是上體育課,上課鈴響,大家奔向操場放飛自我,但下課鈴響,大家像是七老八十一樣慢慢挪回教室。這是的上課鈴和下課鈴就像線圈的得電與失電,而學生的上課和下課就是觸點動作。
在PLC中,定時器作用其實和時間繼電器相差無幾,都是用于對時間的控制,特別是延時控制,且都需要驅動條件,但PLC的定時器只能進行瞬時動作和通電延時的控制,要實現斷電延時,就得通過程序編制。我在前面的文章說過,定時器是字(16位)元件,所以可以對時鐘脈沖計數并保存數值,也因為它是16位元件,所以定時的時長是有范圍的。
三菱FX2N PLC的定時器分為通用型定時器和積算型定時器。通用型定時器又稱非積算定型時器或常規定時器,積算型定時器又稱斷電保持型定時器。接下來,我們一起看看它們兩者有什么不同吧。
1、通用型定時器T0~T245
通用型定時器根據計數時鐘脈沖不同分為100ms定時器和10ms定時器。
從上圖我們也可以看出,定時器的時鐘脈沖是由它們的編號區分的,其中T0~T199為時鐘脈沖100ms的定時器,共200個;T200~T245為時鐘脈沖10ms的定時器,共46個。例如選用T20這個定時器,那就表示選用了時鐘脈沖為100ms的定時器,K20表示十進制數的20,所以T20 K20就表示定時器的定時時間為20個脈沖,即20×100=2s。
因為PLC的定時器類似于繼電控制電路的時間繼電器,所以,在梯形圖中,我們把定時器作為線圈處理,如上圖所示,定時器的驅動元件為X1觸點,當X1觸點閉合,定時器T20(線圈)得電,經過定時時間2s后,定時器的常開觸點閉合。
定時器的脈沖數除了可以用十進制數表示外,還可以用數據寄存器D的內容來表示。D就像是一個口袋,里面裝著一個數(16位的二進制數),這個數就是計數器的脈沖個數,例如T20 D0,D0里存的數是H10,轉換為十進制就是16,這時計數器T20的定時時間就為16×100=1.6s。
這里要注意的是,當通用計數器的驅動信號斷開,此時不管計數器的計時時間是否達到設定值,計數器都會復位,計時清零,直到再次被驅動,才開始重新計時。這也是通用型定時器和斷電保持型定時器的區別。
2、積算型定時器(斷電保持型定時器)T246~T255
顧名思義,斷電保持型定時器是指在定時過程中,當驅動信號斷開,定時器雖然不能繼續計時,但能保持當前計時值,等驅動信號再次恢復,定時器有在原來的計時基礎上繼續計時,直到累積時間達到設定值,對應觸點開始動作。換句話說,就是斷電保持型定時器不會自動復位,所以我們想要它復位時,只能用RST指令進行強制復位。
積算型定時器按時鐘脈沖不同也可以分為兩種。顯然這個的數量比通用型的少很多,可能是它比較少用吧。
積算型定時器的工作原理圖如上圖所示,定時器T250的定時時間為60×100ms=6s,當驅動條件成立,也就是X1接通,定時器T250的線圈得電,開始計時,計到2s時X1斷開,雖然定時器的線圈失電,但它的計時依然保持在2s;直到X1再次接通,定時器在2s的基礎上繼續計時,計到6s后,定時器的常開觸點閉合。又因為定時器不會自動復位,所以,就是X1斷開,定時器的線圈失電,但它的計時保持在6s,常開觸點一直閉合,直到X2觸點閉合,RST指令強制復位定時器,定時器的常開觸點才會斷開。
總的來說就是,通用型定時器只需一個信號就可以控制線圈和觸點的通斷。而積算型定時器必須要兩個信號加上RST指令才能控制其線圈和觸點的通斷,真麻煩,怪不得比較少用。
定時器在梯形圖中非常常用,所以在課程中,李老師舉了好幾個典型的實例,為了節省大家的閱讀時間(并不是為了偷懶哦),我就抽其中一個例子吧。
每一個定時器的定時時間是有限制的,那么,如果我們需要的定時時間超過定時器的最長定時時間,怎么辦呢?簡單,一個不夠,兩個來湊。如下圖所示,一個定時器最多可以累計32767個時鐘脈沖,為了好看,我們就取3萬個吧,然后把幾個定時器進行接力。這時候,從X0閉合到線圈Y0得電,此間的定時時長就為30000×3×100ms=150min,也就是兩個半小時,這也太久了吧。
定時器的各種玩法,我在這就不一一解說啦,大家感興趣的,可以去看看李老師的課程,或者自己編程試試,反正是用軟件編程,也玩不壞?辞辶硕〞r器的真面目,我們繼續來“探索”計數器吧。
二、計數器
說到計數器,我本來想在淘寶上找一些計數器的圖片,然后發現,刷出來的是算盤哈哈,所以,算盤也算是一種計數器吧,我們日常生活中,需要用到計數器的實例好像不多,但在PLC中,計數器的使用也是非常頻繁的。
三菱FX2N PLC的內部計數器分為普通計數器和高速計數器兩類,課程只介紹了普通型的,所以我也只學了普通型,至于高速型的,可能以后在其他課程再學習了。
在繼電控制電路中,計數器作為一種儀表在電路中使用。其基本功能是對輸入開關量信號進行計數。類似的,PLC中的計數器也是對內部編程元件(X、Y、M、S、T、C)的信號進行計數,當然,這些信號從接通到斷開的時長應長過PLC內部的掃描周期。
就普通計數器而言,PLC內部信號計數器也有兩類:16位加計數器和32加/減位計數器,F在,我們就來一一欣賞它們。
1、16位加計數器
16位加計數器又叫16位增量計數器,類似于定時器,也分為通用型和斷電保持型,共200個。至于到底是通用型還是斷電保持型,和定時器一樣,也是通過計數器的編號來區分。而且計數器在梯形圖中也是作為線圈處理,總而言之,計數器和定時器的工作原理差不多,區別只不過是在于:定時器計一般的是時鐘脈沖信號的個數,而計數器計的是編程元件通斷信號(觸點脈沖信號)的個數。
如上圖所示,C0計數器的設定值是K10,也就是說觸點X11通斷10次,計數器的觸點才會動作。類似于定時器,當PLC斷電,通用計數器會自動復位,但和定時器不同的是,定時器的驅動信號斷開,定時器也會復位,但計數器前的觸點斷開,如上圖的X11,計時器會進行計數,而不是復位。
其實,16位加計數器和定時器的差別真的不大,所以,這里也不再贅述啦。
2、32位加/減計數器
32位加/減計數器又稱雙向計數器,它可以從0開始增1計數到設定值,也可以有設定值開始減1到0。和16位的一樣,32位加/減計數器也有通用型和斷電保持型兩類,不過個數比較少,可能也是因為它比較少用吧。
和定時器一樣,計數器的設定值除了可以用十進制數K來表示外,也可以用數據寄存器D的內容來表示,不過這里要注意的是,16位加計數器的設定值用一個D就可以寄存,而32位加/減計數器就需要兩個相鄰的D才行,如D0、D1,且D1為高位,D0為低位。因為D也是16位的,要寄存32位的數,也只能用兩個D。
既然32位加/減計數器可以雙向計數,那怎樣設定它的方向呢?這就要借用特殊輔助繼電器M8×××了。怎么借用?別急,我們馬上看看到底是什么回事。
如上圖所示,該梯形圖中用了計數器C200,所以特殊輔助繼電器就是M8200。也就是說,特殊輔助繼電器的編號要與計數器的編號一一對應,M8后面的編號要和C后面的編號相同。例如你用的計數器是C220,那么對應的特殊輔助繼電器就是M8220,依次類推。
當M8200斷開(為OFF)時,C200作加法計數,當M8200接通(為ON)時,C200作減法計數。類似于開車,M8200就像是倒車擋,一旦掛倒擋,踩了油門,車子就后退,退出倒車擋,車子就恢復為前進。
另外,32位加/減計數器還有不同于16位加計數器的一點是:在16位計數器中,當計數值達到設定值后,觸點動作,就算此后信號脈沖依然在增加,計數器的計數值仍然保持在設定值不變,觸點狀態也保持不變;而在32位加/減計數器中,當計數值達到設定值后,觸點動作,如果此后繼續有信號脈沖輸入,計數器也會繼續計數,但觸點狀態保持不變。
那32位加/減計數器什么時候觸點狀態才會再次變化呢?簡單,我們還是以上圖為例,信號脈沖持續輸入,當計數器C200作加法計數達到設定值3后,其常開觸點閉合,計數器繼續計數3+1+1=5,常開觸點保持閉合,此時接通M8200改變計數器的計數方向,計數器開始從5-1-1=3,計數器再次回到設定值3,其常開觸點動作從而斷開,計數器繼續做減1計數,直到達到計數器的閾值或M8200斷開。
關于計數器的編程實例,李老師在課程中也列舉了幾個例子,可能是我腦子比較笨,我覺得這些例都好難理解啊,所以我還要多看幾遍,在這里我就不班門弄斧了,以免被一些大神取笑。
那么,這次的分享就到這里,各位讀者,下次再會,告辭。
注:本文章內容都是基于三菱FX PLC所寫