王敬怡
摘 要 結構化編程是PLC程序設計的常見方法之一,可以將復雜的任務分成多次進行處理,結合通用程序代碼來對復雜任務的控制進行簡化。本文結合PLC程序設計基本方法,對結構化編程的應用進行了分析和討論。
【關鍵詞】PLC 程序設計 結構化編程
工業化進程不斷加快背景下,對于自動化控制提出了更高的要求,PLC控制系統也因此得到了越發廣泛的應用。不過,傳統PLC程序設計存在結構不清晰、程序冗長的問題,導致控制程序的功能單一,很難在多個不同項目中實現重復使用。如何更好的做好PLC程序設計,使得其能夠滿足不同設備自動化控制要求,是技術人員需要關注的重點所在。
1 PLC程序設計常用方法
PLC的全稱為Programmable Logic Controller,可編程邏輯控制器,是一種專門針對工業環境而設計的數字運算操作電子系統,能夠存儲大量操作指令,通過模擬式輸出或者數字式輸出,實現對設備或者生產過程的有效控制。
想要確保PLC功能的有效發揮,需要首先進行程序設計,而比較常見的PLC程序設計方法有三種:
1.1 模塊化編程
結合功能需求,將程序分為不同模塊,在模塊內設置相應的控制指令,系統依照順序實現對模塊的調用。這種編程方法得到的程序具有清晰的結構,無論是調試還是維護都非常方便,但是只能依照模塊進行功能劃分,調用也需要滿足相應條件,代碼繁瑣冗長。
1.2 線性化編程
可以在一個程序塊中放入所有代碼,以S7-400為例,數據采集、臺時統計、設備控制等程序都可以被寫入OB1中。線性化編程可以得到與繼電器控制電路相似的程序,依照順序對指令進行處理,在小型設備中有著適用性好,不過在面對大中型項目時,存在程序結構不清、代碼冗長問題,而且調試和維護都異常繁瑣。
1.3 結構化編程
可以將復雜的任務分成能夠多次處理的小任務,結合通用程序代碼來對復雜任務的控制進行簡化。小任務可以表示為程序段,或者塊,在對程序塊進行調用時,只需要輸入相應的地址或者參數,就可能實現對不同設備和工藝流程的有效控制,不需要對功能相同的代碼進行重復輸入。如果需要修改程序功能,對程序塊進行修改即可,能夠極大的提高編程效率。
2 PLC程序設計中結構化編程的應用
以水泵調度為例,對結構化編程在PLC程序設計中的應用進行簡單分析。
2.1 變頻水泵
在對輸出輸出類型進行設置時,可以在功能塊外部,通過自動控制程序賦值,也可以人工設置,設定好的數值可以結合功能塊內部邏輯進行修改。在賦值中,Command、State等參數采用了Word類型,每一位都代表了不同含義。變頻水泵功能塊中包含了水泵運行中幾乎所有常見的信號處理要求及控制功能,一些在實際工程中不會很少使用的參數,可以空置,也可以直接設定為默認數值。對于水泵電流,需要設置專門的模擬量處理程序塊,做好上下限報警及數據轉換,如果發現電流超過上下限設定值,則程序會自動發出過流或者欠流信號,變頻水泵功能塊在接收到信號后,會依照設定好的程序展開保護功能,保證水泵正常運行。
2.2 水泵調度
泵站中,一般都是結合液位波動,對水泵頻率和運行臺數進行實時調整,確保正常運作,液位控制在水泵調度中發揮著非常關鍵的作用。通常來講,泵站液位控制多是依照液位對水泵進行分段啟停,因此,不同液位對應不同的水泵運行頻率和開啟數量,死區保護功能的存在避免了意外事故的發生。在對水泵啟停液位進行設置時,為了避免特殊工況導致的水泵頻繁啟停,需要保證啟動液位較停止液位稍高。
水泵的啟停應該從幾個方面進行考慮:一是熱備狀態,要求PLC對水泵通電情況進行檢測,明確水泵的運行狀態、控制模式以及是否存在故障。在確認無誤后,判斷水泵正常,處于熱備狀態,可以通過自動控制程序完成水泵的開停調度工作;二是平衡調泵,在調度水泵時,優先啟動累計運行時間最短的泵,優先停止運行時間最長的泵,確保每一臺泵的運轉時間大致相同,而如果所有水泵運行時間相同,可以按照設定好的順序實現水泵啟停;三是啟動間隔保護,在控制程序中,需要保證每一臺水泵的啟動頻率不超過6次/h,兩次啟動間隔不低于10min,無論遇到任何情況,都不能同時啟動兩臺或以上水泵。
從實際應用角度,可以依照分段啟動原理,結合低水位保護等,編制泵站自動控制功能塊,對需要開啟的水泵數量進行計算。同時,編制水泵啟停調度選擇功能塊,通過兩個功能塊的配合使用,能夠實現對泵站自動調度程序的快速編制。
3 注意事項
(1)在實際項目中,PLC程序設計一般會選擇結構化編程與模塊化編程相結合的方式,依照工藝段,對項目進行分割,形成多個任務模塊,然后以任務模塊為對象,開展結構化變成,實現設備控制、工藝控制以及數據分析統計等功能。
(2)在具體的功能塊設計中,應該盡量采用單一功能模式,不能在同一個功能塊中堆疊大量功能。以變頻水泵功能塊為例,只需要設置設備控制、狀態分析、故障診斷功能即可,其他諸如溫度檢測、電流檢測等功能應該放在通用模擬量模塊中,根據實際需求傳遞給變頻水泵功能塊,這樣不僅可以保證功能塊結構清晰,而且調試和維護非常方便。
(3)PLC程序模塊編制可以采用SCL語言,在編程環節采用標準化指令,為程序移植提供方便。例如,西門子SCL語言與Rockwell等PLC的ST語言類似,均屬于PASCAL語言,也能夠滿足IEC61131-3國際標準的要求,如果想要將程序移植到相關編程環境中,只需要做出適量修改即可,不需要重新編程。
4 結語
總而言之,將結構化編程應用到PLC程序設計中,可以通過封裝形成設備程序塊或者流程程序塊,任務塊的創建和測試獨立進行,互不影響。在實際應用中,只要現場信號準確,對調用接口進行測試,就可以完成調試,難度大大降低,效率也有了很大提高,靈活性和可靠性強。
參考文獻
[1]孟彥京,薛寧.造紙機PLC程序的結構化設計研究[J].自動化儀表,2014,35(03):49-51.
[2]遲君平.PLC程序開發中的結構化編寫方法[J].自動化博覽,2011(04):90-92.
[3]黃恭偉,倪受春,汪先兵,等.S7-1200PLC結構化編程的研究和應用[J].滁州學院學報,2015(05):62-64.
作者單位
長春奔騰瑞馬自動化有限公司 吉林省長春市 130011endprint