小弟一月份接到一個設(shè)備改造任務(wù),由我負(fù)責(zé)PLC編程。我原是學(xué)計算機的,因為此前成功改進(jìn)了一臺測試設(shè)備的測試程序(VB開發(fā)的),所以領(lǐng)導(dǎo)就這樣安排了,理由是兩者都是編程(不是我開玩笑,當(dāng)時差點兒“暈倒”
,再三推辭,領(lǐng)導(dǎo)當(dāng)時拿出了“禮賢下士”的姿態(tài),聲稱就當(dāng)學(xué)習(xí)學(xué)習(xí),沒有什么事情是百分百成功的,沒辦法只能接受了
)。就這樣開始了PLC的學(xué)習(xí)之路,從論壇上下了一些學(xué)習(xí)資料、到圖書館借了兩本書(借書之前就搞清楚了一些必要的因素如先把PLC品牌定好,這樣效率高多了)。
整個控制系統(tǒng)不算復(fù)雜,關(guān)鍵是控制7個氣缸的動作,出錯后要能夠定位到點,考慮到輸入按鈕比較多,輸出部件也多(負(fù)責(zé)設(shè)計的老工程師原先都是基于繼電器線路考慮的),因此前兩天我主動請戰(zhàn)提出用觸摸屏(算是“初生牛犢不怕虎”還是“無知者無畏”?),這下控制就復(fù)雜了一些(原來自動部分由PLC控制,手動則由繼電器線路控制,
后來我了解到,之所以要用PLC是因為全部控制使用繼電器線路比較復(fù)雜,器件較多,且今后還要增加不同型號的產(chǎn)品,成本會超出計劃,尤其是時間繼電器價格不便宜 ,所以才提出這樣的設(shè)計框架,“暈”啊
)。
剛開始編PLC時,老工程師帶的年輕助工說控制線路設(shè)計好了,還用Festo的工具軟件模擬了一下效果,當(dāng)時以為這事簡單了,只要把繼電器控制線路“翻譯”成PLC梯形圖就行了,但隨著對加工過程控制的了解,發(fā)現(xiàn)這樣簡單的“翻譯”,先不說極大的浪費了PLC資源,就連一些必要的控制都無法完成,而另一方面“形勢”變得急轉(zhuǎn)而下,領(lǐng)導(dǎo)要求必須在3本月底完成改造任務(wù)。認(rèn)識到問題的復(fù)雜性和“嚴(yán)重性”,我不得不放棄做一名翻譯的理想,毅然決定轉(zhuǎn)回來“吃老本”,按照加工過程控制的要求用計算機編程的思維方式來重新構(gòu)思整個控制系統(tǒng)
,所以我現(xiàn)在的這個程序中都是大量的條件判斷、MOV、RST及WAND、WXOR這類指令(感覺有點兒匯編的味道,仔細(xì)想想,PLC指令系統(tǒng)就可以認(rèn)為是一套專用的宏匯編系統(tǒng))。
這段時間以來,我覺得用計算機編程的思維方式處理PLC編程,最容易出錯的地方就是由PLC的“掃描工作方式”引發(fā)的問題,特別是FEND之前的“主程序”段,一定要時刻注意條件(輸入變化、軟元件變化、“保持型”軟元件)動態(tài)變化后程序的跳轉(zhuǎn)方向。
最后,有一個問題想請有經(jīng)驗的達(dá)人給予指導(dǎo),就是如何考慮“急!惫δ埽喊凑誔LC的“掃描工作方式”,在如下的梯形圖1中,當(dāng)“X000急停按鈕”接通時,對動作輸出部分可以做到“即時”響應(yīng),即可以精確的監(jiān)測到究竟是“M999”還是“M998”完成了“急!惫δ,而圖2中,如果在執(zhí)行到第1023步之后的時刻才發(fā)現(xiàn)需要終止下面的輸出動作,這時按下“X000急停按鈕”,想要終止第1049步的“Y016”輸出(假設(shè)此時滿足D21=2、D51=2),似乎不能完成,必須要等到下一個掃描周期才能接通“M999”斷開第1049步,雖然PLC的掃描是以us計的,但這樣的“不精確”,就會產(chǎn)生“滯后”隱患了。 小弟第一次編PLC,衷心期望有經(jīng)驗的達(dá)人給予指點,謝謝!
[ 此帖被jinsinfo在2010-03-03 10:56重新編輯 ]