引言
PLC控制系統以其可靠穩定、通用性強、操作簡便的優勢,成為在工業控制領域使用最廣泛的控制系統之一。PLC產品均支持符合IEC 61131-3標準的編程語言,包括梯形圖(LD)、功能塊圖(FBD)、順序功能圖(SFC)、指令表(IL)、結構化文本語言(ST)等。IEC61131-3標準極大地改進了PLC的編程軟件質量及提高了軟件開發效率,但在實際使用中仍存在一些問題。
1)編程環境的功能弱:PLC用戶程序的編程環境大都集成在配套組態軟件中,與專業編程軟件相比,編寫、調試、驗證各環節在易用性、功能豐富程度等方面均有明顯差距。
2)復雜系統的程序實現困難:上述編程語言仍采用結構化的編程方式,編寫時需要由設計人員將控制過程抽象為具體的執行步驟。在實現復雜的程序時,還需要將其分解為不同的子程序,并清晰地定義各子程序的接口。這對設計人員提出了很高的要求。另一方面,隨著計算機仿真技術的飛速發展,
出現了以Simulink為代表的交互式仿真平臺,擁有可視化的建模仿真環境和各種功能的專業工具包,在系統建模的過程就可以完成程序編程、調試、驗證等工作。如果能夠將通過Simulink仿真的算法直接應用于PLC系統,那么工程人員就能擺脫繁瑣的控制邏輯調試和驗證工作,從而大幅度提高工作效率。
本文以一個三環控制的交流伺服系統作為實例,研究使用Simulink平臺進行仿真并完成PID參數整定,通過Simulink PLC Coder生成符合IEC 61131-3標準的結構化文本,最終應用于PLC系統的實現方法。本文涉及到的開發環境如下:
· Matlab R2011b
· 中控G5控制系統
· 中控GCSContrix組態軟件
1 交流伺服系統
伺服來自英文單詞Servo,指系統跟隨外部指令進行人們所期望的運動,運動要素包括位置、速度和力矩。三環控制的交流伺服系統,是在轉速、電流雙閉環調速系統的基礎上,再增加一個位置環,具有跟隨性好、響應快速、抗擾性強的優點,廣泛地應用于數控機床、食品包裝、紡織、電子半導體、機械人等制造業。其結構框圖如圖1所示,包括伺服電機、反饋裝置和控制器等,從內到外分別組成電流環、速度環、位置環,這樣就形成了三環控制的交流伺服系統。
圖 1 交流伺服系統結構框圖
2 模型建立和參數計算
交流伺服系統的控制原理圖如圖2所示,其中ACR、ASR和APR分別為電流調試器、速度調節器和位置調節器。在工程實踐中,一般電流環和速度環采用PI調節器,位置環采用P調節器,這樣可以使系統取得較好的動態跟隨性和抗干擾性。
圖 2 交流伺服系統控制原理圖
3 Simulink仿真并生成PLC代碼
根據上面對交流伺服系統的建模和參數計算結果,在Simulink中構建系統原理圖如圖3所示。首先通過Simulink仿真來確定位置環比例調節器系數Kp,即把Kp由小到大逐步仿真,直至系統發散,然后把Kp減小至系統無超調,最后得到整定值0.49。之后按下述步驟即可生成PLC代碼。
圖 3 仿真模型
(1)仿真模型離散化
由于Simulink PLC Coder只能轉換離散模型,而上述模型為連續模型,因此在生成PLC代碼還需進行離散化。在菜單欄選擇Tools→Control Design→ModelDiscretizer,調出Simulink Model Discretizer工具將所有環節離散化,轉換方式為Tustin,采樣時間選為0.1s。
(2)創建子模塊
之后將模型中除Step和Scope外的部分全部框選,創建為1個子模塊,并在其參數選項中選中“Treat as atomic unit”。為將子模塊的輸入輸出參數更清楚直觀,在子模塊內將輸入參數名In1、In2改為Order、Load,Out1、Out2、Out3改為Current、Speed、Position,把子模塊名改為Servo。
(3)生成PLC代碼
右鍵點擊創建的子模塊,在右鍵菜單中選擇PLCCode Generation→Generate Code for Subsystem,生成PLC代碼并保存為獨立的文件。
4 PLC系統的應用及效果
在完成上述步驟后,就可以將Simulink生成的PLC代碼載入到PLC控制器中運行,這里以浙江中控的G5系列PLC系統為例進行說明。打開配套的組態軟件GCSContrix,創建新工程,之后在主菜單欄上選擇“導入ST文件”,將Simulink生成的PLC代碼文件載入,這樣就在工程內自動生成了一個名為“Servo”的自定義功能塊。該自定義功能塊有3個輸入引腳、3個輸出引腳,其中5個引腳分別名為Order、Load、Current、Speed、Position與之前Simulink中子模塊的輸入輸出參數對應,均為LREAL型變量(雙精度浮點型變量);另一個輸入引腳名為“ssMethodType”,為SINT型變量(短整型變量),該引腳輸入0時,該功能塊的內部變量全部初始化為0,輸入1時該功能塊運行。
為驗證該功能塊的運行效果,可以在上述工程中新建一個周期為100ms的周期性任務,之后在這個任務下新建一幅功能塊圖程序;添加自定義變量并連接到功能塊的引腳,自定義變量的默認值設為0,如圖4所示。
圖 4 功能塊程序示意圖
將工程編譯并下載到GCS控制器后,進入控制器調試模式,依次將TAG_Order和TAG_Type的值改為1,獲得3個輸出變量的階躍響應曲線,如圖5右側所示。并與在Simulink仿真獲得的階躍響應曲線進行對比,如圖5左側所示,可以發現PLC實際控制效果符合Simulink仿真的預期結果。
圖 5 Simulink和PLC運行單位階躍響應曲線對比
5 結束語
本文介紹了三環控制的交流伺服系統在Simulink平臺下進行建模仿真,將控制算法通過Simulink PLCCoder自動生成了符合IEC61131-3標準的結構化文本,繼而導入PLC系統編譯為控制程序。這種基于建模仿真的PLC控制程序設計方法,通過自動化生成PLC代碼的方式,使工程人員能夠通過仿真環節檢驗控制算法的正確性,可以大幅調減少系統調試時間和工程實施周期,是一種高效的PLC復雜控制算法實現方法。
(審核編輯: 滄海一土)
分享