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