基于文檔控制的PLC程序開發方法及實踐研究
劉冰1王素娟2
(1.中國電子系統工程第四建設有限公司,北京 100070;2.中國建筑設計研究院有限公司,北京 100044)
摘要:首先講述了一種基于文檔控制的PLC程序的設計方法;然后以某型成型機程序為例,依次介紹了這種設計方法流程的各個環節,展示了其實際應用方式;之后分析了多人開發情況下的應用方式;最后總結了這種設計方法的特點。這種設計方法對大型PLC程序的協作開發和保障設備安全都有積極意義。
關鍵詞:PLC;文檔;程序設計;流程
收稿日期:2015-07-16
作者簡介:劉冰(1981—),男,河北人,工程師,從事自動化生產廠房類建筑電氣方向的研究、設計及實施工作。
1開發方法概述
目前隨著我國經濟的不斷發展,國內機械的自動化水平也在不斷提高。本文以三菱Q25H CPU控制的成型機為例,講述了開發大型PLC程序的一種方法。機械生產設備的任何意外動作都有可能造成人身傷害或生產事故,因此必須將PLC程序可靠性放在首位。同時,一般機械設備服役周期往往在10年以上,在服役年限中,根據工藝變化,調整PLC程序邏輯不可避免。在實際生產中,往往會在設備投入運行后增加多個功能模塊。大型PLC程序功能眾多,結構復雜,而PLC與計算機不同,各種資源(寄存器、定時器等)非常有限,各個功能模塊之間信息交互同時非常頻繁,如何建立一個統一架構,使得資源調配有序、合理,信息傳遞通暢,并降低編寫大型程序的難度,同時盡可能減小程序變更時對已經存在的模塊可能會互相產生的意外影響,這是需要解決的問題。通過嚴格的設計文件,界定PLC資源的分配和每個子程序用途,預先規定可預期的程序變更的語句寫法,同時對非預期的程序加以界定,確保新編寫模塊對設備動作影響在可控范圍之內,這樣就能使程序變更更為安全高效,不需進行繁瑣測試甚至測試性生產來確定程序運行是否沒有誤動作。此種方法通常稱之為文檔式開發方法,適用于漸進式設計,可以功能不斷增加而框架不變。程序員編寫程序時,遵循已有架構,專心編寫要完成的功能即可,這就大大降低了大型程序的編寫難度。
2確定功能需求和硬件框架
輪胎成型機(簡稱TBM)是輪胎制造生產過程中,將半成品部件(如胎面、胎側、胎冠、型膠、胎體等)按工藝要求組合成成型輪胎胎胚的一種輪胎生產專用設備。成型機電氣硬件系統由兩個Q25H PLC組成,兩個PLC分別負責成型機一段和二段。以控制一段的電氣硬件為對象,則PLC系統包含CC-link總線遠程I/O、Q173運動CPU、Q173所控制的運動總線SSCNET,總線連接至各個伺服模塊。以控制二段的電氣硬件為對象,則PLC系統包含CC-link總線遠程I/O、Q173運動CPU、Q173所控制的運動總線SSCNET,總線連接至各個伺服模塊。
為了完成成型機的控制,現在確定共有以下功能模塊:(1) 網絡連接;(2) 觸摸屏顯示及控制;(3) 成型輪胎尺寸改變;(4) 輸出控制;(5) 可選設備控制;(6) 成型輪胎。
根據已經確定的硬件架構和功能劃分,就可以開始著手進行程序編寫工作。
3確定架構及資源劃分
首先,需要畫出大架構圖。在整個架構中,公共區PLC寄存器、定時器和鎖存器是對所有模塊開放讀取權限的,數據交換通過寫入和讀取寄存器、定時器和鎖存器的狀態來進行。例如:定義M0為PLC狀態,M0為ON則表示PLC狀態良好,OFF則表示PLC狀態異常。此M0為LAD01可寫,其余模塊可讀。則新編寫或者任意模塊在需要加入PLC狀態條件時,就可以直接在梯形圖中加入此條件。這樣,對于一些常用的公共狀態(是否急停、PLC狀態、網絡狀態),在模塊調用時就無須專門定義。在進行新模塊的編寫時,大量的、正確的公共狀態可以隨時調用,極大地節省了編寫和測試接口的時間。
3.1PLC資源劃分及文檔編寫
首先,我們需要對PLC資源進行總體的劃分。PLC資源包括寄存器(M點)、定時器(T點)、鎖存器(L點)等。以最常用的M點為例,劃分為梯形圖用、設備位置狀態、觸摸屏用……最后分別編寫各個程序塊的資源清單如表1所示。

表1 資源用途劃分表
同樣,如果PLC還有其他資源的話,也進行同樣的劃分。之后,就根據此次劃分結果進行下一步劃分,如表2所示。

表2 程序資源分配表
這樣,就完成了對資源到每一模塊的劃分。
注意:這些劃分的資源為各個程序模塊的私有資源,別的模塊不可讀取、使用,這樣就杜絕了新舊程序塊之間的干擾。
3.2公用數據區權限劃分及文檔編寫
公有數據區權限劃分應當遵循一個原則,一個中間繼電器點應當只有一個模塊有寫入權限。違背此原則會導致嚴重后果,千萬注意!公用數據區通常使用非鎖存寄存器,以確保在任何狀態異常后,通過關閉PLC電源然后重啟,公用數據區數據即可恢復正常。這對于程序可靠性來說意義重大。
權限劃分方法如下:首先,確認公用數據區。在此例中,公用數據區為M0~M300。然后,確認每個數據點意義及權限所屬,以M0為例,如表3所示。

