楊揚,朱文玉,趙法瑞
(中國石油大學勝利學院機械與控制工程學院,山東東營257061)
在計算機技術飛速發展的今天,PC機作為上位機在工業過程監控平臺中的應用越來越廣泛。監控平臺軟件有著動畫效果、組態方便和強監控能力的特點[1-4],如組態王軟件,雖然可以提供強大的人機界面和通訊功能,但是其計算能力差、難以完成復雜控制算法的缺點也不能忽視[5-8]。目前,系統工程師在生產設計時越來越傾向于使用智能控制算法,如:PID控制算法、人工神經網絡算法、遺傳算法等先進控制算法。而MATLAB中的Simulink仿真軟件,具有方便的圖形界面和對控制工具軟件包的支持,可以對動態系統進行建模、仿真和分析[9]。本文通過Simulink工具箱可以實現復雜控制系統的建模、對仿真模型的參數進行在線修改、可以模擬實際生產過程中的干擾和模型變化,并可以立刻得出修改后的仿真結果。結合兩種軟件各自的優點,組態王建立監控軟件平臺,在監控界面上可以進行動態工藝圖顯示PLC參數修改、實時數據采集,而MATLAB作為后臺控制軟件,可以實現復雜系統設計、參數修改、曲線繪制等功能。
選取雙容水箱為控制對象,組態王和MATLAB軟件借助DDE協議分別實現與EXCEL作為中間服務器的數據交換。本文提出了通過Simulink仿真軟件中的workspace工作空間與EXCEL進行數據通訊,組態王界面借助DDE通訊協議可以實時修改EXCEL表格中的對應參數,同時EXCEL表中的數據及時反饋到workspace工作空間,從而影響模型中的輸入變量的參數。
結合現場雙容水箱的布局和外觀,利用組態王的繪圖工具箱,建立形象的主監控界面,實現整個液位控制流程的實時監控,如圖1所示。首先,在組態王工程窗口新建工程,命名為雙容水箱液位控制系統主控界面,根據控制系統實際要求,在監控界面主要有3個水箱,分別為儲水箱、上水箱、下水箱。每個水箱內有液位變送器、在儲水箱和上水箱進水口安裝一個電動調節閥、除此以外還有水泵一個。組態王監控界面可以實現整個圖形界面的設計、I/O設備配置、動畫連接生成、系統運行與調試[10-11]。文中建立的雙容水箱監控界面,可以通過命令窗口設定和模塊拖動的方式設置下水箱液位值sp、3個PID參數值Ki、Kp和Kd,組態王界面完成這4個參數的修改,通過DDE通訊與MATLAB的workspace工作空間互聯,從而實現模型中參數的修改,曲線發生相應變化。
組態王界面中實時顯示上水箱液位和下水箱液位變化曲線,其中圖片中曲線①為下水箱液位設定值,曲線②為下水箱液位變化曲線、曲線③為上水箱液位變化曲線。該曲線與Simulink仿真曲線一致。
DDE交換數據的方法主要分3種:由客戶申請數據、服務器發送數據稱為冷鏈;服務器的數據有變化時,服務器通知客戶,客戶再來取數據稱為溫鏈;服務器數據變化時,直接把數據發送給可出,由客戶進行處理數據稱為熱鏈[12-13]。MATLAB提供的DDE功能可以與EXCEL進行實時的動態數據交換,而組態王也可以通過DDE方式與其他應用軟件進行數據交換,實現了組態王通過MATLAB實現復雜控制的功能。

圖1 雙容水箱液位系統主控界面
在雙容水箱液位控制系統主控界面的工程界面尋找設備DDE,打開DDE點擊新建,設備驅動選擇DDE,進行下一步,給要安裝的DDE設備指定的連接對象名設為Excel,服務程序名為Excel,話題名為sheet1,選擇標準的Windows項目數據交換形式。這樣就完成了組態王與MATLAB的通訊。如圖2所示。

圖2 組態王中DDE設置
根據需要建立內存變量和IO變量,配置變量的類型和各種屬性,并將IO變量與相應的IO設備寄存器連接。打開新建的工程,在工程瀏覽器界面,點擊新建就能建立新的變量。例如下水箱液位,變量名:下水箱液位,變量類型選擇:I/O實數,連接設備選擇:Excel,項目名:r2c3,表示將組態王下水箱液位值存入EXCEL表中的第2行第3列。除下水箱液位外還設置變量有:上水箱液位、sv(下水箱液位設定值)、KP、Ki、Kd、pv(上水箱液位設定值)其他變量設置類似,如圖3所示。

圖3 組態王自定義變量

圖4 EXCEL中間數據庫
新建一個EXCEL文件“data.xls”,在EXCEL里完成相應的設置,如圖4所示。選中第一行第二列r1c2:在其中寫入:下水箱液位設定。用同樣方法可以完成其他輸出量在data.xls中的設置。Excel與組態王通過DDE通訊能夠實現數據的同步傳輸。通過組態王中對變量的DDE設置,每個變量對應Excel中某一單元格,只要在組態王設置與EXCEL軟件互聯,即可實現數據變量的同步變化。
MATLAB作為客戶應用程序,它支持文本格式的數據傳遞,可以使用MATLAB中的DDE客戶端所提供的函數與服務器應用程序進行數據通訊[14],MATLAB的DDE客戶包含7個函數,分別是:ddeinit是建立與服務器的的對話,建立成功則該函數返回一個通道信號;ddereq向服務器索要數據,返回值是存有數據的矩陣;ddepoke向服務器發送數據;ddeadv和ddeunadv的功能是建立熱鏈的請求和刪除請求;ddexec發出執行命令給服務器應用程序;ddeerm終止與服務器之間的DDE會話[15]。本文主要用到的函數為 ddeinit、ddereq、ddepoke 3種,下面是MATLAB進行DDE通訊的步驟:
1)雙容水箱串級PID控制模型搭建
文中采用PID串級控制,分主控制器和副控制器,主控制器的PID參數可以通過m文件中的set_param函數寫入Simulink模型中進行修改,如圖5所示。

