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