表3 公共資源權限表
然后做出相應的程序模塊對應表,如表4所示。

表4 公共資源寫入表
這樣就完成了公有數據區權限的劃分。在多人同時編寫程序時,每個人手中應當有同一版本的此公用數據表。
3.3輸出及驅動權限劃分
輸出和驅動作為程序輸出的底層,可能接收多個程序模塊的指令。最常見的情況為,電機會接收手動模塊發來的指令和自動模塊發來的指令。這在程序復雜時就會導致混亂。為了解決此問題,引入了輸出模塊專門進行處理。輸出模塊對各個模塊的指令進行判別,然后進行輸出。在引入輸出模塊的同時,對于向輸出模塊輸出指令的程序模塊也應當是指定的。
舉例:規定輸出Y12 環移動(右)由LAD10輸入模塊控制,由LAD04、LAD13程序給LAD10發出指令,指令位為M505、M613,其他模塊沒有權限,則如表5所示。

表5 輸出模塊表
將所有輸出列入后形成文檔,輸出模塊按照此文檔編寫。伺服和電機控制權限與以上所說類似,可以編寫成對應的驅動權限文件。在多人同時編寫程序時,每個人手中應當有同一版本的此文檔。
3.4預留數據區劃分
預留數據區劃分為一塊,在文件中注明資源起止地址即可。
4功能模塊及文檔編寫
資源的劃分進行完畢后,就可以進行各個功能模塊的編寫了。
4.1已規劃模塊添加
對于在第2大點中已經完成規劃的程序模塊,在編寫完畢后進行如下審查,審查完畢即可直接加入:(1) 對應PLC資源劃分文件檢查模塊內使用資源;(2) 對應輸出及權限劃分文件檢查模塊內輸出;(3) 檢查模塊邏輯。
4.2已規劃模塊修改
當設備投入使用后,對已有的模塊進行修改時,有兩種情況:(1) 可預期的更改:可預期的更改是指在原來程序設計時就已經考慮到的、可能會發生變更的更改。這些更改在程序中往往已有同樣功能語句,只需要按照同樣語句進行添加或者修改即可。(2) 不可預期的更改:不可預期的更改通常會編寫新的邏輯。這時應當注意按照資源表,使用編寫邏輯所需資源。編寫中如果發現需要使用額外的資源,如輸出和驅動指令權等,就需要修改相應的資源表格,經批準,而后才能使用此資源。編寫完畢后,此模塊按照新模塊標準進行獨立模擬運行,無誤后,進行更改。
4.3新模塊添加
編寫新模塊時,有兩種方法:(1) 先用偽代碼寫出邏輯,預估所需資源,然后改寫相關資源表,將空余中資源劃出自己所需部分,進行程序模塊編寫。(2) 大致預估所需資源,然后改寫相關資源表,將空余中資源劃出自己所需部分,進行程序模塊編寫。兩種方法在實際中都可以采用。模塊編寫完畢獨立測試沒有問題,檢查沒有使用不屬于此模塊的資源后,就可以在程序中加入此模塊了。至此,一套PLC程序的開發流程就介紹完畢了。
5多人協作編寫的應用方法
大型PLC程序通常會由多人編寫。在多人編寫時,此方式優點可以充分發揮。每個人編寫時,有大量的公用狀態資源可以直接調用,同時有明確的私有資源和輸出資源可以調用。整個項目管理簡單,只需要明確寫明每個模塊的目的和相應分配的資源表,就完成了任務書下達。同時簡化了質量控制,只要確保沒有使用不應使用的資源,則此模塊的代碼就不會對設備其他模塊的運行和安全產生損害,通過檢查輸出資源,就可以控制此模塊誤動作時可能產生的后果。
5.1任務劃分
首先應當進行第二大點所述的資源劃分,之后就可以將各個程序模塊分給個人了,管理流程相當簡單。
5.2任務權限劃分
雖然理論上任何工程師都可以進行任何程序模塊的編寫,但在實踐當中,通常由經驗比較豐富的工程師處理報警、驅動這類程序的編寫。
根據任務可能對設備造成危險的等級,可以劃分任務權限,由權限較高的工程師承擔驅動、輸出等模塊的編寫。
6結語
通過嚴格的設計文件,定PLC資源的分配和每個子程序的用途,預先規定可預期的程序變更的語句寫法,同時對非預期的程序加以界定,這樣的程序設計方法在實踐中被證明是簡單有效的。使用此方法,成功開發了多個十萬行以上的復雜PLC程序,在包括成型機、鋼絲圈等設備上獲得了應用。應用中,編寫開發時間較短,同時由于文檔簡單、管理方便,還可以以跨國工程師協作的方式編寫程序。尤為重要的是,該方法控制了新加入的任何程序可能產生的風險。每次更改程序后,都可以初步預估可能有誤動作的部件,使得設備的使用安全風險降至最小。總的來說,此種方法是一種實用的大型PLC程序設計方法。
王素娟(1984—),女,河北人,工程師,從事建筑電氣方向的研究、設計工作。