圖5 雙容水箱串級控制模型
2)編寫實現DDE功能的M文件
在MATLAB中編寫Simulink模型與EXCEL進行數據通訊的m文件,如圖6所示。編程思路是在m文件中定義4個變量,分別為下水箱液位設定值、比例常數設定值、積分常數設定值、微分常數設定值,而函數set_parm可以修改PID模型中的KP、Ki、Kd、參數。本文用到的函數ddeinit建立與組態王的對話,建立成功則該函數返回一個通道信號[16]。用if,else語句來檢測對話有沒有建立成功,若建立成功,用ddereq函數從Excel中讀入數據,再把數據送入SIMULIK仿真模型中,經過模型運算之后再把數據返回傳入Excel,最后送還給組態王監控畫面中。例如”sv=ddereq(channel,‘r2c2’)”,把 Excel中第二行第二列的數據讀給sv送入Simulink仿真模型,經過運算之后通過To Workspace把數據送回工作空間,再經過ddepoke從工作空間向Excel返回數據,MATLAB把返回值送給Excel,Excel再通過DDE通訊把數據傳輸到組態王監視界面中。

圖6 m文件編程
1)打開組態王工程:雙容水箱監控平臺,進入組態王運行環境;即在工程瀏覽器界面找到VIEW,單擊切換到運行狀態。設定下水箱液位控制參數(設定下水箱液位比例參數P=0.45,積分參數I=0.0045,微分參數D=5,設定液位值為15)。
2)打開“data.xls”這個 Excel,對通訊的數據進行更新。
3)打開MATLAB,打開SIMULINK文件和M文件,運行M文件。
4)將輸入信號改為單位階躍信號后,觀察經過模型運算后示波器的情況,下水箱液位如圖7示波器Scope1所示,上水箱液位如示波器Scope2所示。
5)輸入信號為實際設定值時,將上水箱液位、下水箱液位和設定值顯示在同一畫面中,如圖8所示。

圖7 示波器

圖8 示波器Scope3
文中通過組態王和MATLAB軟件自主開發雙容水箱液位控制仿真實驗平臺,提出了使用MATLAB的workspace工作空間與EXCEL數據庫進行互聯。組態王和MATLAB分別實現雙容水箱監控系統的界面搭建和串級模型的搭建。利用DDE通訊訪問EXCEL數據庫,同時在組態王界面進行參數設置時可進行EXCEL數據庫的實時修改,而EXCEL同時與Simulink雙容水箱模型互聯,繼而修改水箱模型參數,進行不同參數下模型的分析。結論證明,利用組態王軟件進行參數修改后,組態王界面的示波器顯示結果與MATLAB模型仿真波形一直,實現了3者的互聯。仿真實驗平臺的搭建具有圖形界面動態效果逼真、操作性強等優點,對進一步的控制類教學和工作實踐有著重要的意義。
[1]張梓琪,黃凌云,李才對,等.基于組態王與Matlab的液位控制仿真平臺構建[J].實驗室研究與探索,2013(9):81-85.
[2]敖茂繞.串級液位控制系統的改進粒子群神經網絡PID控制研究[J].計算機測量與控制,2014(22):95-100.
[3]張亞鋒.基于PID串級控制的MATLAB仿真系統[J].電子科技,2015(10):26-27.
[4]王志剛,虎恩典,王寧.基于PLC的雙容水箱液位串級PID控制的實現[J].電子設計工程,2014(22):131-135.
[5]朱濤,周天沛.基于PLC的雙容水箱液位控制仿真與實物實驗系統設計[J].實驗室技術與管理,2013(11):29-32.
[6]王雪梅.基于模糊神經網絡PID的液位串級控制的研究[J].機電一體化,2013(3):35-85.
[7]鄭華,呂偉珍.基于組態王和MATLAB的雙容水箱液位控制[J].中國農機化,2012(2):155-157.
[8]王維權,馬陽,雷彥華.基于組態王與MATLAB的雙容水箱液位模糊控制系統[J].工業控制計算機,2014(27):23-26.
[9]盧守鋒,韋欽平,沈文,等.集成VISSIM、EXCEL VBA和MATLAB的仿真平臺研究[J].交通運輸系統工程與信息,2012(12):43-48
[10]黃彪,張井崗.模糊PID控制在液位串級控制系統中的應用[J].機械工程與自動化,2012(5):150-155.
[11]孫婷.雙容水箱液位串級控制系統的設計[J].產業與科技論壇,2014(13):65-78.
[12]常瑞麗,韓軍.雙容水箱液位控制系統的開發與研究[J].機床與液壓,2014(42):166-169.
[13]曹紅英,鄧娜.液位串級控制系統控制器參數優化整定分析[J].開封大學學報,2015(29):89-92.
[14]陳星,魯玲.一種基于OPC通訊的自適應模糊PID控制優化設計[J].工業控制與應用,2014(33):17-21.
[15]徐銀梅,李擎,董潔.自動化實訓實驗室的建設與實踐[J].實驗技術與管理,2016(33)240-244.
[16]周洋,沈雷,孫閩紅,等.主動式實驗教學法的探索與實踐[J].實驗室科學,2012,15(5):14-16.