

1.概述
隊列是來自數據結構的一個概念,即數據的處理是按照先進先出(FIFO)原則執行,在PLC的控製程序中有時也會用這種方法。
zaiyitiaoshengchanxianshangdekelizhuangwuliaoshusongshebeizhong,yousiluwuliaoshusongguanxian,danchouquwuliaodeluocibengzhiyouyitai,yincizairenyishikezhinengyouyitiaowuliaoshusongguanxiangongzuo,ruguozaizhetiaoguanxiangongzuoshi,qitawuliaoguanxianyougongzuoqingqiu,zhinengpaiduidengdai,zaiyoudengdaizhuangkuangfashengshidePLC程序的控製,是一個典型的隊列應用。
2 在Twido係列PLC中的實現方法
在Twido PLC中有現成的寄存器功能塊可以配置成隊列(FIFO)工作方式,最初也正是用這種方式編寫的PLC的控製程序,程序的幾處關鍵請看下麵幾個程序段圖。


在程序調試階段,設備工作一切正常。但設備在實際運行中,總是會在1~3天內發生1到2個物料輸送管線的請求不被執行而始終處於等待狀態,隻有斷電後重新啟動設備才能恢複正常工作。隨後又仔細分析了Twido PLC的寄存器(隊列模式)功(gong)能(neng)塊(kuai),發(fa)現(xian)使(shi)用(yong)它(ta)時(shi)必(bi)須(xu)保(bao)證(zheng)四(si)路(lu)物(wu)料(liao)輸(shu)送(song)管(guan)線(xian)的(de)請(qing)求(qiu)在(zai)任(ren)意(yi)時(shi)刻(ke)不(bu)能(neng)同(tong)時(shi)有(you)兩(liang)個(ge)請(qing)求(qiu)發(fa)生(sheng),否(fou)則(ze)就(jiu)會(hui)出(chu)現(xian)上(shang)麵(mian)的(de)問(wen)題(ti),而(er)實(shi)際(ji)工(gong)作(zuo)中(zhong),兩(liang)個(ge)或(huo)兩(liang)個(ge)以(yi)上(shang)的(de)請(qing)求(qiu)同(tong)時(shi)(PLC的一個掃描周期,大約在10ms之內)發生的機率確實存在,正是這種不定期發生的同時出現的請求,使設備不定期地出現物料輸送管線的不正常工作。
找到原因後,在改寫PLC程序時發現,如果加上處理同時發生的幾個請求的程序,使得使用Twido所提供的寄存器(隊列模式)功能塊的程序可能會更加複雜,於是決定不使用這個功能,用常規編程來完成控製要求。
在(zai)程(cheng)序(xu)需(xu)要(yao)重(zhong)點(dian)考(kao)慮(lv)的(de)就(jiu)是(shi)這(zhe)種(zhong)多(duo)路(lu)物(wu)料(liao)輸(shu)送(song)管(guan)線(xian)同(tong)時(shi)發(fa)生(sheng)請(qing)求(qiu)的(de)情(qing)況(kuang)。在(zai)程(cheng)序(xu)中(zhong)將(jiang)每(mei)一(yi)個(ge)請(qing)求(qiu)用(yong)自(zi)鎖(suo)回(hui)路(lu)保(bao)持(chi)住(zhu),然(ran)後(hou)將(jiang)鎖(suo)定(ding)的(de)信(xin)號(hao)驅(qu)動(dong)一(yi)個(ge)定(ding)時(shi)器(qi),對(dui)請(qing)求(qiu)的(de)執(zhi)行(xing)是(shi)通(tong)過(guo)比(bi)較(jiao)幾(ji)個(ge)定(ding)時(shi)器(qi)的(de)當(dang)前(qian)值(zhi)大(da)小(xiao)來(lai)決(jue)定(ding)那(na)一(yi)路(lu)物(wu)料(liao)輸(shu)送(song)管(guan)線(xian)動(dong)作(zuo)。
在程序中編寫下麵四個類似的程序段:

實現請求的判斷:

請求處理:

在請求處理程序段中已經包含如果有同時發生的請求時,按照1->2->3->4的默認動作順序來決定優先順序。
在使用改進後隊列處理程序後,該設備運行約兩年,一直工作正常,再沒出現過某路物料輸送管線的請求不被執行的情況。
在這個案例中,說明有些情況下,使用PLC所提供的功能並不一定是最佳的解決方式,此時,不妨考慮一下換一個實現思路的可能性。