賴寶鵬,,李志斌,,熊杰,方毅然
?。ㄉ虾k娏W院 自動化工程學院,,上海 200090)
摘要:針對科學研究人員研究的智能控制算法難以便捷地直接應用于實際控制器中這一現(xiàn)象,設計了一種基于嵌入式的軟PLC控制器,。智能控制算法可先由Simulink建模仿真后通過Simulink PLC Coder工具生成符合IEC611313標準的結構化文本語言,,然后自動加載入PLC開發(fā)軟件中,達到便捷地把智能算法移植到所設計的軟PLC控制器中進行測試或工程化運用,。測試結果表明,,所設計的軟PLC控制器運行穩(wěn)定、可靠,,控制效果與Simulink仿真結果一致,。此控制器對于大力推動科研成果更快地轉化為實際運用產(chǎn)品具有重要意義。
關鍵詞:嵌入式,;控制器,;軟PLC,;Simulink PLC Coder;STM32處理器
中圖分類號:TP23文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.05.001
引用格式:賴寶鵬,,李志斌,,熊杰,等.便于移植智能算法的軟PLC控制器設計[J].微型機與應用,,2017,36(5):1-3,7.
0引言
2015年5月,,國務院印發(fā)《中國制造2025》,提出中國制造必須主攻智能制造[1],。智能制造核心在于智能控制,,而智能控制主要是由智能控制器和智能控制算法組成??茖W研究人員算法研發(fā)能力決定了智能算法的發(fā)展速度,。然而,由于缺少實際應用的背景,,很難把理論成果進行工程化驗證,。傳統(tǒng)的控制器,由于自身結構特點和知識產(chǎn)權保護的原因,,往往很難通過二次開發(fā)來驗證所設計算法的可靠性,。同時,算法研發(fā)人員很難有精力去自主研發(fā)一種通用的算法驗證平臺,。因此,,實際問題建模仿真后,如何將理論成果進行工程驗證,,這個問題一直困擾著研發(fā)人員[2],。本文設計了一種軟PLC控制器,它能充分利用科研機構的研究成果以及他們擁有的強大的算法研發(fā)能力來搭建合理的數(shù)學模型,,使模型的靜態(tài)特性和動態(tài)特性與被控對象一致,,在此模型上添加智能算法,并進行仿真調試[3],。最后把算法移植到所設計的軟PLC控制器中,,可便捷地把理論成果轉換為實際工程應用。
1系統(tǒng)設計
系統(tǒng)總體框架由軟PLC內核系統(tǒng),、嵌入式系統(tǒng),、基于模型的算法開發(fā)系統(tǒng)三部分組成。嵌入式系統(tǒng)作為底層軟,、硬件平臺,;軟PLC內核系統(tǒng)作為中間層負責PLC代碼的解釋翻譯;算法開發(fā)系統(tǒng)作為科學研究人員的上層高級算法開發(fā)平臺,它負責智能算法的生成,,同時也是算法向IEC611313標準語言轉換的平臺[45],。
1.1軟PLC內核系統(tǒng)
本設計的軟PLC內核選用菲尼克斯軟件提供的ProConOS eCLR。它基于.NET技術,,是完全為工業(yè)控制應用而設計的內核,。ProConOS eCLR提供了一個功能強大、開放,、標準以及與平臺無關的編程接口,。PLC程序開發(fā)軟件使用的是配套的MULTIPROG,該工具是專門用于設計和管理IEC61131標準的應用程序,,支持多種編程語言,,允許用戶自定義庫。在軟PLC控制器中軟PLC內核相當于一個解釋器,,用于解釋MULTIPROG下裝的目標代碼,,而不是將PLC運用程序直接編譯成目標芯片的機器指令文件[6]。
軟PLC內核開發(fā)主要由固件庫,、共享緩存區(qū)和I/O接口開發(fā)三部分組成,。固件庫開發(fā)可使用現(xiàn)有的C++或者C#算法來搭建屬于自己行業(yè)的固件庫,,是對基于模型算法設計的一種補充和擴展,。同時固件庫可以作為核心知識產(chǎn)權封裝起來,形成差異化產(chǎn)品,。固件庫的兩種開發(fā)方式如圖1所示,。ProConOS eCLR內核采用變址尋址方式,而嵌入式主要采用的是直接尋址方式,,因此,,需要采用共享緩存機制。共享緩存是用于ProConOS eCLR內核與嵌入式的其他運用程序之間的一種數(shù)據(jù)交換方式,,它解決了ProConOS eCLR內核和嵌入式尋址方式不同而引起出錯的問題,。I/O接口開發(fā)的核心原理在于ProConOS eCLR內核并不關心外設的種類以及I/O點的數(shù)據(jù)類型,它只是作為一個ProConOS eCLR與實際物理I/O設備之間的數(shù)據(jù)中轉站,。系統(tǒng)開發(fā)工程師在I/O接口中實現(xiàn)的代碼主要負責采集本地或者總線I/O點數(shù)據(jù),,返回給ProConOS eCLR內核,以及將ProConOS eCLR輸出的數(shù)據(jù)發(fā)送到實際物理I/O設備或者現(xiàn)場總線I/O上,。共享緩存開發(fā)和I/O驅動開發(fā)一般都是用Native方式實現(xiàn),,并且一般都是通過配置文件的方式來加載。
1.2嵌入式系統(tǒng)
本文設計的軟PLC控制器采用意法半導體公司推出的工業(yè)級STM32F207ZG的32位高性能嵌入式微控制器,,該微控制器基于ARM V7架構的CortexM3內核,,主頻高達120 MHz,內部含有128 KB的SRAM和1 024 KB的FLASH、自帶3個12位24通道的ADC和2個12位DAC,、12個通用16位定時器和2個通用32位定時器,、1個低功耗RTC、2個CAN接口,、擁有114個通用I/O口等,。適用于低功耗、低成本,、高性能的嵌入式控制器中,。控制器硬件電路包括:控制器芯片主電路,、電源電路,、I/O接口電路、存儲電路,、通信電路等模塊,。
系統(tǒng)由μC/OSIII作為實時操作系統(tǒng),負責任務,、中斷,、內存和其他資源的創(chuàng)建、刪除,、管理和調度,。μC/OSIII內核代碼是完全開源的,開發(fā)人員可以實現(xiàn)對系統(tǒng)的深度定制,。本設計軟PLC控制器通過IAR Embedded Workbench軟件移植軟PLC內核到嵌入式系統(tǒng)中,,主要包括配置與操作系統(tǒng)的接口、文件系統(tǒng)的接口,、時鐘系統(tǒng)的接口,、通信接口、板級支持包等內容,。操作系統(tǒng)通過OSTaskCreate函數(shù)把軟PLC內核創(chuàng)建為μC/OSIII的一個較高優(yōu)先級的任務來運行,;設置系統(tǒng)滴答時間為1 ms;設置串口通信參數(shù)波特率為115 200,、數(shù)據(jù)位為8位,、停止位為1位、無奇偶校驗位等,。同時可根據(jù)控制對象需求來選擇性配置文件系統(tǒng),、總線、人機界面等[7],。
1.3基于模型的算法開發(fā)系統(tǒng)
本文采用一種基于Simulink建模仿真并自動代碼生成的技術,,它是一種強大的模塊化,、圖形化的編程工具。其Simulink PLC Coder工具可根據(jù)Simulink模型生成獨立于硬件的符合特定PLC開發(fā)平臺配置的IEC611313標準的結構化文本語言[8],。它使得基于模型的設計方法能在PLC上運用,。與傳統(tǒng)的PLC開發(fā)方式相比,這種基于模型的設計方法能使開發(fā)者在開發(fā)過程中不斷地完善系統(tǒng)模型,,有效地減少了現(xiàn)場調試導致的事故發(fā)生[9],。
2系統(tǒng)實現(xiàn)和測試
2.1系統(tǒng)實現(xiàn)
2.1.1智能算法實現(xiàn)
MATLAB提供了豐富的demo以備參考。為了開發(fā)方便迅速,,本設計直接利用MATLAB 提供的demo中的plcdemo_simple_subsystem.slx為模板,。首先在MATLAB命令行中執(zhí)行命令plcdemo_simple_subsystem。把demo另存為自己的模板,。打開參數(shù)配置面板(Simulation->Configuration Parameters),,進入PLC Coder的選項頁,Target IDE選為目標PLC開發(fā)軟件,?;氐侥P停p擊進入SimpleSubsystem,,根據(jù)系統(tǒng)的建模和計算結果搭建自己的模型,。
在電廠發(fā)電過程中,高壓高溫蒸汽在汽輪機內膨脹做功后,,進入凝汽器冷卻后凝結成水,。為了使蒸汽在凝汽器內凝結成水,就必須不斷地將冷卻水送入凝汽器中的冷凝管內與蒸汽進行熱交換[10-11]?,F(xiàn)以此對象的循環(huán)水系統(tǒng)仿真實驗臺溫度的PID控制為例來搭建Simulink模型并仿真,。經(jīng)實驗測量計算得系統(tǒng)的Kp=2.5、Ki=14,、Kd=3.7,傳遞函數(shù)為:G(s)=1s2+300s+1,。循環(huán)水系統(tǒng)仿真實驗臺溫度PID控制的Simulink模型結構如圖2,、圖3所示。
循環(huán)水系統(tǒng)仿真實驗臺溫度控制模型的階躍響應曲線如圖4所示,。
Simulink PLC Coder工具只能轉換離散模型,,若為連續(xù)模塊,還需進行離散化,。選擇Analysis→Control Design→Model Discretizer,,調出Simulink Model Discretizer工具將所有環(huán)節(jié)離散化,轉換方式可為Tustin,,并修改采樣時間[12],。如果出現(xiàn)代數(shù)環(huán)問題,則只需在代數(shù)回路上添加unit delay模塊即可。右鍵單擊已創(chuàng)建的子模塊PIDControl,,選擇PLC Coder→Generate and Import Code for Subsystem[13],。若編譯成功,將生成一個.xml文件及診斷對話框,,同時Simulink PLC Coder工具會直接根據(jù)Configuration Parameters的設置來自動打開目標IDE,,并將自動加載生成的固件庫到MULTIPROG中。在MULTIPROG中把它形成用戶庫,方便其他工程調用,。在MULTIPROG的編輯向導中選擇UNTITLED便可看到Simulink建模轉化生成的ST語言對應的一個名為PIDControl的功能塊,,可直接拖拽使用此功能塊。功能塊如圖5所示,。對于具有內部狀態(tài)的頂層子系統(tǒng)所自動生成的功能塊會在輸入端自動增加一個名為ssMethodtype的輸入口,,它是一個特殊的輸入?yún)?shù),可當作功能選擇端口,。為便于實驗驗證將循環(huán)水系統(tǒng)仿真實驗臺的模型去掉輸出反饋環(huán)節(jié),,將實測值SP作為輸出反饋值。圖5循環(huán)水系統(tǒng)仿真實驗臺溫度
2.1.2控制器硬件實現(xiàn)
軟PLC控制器設計主要參考IEC611312:2007標準(可編程序控制器第2部分:設備要求和測試),、IEC6100042標準(電磁兼容第2部分:靜電放電抗干擾試驗),、IEC6100043標準(電磁兼容第3部分:試驗和測量技術——輻射、射頻和電磁場的抗擾度試驗),、IEC6100044標準(電磁兼容第4部分:試驗和測量技術——電快速瞬變脈沖群抗擾度試驗)來設計硬件,。目前,軟PLC控制器樣機也制作完成,。軟PLC控制器已在實驗室測試平臺進行相關性能測試,。基本誤差滿足:(1)輸入信號為直流標準信號時,,不超過±(0.2%F.S+1d),;(2)輸入信號為數(shù)字量信號時,顯示正確邏輯值,;(3)模擬量輸出時,,不超過±0.2%F.S;(4)數(shù)字量輸出時,,顯示正確邏輯值,。在高低溫-20℃、25℃,、60℃,、80℃溫度點不停機連續(xù)運行24 h未出現(xiàn)程序崩潰、數(shù)值異常變化的現(xiàn)象,。同時也對數(shù)據(jù)存儲,、編程語言,、軟件平臺、生產(chǎn)制造,、系統(tǒng)架構,、系統(tǒng)可靠性、硬件冗余,、硬件功能模塊,、實時工業(yè)網(wǎng)絡、工業(yè)網(wǎng)絡安全等做了相應的測試,。檢測結果良好,,符合標準的技術指標要求。
2.2系統(tǒng)測試
在已建好的循環(huán)水系統(tǒng)仿真實驗臺軟件控制框架中添加PIDControl功能塊,,編譯好后下裝入已連接好設備的軟PLC控制器中,得到圖6所示的循環(huán)水系統(tǒng)實驗臺溫度與時間的關系曲線,。
由圖6可知,實際控制效果與Simulink模型仿真相似,,說明算法移植成功且控制效果良好,、系統(tǒng)穩(wěn)定,實現(xiàn)了基于模型的算法開發(fā)與軟PLC控制器兩者的無縫連接,。
3結論
本文以STM32為嵌入式硬件平臺,、μC/OSIII為嵌入式軟件平臺、ProConOS eCLR軟PLC作為PLC內核,,設計了一種具有良好通用性,、兼容性、可擴展性以及不受軟硬件限制的軟PLC控制器,,并介紹了結合Simulink建模仿真自動生成符合IEC611313標準語言的算法生成方式,。極
大地提升了理論向實際轉化的進度,為算法工程師提供了一種簡便的開發(fā)平臺,。同時,,所設計的軟PLC控制器也能充分利用開放的平臺面向工業(yè)發(fā)展更加深入的專用智能控制器,體現(xiàn)出專屬化和定制化的特點與控制優(yōu)勢[14],。
參考文獻
?。?] 周濟. 智能制造——“中國制造2025”的主攻方向[J]. 中國機械工程, 2015,26(17): 2273-2284.
[2] 孫立平, 姜建芳. Matlab代碼在PLC控制系統(tǒng)中的實現(xiàn)方法研究[J]. 微計算機信息, 2012(5): 44-45,,50.
[3] 賈茜茜. 基于軟PLC技術的仿真系統(tǒng)設計與應用[J]. 自動化與儀器儀表, 2016(2):211-213.
?。?] Zhou Qingguo, Yang Xuhui, Han Genliang, et al. An embedded control system designed based on soft PLC[M]. Springer Berlin Heidelberg, 2014:115-120.
?。?] WANG Z. The key technology research for embedded soft PLC control[C]. IEEE Workshop on Electronics, Computer and Applications, 2014:10451048.
[6] LIANG Q, LI L. The study of soft PLC running system[J]. Procedia Engineering, 2011(15):1234-1238.
?。?] LIANG G, LI Z, LI W, et al. On an LASintegrated soft PLC system based on WorldFIP fieldbus[J]. Isa Transactions, 2012, 51(1):170180.
?。?] DEVEZA T, MARTINS J F. PLC control and Matlab/Simulink simulations: a translation approach[C]. 2009 IEEE Conference on Emerging Technologies & Factory Automation, IEEE, 2009: 1-5.
?。?] 劉賢, 梁慧敏, 李國良,等. 基于模型的設計在PLC控制系統(tǒng)開發(fā)中的應用[J]. 電氣自動化, 2014, 36(2): 86-88.
[10] 張鵬軍. 基于主元素分析的火電廠熱平衡計算應用研究[D]. 北京:北京交通大學, 2007.
?。?1] 金果. 凝汽器泄漏判斷與處理[C]. 中國電機工程學會電廠化學2013學術年會, 長沙,,2013:155156.
[12] 張國亮, 陳健, 徐威挺,等. Simulink應用于PLC運動控制系統(tǒng)初探[J]. 儀器儀表標準化與計量, 2014(2):29-32.
?。?3] 石良臣. MATLAB/Simulink系統(tǒng)仿真超級學習手冊[M]. 北京:人民郵電出版社, 2014.
?。?4] 宋慧欣. 施耐德電氣PLC:詮釋市場趨勢[J]. 自動化博覽, 2015,32(6):42