- 編程工作總結 推薦度:
- 內控制度 推薦度:
- 成本控制方案 推薦度:
- 滅鼠最佳方法 推薦度:
- 內部控制自我評價(jià) 推薦度:
- 相關(guān)推薦
現代工業(yè)控制中的PLC編程方法論文
摘要:目前隨著(zhù)工業(yè)控制系統復雜性不斷提高以及自動(dòng)化不斷加強,以往面向過(guò)程的PLC編程方法變得愈加困難。面向過(guò)程的編程(POP)方法編程效率低、可維護性差。通過(guò)分析現代主流計算機編程方法,提出了一種PLC編程方法:將程序分為三個(gè)層次,以面向對象的思想對外部設備或復用性功能進(jìn)行封裝,以面向過(guò)程的思想實(shí)現動(dòng)作流程。并以汽車(chē)微電機壓裝控制系統為例進(jìn)行說(shuō)明。
關(guān)鍵詞:面向過(guò)程,面向對象,PLC,編程方法
現代工業(yè)自動(dòng)化領(lǐng)域大多采用PLC作為運動(dòng)控制器,傳統的PLC編程嚴格按照時(shí)序要求從頭至尾編寫(xiě)程序。對于簡(jiǎn)單的控制過(guò)程,其程序步驟較少,傳統的PLC編程方法能夠滿(mǎn)足要求。而復雜的控制系統,程序步驟較多,容易混亂,大大降低了編程效率,并且程序擴展性能非常差。為了提高編程效率,降低后期維護成本,尋找出一種新的PLC編程方法是非常必要的。
1理論基礎
目前存在兩種主流的編程思維:面向過(guò)程與面向對象,這兩種編程思想都有其各自的特點(diǎn)與性質(zhì)。1.1面向過(guò)程面向過(guò)程(ProcedureOriented,PO)是一種以過(guò)程為中心,以什么正在發(fā)生為主要目標進(jìn)行編程的編程思想。面向過(guò)程的程序設計(POP)注重的是算法設計,突出數據結構。NicklausWirth對此提出了著(zhù)名的公式來(lái)表示程序的實(shí)質(zhì):程序=數據結構+算法面向過(guò)程的程序設計關(guān)注的是解決問(wèn)題的步驟,先把軟件系統分解成多個(gè)模塊,然后逐步細化,完成整個(gè)軟件系統。各模塊之間存在相互調用和信息傳遞。隨著(zhù)軟件系統規模擴大和性能要求提高,面向過(guò)程編程的缺陷逐漸明顯。軟件系統規模的擴大,使得模塊的分解難度加大,模塊之間的聯(lián)系也更加復雜,軟件的可靠性難以提高,可維護性差。1.2面向對象面向對象(ObjectOriented,OO)是在處理問(wèn)題時(shí),從該問(wèn)題所存在的事物本身出發(fā),以類(lèi)及對象作為基本構造單元,逐步認識事物的屬性和行為特征。面向對象的程序設計(OOP)需要盡力描述問(wèn)題的結構,從而較好地解決客觀(guān)世界描述的復雜性問(wèn)題?蓪⒊绦虮硎緸椋撼绦颍较ⅲ珜ο箢(lèi)對象類(lèi)=數據結構+算法面向對象的編程方法有利于大型軟件的開(kāi)發(fā);對象屬性和方法封裝避免了數據隨意訪(fǎng)問(wèn),保證數據安全;類(lèi)與類(lèi)之間的繼承關(guān)系,最大程度實(shí)現了代碼的重用;繼承關(guān)系下的多態(tài)性增強了程序的靈活性和擴展性[1]。然而,由于類(lèi)的大量加載會(huì )犧牲系統性能,從而降低系統運行效率。
2PLC編程思想
現代工業(yè)生產(chǎn)的控制系統經(jīng)常要涉及到多個(gè)外部設備,設備的動(dòng)作往往有嚴格的時(shí)序要求。長(cháng)久以來(lái),編程前先按要求制作動(dòng)作流程圖,再按動(dòng)作流程圖編寫(xiě)程序的框架,然后以流程框架為中心添加約束與報警信息,其編程思想是面向過(guò)程的.[2]。數據和數據處理過(guò)程代碼是統一的,可重用代碼少,且當代碼量大時(shí),維護數據和代碼非常困難。面向過(guò)程的PLC編程方法的缺點(diǎn)有:割裂被控對象在PLC程序與現實(shí)中的聯(lián)系,內部邏輯與被控對象不明確,程序的后期維護困難;程序的內部邏輯關(guān)系非常復雜,控制流程不確,容易出錯;輸入與輸出都缺乏整體性,程序員往往孤立考慮各輸入點(diǎn)或輸出點(diǎn)的邏輯和控制[3]。針對傳統PLC編程的缺點(diǎn),結合現代計算機主流編程思維,提出一種新的PLC編程方法:以分層思想劃分程序結構,以面向對象的思想對外部設備或復用性功能進(jìn)行封裝,以面向過(guò)程的思想實(shí)現動(dòng)作流程。其原理是:將程序過(guò)程按實(shí)際劃為三個(gè)層次,對每個(gè)層次中可抽象描述的對象進(jìn)行類(lèi)封裝;并采用上層調用下層,高級調用低級的原則,進(jìn)行自下而上的PLC程序設計。三個(gè)層次分別為:時(shí)序層、外設層、輸出層,其中輸出層是底層;外設層是中間處理與轉換層;時(shí)序層是最靠近設備操作的用戶(hù)層。輸出層是對PLC的輸出點(diǎn)進(jìn)行內部擴展。不管PLC程序如何編寫(xiě),最終都要通過(guò)控制PLC輸出來(lái)達到設備運行目的。為了增強程序的靈活性和擴展性,可將PLC的每個(gè)輸出點(diǎn)當作對象,在程序運行過(guò)程中,輸出對象在不同的工作階段有不同的觸發(fā)條件。將數字輸出點(diǎn)的觸發(fā)條件轉化為內部繼電器,模擬輸出的觸發(fā)條件轉換為內部繼電器與數據。外設層是對設備的封裝、處理,是外部設備和外部設備功能封裝模塊的集合。復雜的PLC控制系統包含了多個(gè)外部設備,并且有些外部設備不止一個(gè)。以PLC為對象,外部設備可分為輸入設備、輸出設備與交互設備。輸入設備是系統的眼睛,實(shí)時(shí)監控設備狀態(tài)。輸出設備是系統的動(dòng)作執行設備,單個(gè)輸出設備可以有一個(gè)或多個(gè)動(dòng)作狀態(tài)。交互設備是與PLC有數據互傳的設備,可以是上位機設備或其他的通信設備。用面向對象的思想,以設備整體或設備動(dòng)作狀態(tài)為對象進(jìn)行封裝?梢源蟠鬁p少了程序的重復性,并且有助于外圍設備的擴展與功能的增加。時(shí)序層是PLC程序的主體,是各種功能動(dòng)作流程的集合。設備運行時(shí),動(dòng)作過(guò)程必須嚴格地按時(shí)間順序執行,而程序中時(shí)序過(guò)程實(shí)現必須面向過(guò)程。設備每一種現實(shí)功能都對應一個(gè)動(dòng)作過(guò)程,與設備功能對應的動(dòng)作過(guò)程屬于高級動(dòng)作流程。高級動(dòng)作流程可以重復調用低級的動(dòng)作流程,低級的動(dòng)作流程是復用性比較高的動(dòng)作流程。復用性動(dòng)作流程相對高級動(dòng)作流程步驟較少,可以將其以整體作為考慮對象,封裝成功能模塊,供高級動(dòng)作流程調用。高級動(dòng)作流程所對應現實(shí)設備功能主要有:?jiǎn)?dòng)、復位與保護等功能[4]。啟動(dòng)功能可以通過(guò)人機交互界面的設置不同而擁有不同的設備功能;復位功能是按一定的時(shí)間順序恢復預定的初始狀態(tài);保護功能是通過(guò)監控輸入設備的信號判斷設備是否故障,并做出相應的處理。對于由輸入信號判斷不出故障可以由外部人工觸發(fā),并處理。時(shí)序層編寫(xiě)功能時(shí)要求先設計保護功能,再編寫(xiě)其它的動(dòng)作功能,以保護人身與設備安全。
3實(shí)例
以汽車(chē)微電機壓裝控制系統為例,闡述本文提出的PLC編程方法。圖2為壓裝控制系統原理圖。該系統主要由TPC7062TX觸摸屏、主控單元FPG-C32T2H、模擬量單元FP0-A21-F、位置控制單元FPG-PP21、伺服電機、位移傳感器等組成。該系統中控制最主要的輸出是控制伺服電機的脈沖輸出,脈沖輸出可直接以電機運行狀態(tài)為對象進(jìn)行封裝,其余輸出在程序中不需要大量重復使用,可以直接單獨調用。圖3為單次壓裝的流程,前三個(gè)過(guò)程為同向運動(dòng),為了提高工作效率,三個(gè)過(guò)程之間不能有停頓,“P點(diǎn)控制”可以達到此要求;慢速壓裝和快速退回運動(dòng)方向相反,需要停頓,第三個(gè)過(guò)程完成后,直接退回到原點(diǎn),快速退回功能用“E點(diǎn)控制”可以實(shí)現。除此外電機常用的控制還有“JOG運行(點(diǎn)動(dòng)控制)”。通過(guò)壓裝流程可知該系統“P點(diǎn)控制”為三段控制,以“P點(diǎn)控制”為對象時(shí),其“消息”由一個(gè)觸發(fā)條件、三個(gè)位置、三個(gè)速度組成;以“E點(diǎn)控制”為對象時(shí),其“消息”由一個(gè)觸發(fā)條件、一個(gè)位置、一個(gè)速度組成;以“JOG運行”為對象時(shí),其“消息”由一個(gè)觸發(fā)條件、一個(gè)旋轉方向、一個(gè)速度組成。為了適應于PLC動(dòng)作過(guò)程的時(shí)序性特點(diǎn),為每個(gè)對象添加一個(gè)單脈沖輸出信號。當對象動(dòng)作執行完成時(shí),發(fā)出一個(gè)單脈沖信號,可以當做下一步動(dòng)作的觸發(fā)條件。圖4為以FPWINGR為PLC編程軟件時(shí)的“E點(diǎn)控制”梯形圖。FPWINGR編程軟件不支持模塊封裝,但是不影響面向對象思維的使用。圖中R20為“E點(diǎn)控制”的觸發(fā)條件;雙字寄存器DT412的數據為“E點(diǎn)控制”的目標脈沖頻率(速度);雙字寄存器DT414的數據為“E點(diǎn)控制”的目標位置。對象封裝的目的是避免數據隨意訪(fǎng)問(wèn),可以繼承!癊點(diǎn)控制”中的電機屬性啟動(dòng)速度(500Hz)、加減速時(shí)間(100ms)、正反方向的定義是以參數的形式固定在其中。當調用該對象時(shí),默認的就繼承了其屬性。只需擴展多個(gè)內部繼電器觸發(fā)R20,就可用被多次調用繼承,即多態(tài)性。同理,可設計出“P點(diǎn)控制”與“JOG運行”的梯形圖。輸出層與外設層是時(shí)序層的基礎,時(shí)序層按一定的時(shí)間順序組合輸出層與外設層,并輔以必要的數據處理就形成了所需的功能。壓裝主流程主要有“P點(diǎn)控制”與“E點(diǎn)控制”模塊,加上時(shí)間延時(shí)、計數處理與力值峰值功能就形成了一個(gè)壓裝的大致功能,經(jīng)過(guò)后期的調試與小范圍的修改就完成了一個(gè)功能的編寫(xiě)。依此方法編寫(xiě)各種所需功能,完成整個(gè)程序后,整體調試功能。后期維護需要修改某部分功能時(shí),可以快速定位到要修改的層,再找到相應的模塊;增加功能時(shí),可以迅速查到已有硬件的封裝模塊,直接在時(shí)序層增加要求的功能時(shí)序。
4結束語(yǔ)
通過(guò)分析與實(shí)際驗證,用本文所提編程方法編寫(xiě)PLC程序,程序邏輯更清晰,層次更分明,運行更穩定。同時(shí)為程序調試、后期程序維護、程序功能擴展提供更有效而廣闊的空間。該方法適用于復雜控制系統,也適用于簡(jiǎn)單控制系統,使復雜的控制系統集體設計時(shí)分工更加明確,性能更穩定。
參考文獻
。1]徐卓峰,王學(xué)軍.面向過(guò)程程序設計語(yǔ)言與面向對象程序設計語(yǔ)言及其特征比較[J].中州大學(xué)學(xué)報,1997(1):64-67
。2]高云.計算機編程思想的發(fā)展研究[J].軟件導刊,2012,11(11):5-6
。3]張海藩.軟件工程導論[M].5版.北京:清華大學(xué)出版社,2008(2):203-211
。4]常海.基于OOP的PLC編程方法探討[J].無(wú)線(xiàn)互聯(lián)科技,2014(2):75-75
【現代工業(yè)控制中的PLC編程方法論文】相關(guān)文章:
板坯連鑄系統中PLC控制功能與技術(shù)實(shí)現論文05-21
電氣控制與plc技術(shù)實(shí)踐教學(xué)探究論文01-26
機床設計中的現代工業(yè)設計論文11-17
電器及PLC控制教學(xué)總結10-22
應用PLC控制組合機床動(dòng)力實(shí)驗臺論文06-27