陳 康
計(jì)數(shù)器是PLC編程系統(tǒng)中常用的編程元件。在三菱FX2N系列PLC中,計(jì)數(shù)器分為16位加計(jì)數(shù)器和32位加,減計(jì)數(shù)器兩種。32位加,減計(jì)數(shù)器共有35個(gè),編號(hào)為C200~C234,由特殊輔助繼電器M8200~M8234設(shè)定計(jì)數(shù)狀態(tài)。當(dāng)特殊輔助繼電器為ON時(shí),對(duì)應(yīng)的計(jì)數(shù)器為減計(jì)數(shù)狀態(tài),計(jì)數(shù)器線圈接受一次上升沿信號(hào),計(jì)數(shù)器當(dāng)前值減一:反之為加計(jì)數(shù)狀態(tài)。這樣,在編程時(shí)不僅要注意計(jì)數(shù)信號(hào)的產(chǎn)生,還要注意與計(jì)數(shù)器相對(duì)應(yīng)的特殊輔助繼電器的狀態(tài),如何靈活地使用加/減計(jì)數(shù)器進(jìn)行編程是PLC教學(xué)過(guò)程中的難點(diǎn)之一。
我們?cè)诮虒W(xué)中采取循序漸進(jìn)的教學(xué)方法,以貼近生活的實(shí)例激發(fā)學(xué)生學(xué)習(xí)興趣,引導(dǎo)學(xué)生由簡(jiǎn)入繁不斷完善控制要求,逐步完成程序。通過(guò)程序的編寫(xiě)指導(dǎo)學(xué)生初步了解功能指令的基本使用方法并掌握定時(shí)器、計(jì)數(shù)器的綜合應(yīng)用。
一、自動(dòng)售熱飲機(jī)控制程序的控制要求
一是可投入1元硬幣及0.5元硬幣,當(dāng)累計(jì)投幣達(dá)3元時(shí),足額指示燈L1亮,提示可以購(gòu)買(mǎi)熱飲。此時(shí),按下取飲料按鈕,交易成功,開(kāi)始出飲料,同時(shí)足額指示燈閃爍,5秒鐘后,停止出飲料,足額指示燈熄滅,交易過(guò)程結(jié)束,系統(tǒng)恢復(fù)待機(jī)狀態(tài)。
二是若累計(jì)投幣超過(guò)三元,則足額指示燈熄滅,超萄指示燈亮,超額狀態(tài)下,取飲料按鈕無(wú)效,無(wú)法交易。
三是交易完成前,在不足額、足額、超額等狀態(tài)下均可退幣。
四是為調(diào)試程序方便,設(shè)置手動(dòng)復(fù)位鍵。
退幣方式如下:
按1元退幣按鈕一次,1元面額硬幣退幣一次。
長(zhǎng)按1元退幣按鈕3秒后,開(kāi)始1元面額持續(xù)退幣,松于按鈕后,退幣停止。若余額不足1元,則退0.5元。
按0.5元退幣按鈕一次,0.5元面額硬幣退幣一次。
長(zhǎng)按1元退幣按鈕3秒后,開(kāi)始1元面額持續(xù)退幣,松于按鈕后,退幣停止。
*注:若要實(shí)現(xiàn)超額狀態(tài)下的購(gòu)物,需要使用較復(fù)雜的功能指令來(lái)完成,故本程序暫不涉及,歡迎感興趣的讀者聯(lián)系交流。退幣部分只要求編寫(xiě)計(jì)數(shù)環(huán)節(jié)即可,不必考慮輸出問(wèn)題。
二、1/0分配及工作示意圖
三、編程過(guò)程
為簡(jiǎn)化編程過(guò)程,從最基本的控制要求開(kāi)始編寫(xiě),逐步完善程序,直到形成符合控制要求的控制程序。
1、實(shí)現(xiàn)雙面額投幣及足額顯示
使用計(jì)數(shù)器對(duì)投幣口的信號(hào)進(jìn)行計(jì)數(shù),當(dāng)累計(jì)達(dá)到3元時(shí)引發(fā)相應(yīng)的動(dòng)作。由控制要求可知:若只投入0.5元硬幣,則投入6枚硬幣,即計(jì)數(shù)6時(shí),達(dá)到足額;若只投入1元硬幣,則投入3枚硬幣,即計(jì)數(shù)3時(shí)即可達(dá)到足額。題目要求必須能夠?qū)崿F(xiàn)兩種硬幣的混投,所以我們只能使用一個(gè)計(jì)數(shù)器對(duì)兩個(gè)投幣口的信號(hào)進(jìn)行計(jì)數(shù)。我們注意到只要使投入1元硬幣時(shí)產(chǎn)生2次計(jì)數(shù)信號(hào)即可實(shí)現(xiàn)足額時(shí)計(jì)數(shù)6,剛好與0.5元面額投幣相一致,所以,投幣部分程序如圖3。
圖3中,1元投幣口的上升沿與下降沿分別產(chǎn)生一個(gè)計(jì)數(shù)信號(hào),即投幣一次計(jì)數(shù)2;0.5元投幣口每次投幣只產(chǎn)生一個(gè)計(jì)數(shù)信號(hào),即投幣一次計(jì)數(shù)1,無(wú)論以何種次序投幣,當(dāng)計(jì)數(shù)6時(shí)即表示投幣足額。另,一次投幣實(shí)現(xiàn)兩次計(jì)數(shù)也可用其他方式(如利用定時(shí)器及脈沖信號(hào))實(shí)現(xiàn)(見(jiàn)圖4)。
足額時(shí),足額指示燈顯示可通過(guò)下述程序?qū)崿F(xiàn):
足額時(shí),計(jì)數(shù)器C200當(dāng)前值=預(yù)設(shè)值,C200觸點(diǎn)動(dòng)作,足額顯示Y2得電。
2、購(gòu)買(mǎi)過(guò)程的程序?qū)崿F(xiàn)
足額狀態(tài)下方可購(gòu)買(mǎi),購(gòu)買(mǎi)過(guò)程中,足額指示燈閃爍,交易完成后,計(jì)數(shù)器復(fù)位,系統(tǒng)恢復(fù)待機(jī)狀態(tài)。程序如圖5。
足額(Y2)得電狀態(tài)下,按下購(gòu)買(mǎi)按鈕(X22),Y3得電,自鎖,開(kāi)始購(gòu)買(mǎi)。同時(shí)利用Y3常開(kāi)觸點(diǎn)實(shí)現(xiàn)以下控制(1)對(duì)C200進(jìn)行復(fù)位。(2)使定時(shí)器T3線圈得電開(kāi)始計(jì)時(shí)(3)通過(guò)M8013(1秒時(shí)鐘脈沖)控制Y2閃爍。5秒鐘后,T3常閉觸電動(dòng)作,Y3線圈失電,交易結(jié)束,系統(tǒng)恢復(fù)待機(jī)狀態(tài)。
3、超額的程序?qū)崿F(xiàn)
足額后繼續(xù)投幣將進(jìn)入超額狀態(tài),超額狀態(tài)下,足額指示燈熄滅,超額指示燈亮,購(gòu)買(mǎi)按鈕失效。程序如圖6所示。
使用比較指令DCMP對(duì)C200當(dāng)前值和常數(shù)K6進(jìn)行比較,比較結(jié)果用M6~M8表示。當(dāng)C200)K6時(shí),M6得電,M6常開(kāi)觸點(diǎn)閉合,Y4線圈得電,超額指示燈亮,同時(shí)Y4常閉觸點(diǎn)斷開(kāi),Y2失電。
4、單枚退幣的程序?qū)崿F(xiàn)
與投幣類似,要求退1元面額硬幣時(shí)計(jì)數(shù)器當(dāng)前值減2,退0.5元面額硬幣時(shí)計(jì)數(shù)器當(dāng)前值減1,計(jì)數(shù)器當(dāng)前值減為0后,退幣鍵失效。程序如圖7所示。
使用比較指令DCMP對(duì)C200當(dāng)前值和常數(shù)KO進(jìn)行比較,比較結(jié)果用MO表示。當(dāng)C200>KO時(shí)MO得電,常開(kāi)觸點(diǎn)閉合,保證減計(jì)數(shù)信號(hào)可傳送到C200線圈。
特殊輔助繼電器M8200使用X24、X25、M21的常開(kāi)觸點(diǎn)控制,保證退幣時(shí)M8200處于得電狀態(tài),計(jì)數(shù)器C200減計(jì)數(shù)。M21常開(kāi)觸點(diǎn)是為了保證M22下降沿時(shí)仍能減計(jì)數(shù)。
5、連續(xù)退幣的程序?qū)崿F(xiàn)
對(duì)上述單枚退幣程序稍作修改即可得連續(xù)退幣程序如圖8所示。
按下退幣按鈕超過(guò)3秒鐘,則開(kāi)始自動(dòng)退幣,松開(kāi)按鈕或余額為0時(shí),停止退幣。
以上分步對(duì)控制要求進(jìn)行了程序?qū)崿F(xiàn),整合后完整程序如圖9所示。
本例雖與實(shí)際購(gòu)物機(jī)控制功能仍有差距,但較為完善的表現(xiàn)了計(jì)數(shù)器指令與其他指令的綜合應(yīng)用,有助于學(xué)生深入理解本課題內(nèi)容。
(作者單位:山東省淄博市技術(shù)學(xué)院)