順序步驟程序設(shè)計(jì),是將一長(zhǎng)串流程分解為一個(gè)個(gè)步驟,每個(gè)步驟單獨(dú)完成一項(xiàng)邏輯運(yùn)算和動(dòng)作。在每個(gè)步驟上,都設(shè)置一個(gè)人為的標(biāo)志位,用以明確表示當(dāng)前運(yùn)行的步驟,并通過(guò)此標(biāo)志位限定設(shè)備的輸出,達(dá)到使整個(gè)系統(tǒng)按照步驟嚴(yán)格運(yùn)行的目的;并使得整個(gè)程序的條理清晰,各步驟邏輯簡(jiǎn)潔明確,有利于日后的維護(hù)和修改。
如下圖2為生產(chǎn)線上“左一”單向移載傳送帶的編程示例:
?
如圖2中所示,“左一”單向移載傳送帶的流程劃分為五個(gè)步驟,分別以標(biāo)志位M100、M101、M102、M103、M106來(lái)表示。在運(yùn)行中,M100~M106順序地被置位,在每個(gè)步驟中,相應(yīng)的操作運(yùn)算由相應(yīng)的標(biāo)志位來(lái)開通,使得設(shè)備運(yùn)行得以按順序進(jìn)行,程序脈絡(luò)十分清晰。
例如第1行,當(dāng)X47置位,表明工裝臺(tái)進(jìn)入了圖1中“左一”的B2位置,當(dāng)A2處無(wú)工裝板積壓,則M100就被置位并自保持,“左一”開始進(jìn)行這塊工裝臺(tái)的移載操作(步驟M100)。到了第2行,Y21會(huì)因?yàn)镸100置位而復(fù)位,使該Y21對(duì)應(yīng)的阻板氣缸下降,將這塊工裝臺(tái)放行,隨B傳送帶進(jìn)入“左一”傳送帶上。第3、4行,當(dāng)工裝臺(tái)進(jìn)入“左一”完畢(此時(shí)觸動(dòng)了X44行程開關(guān)),延時(shí)1秒(T1時(shí)間繼電器),然后就根據(jù)條件將M101置位并自保持,程序進(jìn)入步驟M101??梢?,程序?qū)?huì)按順序進(jìn)行,直到工裝板被準(zhǔn)確送出“左一”傳送帶為止。
到了步驟M106,M106短暫地置位后,將在下一個(gè)掃描周期內(nèi)復(fù)位M100和T0,使得M100~103全部步驟都復(fù)位,系統(tǒng)就開始等待下一次移載操作。
(2)狀態(tài)標(biāo)志替代方法
在“左二”和“右二”雙向移載傳送帶的操作時(shí),有可能會(huì)出現(xiàn)A線和B線兩塊工裝臺(tái)同時(shí)到達(dá)的現(xiàn)象。在這種情況下,“左二”、“右二”如何處理這個(gè)矛盾?哪個(gè)工裝臺(tái)會(huì)先運(yùn)行?這里,就有個(gè)優(yōu)先狀態(tài)標(biāo)志的設(shè)置和判斷。如果兩邊各用一個(gè)行程開關(guān)來(lái)置位相應(yīng)標(biāo)志位,程序并不好寫,因?yàn)橹梦缓蟮臉?biāo)志位沒(méi)有“優(yōu)先”的特征,都是“1”,還是會(huì)造成混亂。如果用“輸入端中斷”來(lái)編程,則會(huì)因?yàn)楦鞣N原因(如輸入誤動(dòng)作)導(dǎo)致系統(tǒng)的錯(cuò)誤操作——在這種生產(chǎn)線上是很容易出現(xiàn)輸入的誤動(dòng)作的。
在這里,程序設(shè)計(jì)者用了一個(gè)狀態(tài)標(biāo)志替代方法,用兩個(gè)累加數(shù)的大小來(lái)代表工裝臺(tái),如下圖3所示。
?
如圖3所示,程序中采用了D100和D102兩個(gè)32位長(zhǎng)整型寄存器用來(lái)做累加比較。當(dāng)工裝臺(tái)同時(shí)進(jìn)入時(shí)圖1中的A3、B3時(shí)(這個(gè)“同時(shí)”還是有些微差別的),如圖3所示的程序,M200和M250都置位,A和B兩邊都進(jìn)入了移載程序的第一步,第4、5行就是對(duì)D100和D102進(jìn)行累加,則當(dāng)運(yùn)行到第6行時(shí),D100和D102的差別比較就會(huì)出來(lái)了。在D100大于和等于D102時(shí),M120被置位;在D100小于D102時(shí),M121被置位。這樣,通過(guò)累加和比較,會(huì)得出一個(gè)優(yōu)先的判斷并固定用兩個(gè)標(biāo)志位M120及M121來(lái)表示(實(shí)際上,這樣編程就能得到“先到者優(yōu)先”的結(jié)果,現(xiàn)場(chǎng)所謂工裝臺(tái)“同時(shí)”達(dá)到對(duì)PLC來(lái)說(shuō)還是非同時(shí)的)。隨后的編程則將兩邊的步驟可以分開來(lái)寫,并且還能相互添加一些聯(lián)鎖,保證兩邊的步驟不互相干擾。
