石曉妹,丁 平,于書敏
(1.徐州徐工挖掘機械有限公司,江蘇 徐州 221000;2.無錫德林防務裝備股份有限公司,江蘇 無錫 214191)
結構化程序設計方法是按照模塊劃分原則以提高程序的可讀性和易維護性、可調性和可擴充性為目標的一種程序設計方法。它也是相對于線性編程結構的一種編程方式。在結構化的程序設計中,主要包含3種類型的基本程序結構形式,即順序結構、循環(huán)結構和分支結構,僅有這3種基本結構形式組成的程序稱為結構化程序。結構化程序設計常應用于較復雜的工程機械產品,控制邏輯比較復雜,對于一些簡單小型的工程機械產品,也可以采用非結構化程序設計方法。
PLC控制器中一般運行著兩種程序,即操作系統(tǒng)程序和用戶程序。操作系統(tǒng)程序完成底層的系統(tǒng)級任務,提供了一套用戶程序的調用機制,用戶程序在這個平臺上,完成用戶自己的自動化任務。
用戶程序需要用戶自己開發(fā)設計,本文所說的結構化程序設計也是針對用戶程序。以西門子PLC用戶程序為例,用戶將不同功能的程序分別編寫在FC1、FB1、FB2等功能和功能塊中,然后在主程序Main(OB1)中單次/多次/嵌套調用這些程序塊,從而實現高效、簡潔、易讀性強的程序編程。結構化程結構如圖1所示。結構化編程的優(yōu)點是針對功能相同的不同部件,只需要編寫一個程序塊,在每次使用此程序時,將對應部件的相關參數傳給程序塊即可。如果使用Codesys編程的PLC,主程序Main中主要包括子程序(PRG)、功能(FB)、函數(FUN)等。

圖1 結構化程序結構
本文以24t液壓挖掘機為例,介紹控制系統(tǒng)的組成以及程序結構。24t液壓挖掘機包含一塊Hirschmann的IMCT型主控制器,包含CAN2.0A和CAN2.0B兩種CAN通訊接口。主控制器通過CAN2.0A網絡和GPS模塊以及顯示儀表通訊,通過CAN2.0B網絡與發(fā)動機ECM通訊,通過自帶的模擬量接口采集油箱溫度傳感器信號、油箱液位傳感器信號以及壓力傳感器信號和油門信號,控制系統(tǒng)的組成框圖如圖2所示。
24t液壓挖掘機控制程序采用結構化編程,把控制系統(tǒng)分成單個的控制子程序,再在主程序Main中調用各個子程序,把一些相同的控制功能開發(fā)成FB,再在子程序中調用FB,只是對應的程序輸入接口和輸出接口不同,提高了程序的標準化。主程序Main包含的子程序較多,主要包括初始化程序、輸入輸出程序、GPS控制程序、發(fā)動機控制程序、功率匹配控制程序、動作控制程序、CAN通訊程序、數據存儲控制程序等。系統(tǒng)程序結構框圖如圖3所示。

圖2 控制系統(tǒng)組成框圖
挖掘機控制系統(tǒng)的關鍵就是如何平穩(wěn)地控制好各動作機構,比如斗桿和動臂的動作控制,由于24t液壓挖掘機使用電控手柄,程序中增加了手柄的斜坡控制,使操作動作既平穩(wěn),又響應及時,操作手感相比較于液壓手柄要好,不至于長時間操作而疲勞。系統(tǒng)還增加了GPS模塊,可以通過GPS遠程把設備工作數據發(fā)送到公司的遠程監(jiān)控中心,同時也具有GPS鎖車功能,重新開發(fā)了模塊化的GPS控制功能塊,模塊化程序可以方便地移植到其他設備。
手柄控制的核心就是使控制動作平穩(wěn),響應迅速又微動性良好,因此在手柄控制塊中增加了斜坡步進值分段控制,在手柄去程動作的前半程,手柄斜坡步進值較小,動作平穩(wěn),微動性好,手柄去程動作的后半程,斜坡步進值變大,快速達到手柄的輸出值,使響應及時,不至于出現“反應遲鈍”的感覺。當然在手柄回程的前半程斜坡步進值要大,使手柄輸出值迅速減小,回程的后半程,斜坡步進值要小,避免頻繁操作引起的液壓沖擊。
程序功能塊如圖4所示。其中輸入變量為:En為功能塊使能,Up_Max_int為手柄上升操作輸出最大值,Up_Min_int為手柄上升操作起始輸出最小值。Down_Max_int為手柄下降操作輸出最大值,Down_Min_int為手柄下降操作起始輸出最小值。Enble_Up為上升動作允許,Enble_Down為下降動作允許。JoystickSingal為手柄輸入信號,Mbound為手柄中位置,Blind為手柄死區(qū)值,Up_Ascend為手柄上升去程斜坡值,Up_Descend為手柄上升回程斜坡值。Down_Ascend為手柄下降去程斜坡值,Down_Descend為手柄下降回程斜坡值。輸出變量為:JoystickOut為手柄輸出值,JoystickState為手柄狀態(tài),Up_Flag為動作上升標志,Down_Flag為動作下降標志。

圖3 系統(tǒng)程序結構框圖
GPS監(jiān)控平臺將挖掘機的狀態(tài)分為4類:正常監(jiān)控、屏蔽鎖車、主動鎖車、解鎖。正常狀態(tài)時,控制器和GPS之間數據通訊,再通過GPS把數據傳到遠程監(jiān)控中心。GPS的控制原理就是,監(jiān)控平臺給GPS發(fā)送指令,GPS向控制器的特定CAN地址周期性的發(fā)送數據,控制器接收到GPS發(fā)送的數據后,分析GPS指令內容,把需要的數據再周期性的發(fā)送給GPS,GPS再把數據傳給監(jiān)控平臺,如果控制器接受不到GPS周期性的指令信號,比如GPS天線信號異常或心跳異常,會進入被動鎖車程序,防止GPS模塊被人為損壞。如果監(jiān)控平臺主動發(fā)送鎖車指令,控制器通過GPS接收到后會執(zhí)行鎖車動作,主動鎖車分一級鎖車和二級鎖車。GPS控制功能塊如圖5所示。

圖4 手柄控制功能塊

圖5 GPS控制功能塊
結構化程序設計有多方面的優(yōu)勢,尤其對于控制邏輯復雜的產品,能夠有效地將一個較復雜的程序系統(tǒng)設計任務分解成許多易于控制和處理的子任務。同時,本文還說明了對于通用功能可以開發(fā)模塊化的功能塊,簡化后續(xù)程序設計,通過在24t液壓挖掘機上使用,達到了很好的控制效果。