馮 兼,孟亞男
(吉林化工學(xué)院 信息與控制工程學(xué)院,吉林 吉林 132022)
OPC(OLE for Process Control)由世界上一些著名的軟硬件公司聯(lián)合建立,主要用于實(shí)現(xiàn)不同平臺(tái)數(shù)據(jù)間的實(shí)時(shí)交換,被廣泛應(yīng)用于工業(yè)控制領(lǐng)域.目前,國(guó)內(nèi)主流的監(jiān)控組態(tài)軟件已經(jīng)全面支持OPC相關(guān)服務(wù),而且MATLAB軟件自7.0版本也集成了OPC工具箱,為數(shù)據(jù)的讀寫(xiě)和處理提供了便利.因此,學(xué)者們關(guān)于OPC技術(shù)的研究與應(yīng)用更加廣泛,借助數(shù)據(jù)采集卡,利用OPC接口技術(shù)建立串口通信,與監(jiān)控組態(tài)軟件進(jìn)行數(shù)據(jù)交換,從而實(shí)現(xiàn)智能算法在設(shè)備上的應(yīng)用[1-2].本文在同一臺(tái)電腦建立OPC服務(wù)器和客戶端,較為詳細(xì)的介紹了建立過(guò)程,并進(jìn)行了數(shù)據(jù)交換仿真實(shí)驗(yàn)的設(shè)計(jì),通過(guò)仿真結(jié)果可以看出,利用OPC技術(shù)完成了不同平臺(tái)間數(shù)據(jù)的交換,效果良好.
自MATLAB/Simulink 7.0版本開(kāi)始,OPC Toolbox開(kāi)始封裝在軟件中,只要遵循通用規(guī)則,就可以進(jìn)行使用.OPC是一套標(biāo)準(zhǔn)的OLE/DCOM接口協(xié)議,其規(guī)范由OPC客戶端(OPC Client)和OPC服務(wù)器(OPC Server)兩個(gè)部分組成.仿真環(huán)境的基本結(jié)構(gòu)如圖1所示,MATLAB/Simulink為OPC客戶端,控制程序在MATLAB中實(shí)現(xiàn),組態(tài)王為OPC服務(wù)器,在組態(tài)王中進(jìn)行畫(huà)面的監(jiān)控,利用OPC技術(shù)可以在同一臺(tái)計(jì)算機(jī)上實(shí)現(xiàn)數(shù)據(jù)交換[3].
圖1 OPC數(shù)據(jù)交換基本框圖
本文使用的組態(tài)王為7.5 sP3版本,不同版本的組態(tài)王在配置時(shí)可能會(huì)有一些差異,但一般影響不大.在組態(tài)王設(shè)備中選擇OPC服務(wù)器,在“網(wǎng)絡(luò)節(jié)點(diǎn)名”中填寫(xiě)“\loaclhost”,選中右側(cè)“KingView.View.1”,其他按照默認(rèn)配置即可,設(shè)置完成的OPC服務(wù)器畫(huà)面如圖2所示[4].
圖2 組態(tài)王OPC服務(wù)器參數(shù)配置圖
服務(wù)器配置完成后,在數(shù)據(jù)詞典中添加變量.組態(tài)王新建的OPC變量類型為I/O型,變量名需全英文,以便MATLAB/Simulink中引用;“連接設(shè)備”需要選擇已經(jīng)建立完成的OPC服務(wù)器,再按照實(shí)際要求選擇變量的其他屬性即可,如圖3所示.
圖3 變量參數(shù)設(shè)置
MATLAB首次使用OPC服務(wù)時(shí),需要進(jìn)行安裝與注冊(cè).一般在MATLAB根目錄下,toolboxopc子文件夾中帶有“.msi”O(jiān)PC控件,安裝成功后就可以使用OPC組件.MATLAB/Simulink自帶的OPC工具箱主要由OPC Configuration、OPC Read、OPC Write 3個(gè)模塊構(gòu)成,配置好OPC服務(wù)器,就可以用讀、寫(xiě)模塊進(jìn)行數(shù)據(jù)的交換.在OPC Configuration模塊中,需要對(duì)KingView.View.1服務(wù)器進(jìn)行連接,服務(wù)器連接成功后可能看不到變量,但不影響變量的調(diào)用與連接;OPC Read 和OPC Write模塊功能類似,用來(lái)從服務(wù)器中進(jìn)行讀寫(xiě)數(shù)據(jù),但在添加變量時(shí),格式必須遵循“組態(tài)王變量名.Value”[5].
以雙容水箱的實(shí)驗(yàn)設(shè)備為仿真背景,雙容水箱的模型一般可等效為二階加純滯后結(jié)構(gòu),且二階系統(tǒng)具有一定的普遍性[6].獲取數(shù)據(jù)后經(jīng)過(guò)系統(tǒng)辨識(shí)工具,再經(jīng)過(guò)整理,得到的被控對(duì)象模型函數(shù)如式(1)所示.
(1)
獲得被控模型后,需要在Simulink環(huán)境下,完成系統(tǒng)模型的搭建,如圖4所示[7].本文以傳統(tǒng)PID控制方案為例,經(jīng)調(diào)試,設(shè)定Kp=0.7,Ki=0.25,Kd=5;“OPC Read”連接變量為“Y.Value”,對(duì)應(yīng)組態(tài)王數(shù)據(jù)變量的Y,用于給定值的輸入;“OPC Write”連接變量為“X.Value”,對(duì)應(yīng)組態(tài)王數(shù)據(jù)變量的X,用于實(shí)際值的輸出與顯示;其他參數(shù)根據(jù)實(shí)際需要進(jìn)行設(shè)置即可[8].
圖4 Simulink仿真連接圖
OPC通信技術(shù)的關(guān)鍵在于服務(wù)器與客戶端的創(chuàng)建,在完成整體仿真系統(tǒng)搭建之后,就能夠進(jìn)行數(shù)據(jù)交換的仿真實(shí)驗(yàn).打開(kāi)模型文件,系統(tǒng)自動(dòng)運(yùn)行組態(tài)王控制界面,同時(shí)調(diào)用組態(tài)王OPC服務(wù)器,開(kāi)始仿真測(cè)試.組態(tài)王仿真結(jié)果如圖5所示,Simulink仿真結(jié)果如圖6所示.
圖5 組態(tài)王實(shí)時(shí)曲線
時(shí)間/s圖6 Simulink仿真結(jié)果圖
仿真時(shí)間設(shè)定為200 s,從仿真結(jié)果可以看出曲線基本相同,但還存在著差異.當(dāng)給定值設(shè)置為2時(shí),圖5中虛線為系統(tǒng)輸入,實(shí)線為系統(tǒng)輸出,曲線首次達(dá)到設(shè)定值所需時(shí)間約為27.3 s,調(diào)節(jié)時(shí)間約為57.2 s;圖6中輸出曲線首次達(dá)到設(shè)定值所需時(shí)間約為24.13 s,調(diào)節(jié)時(shí)間約為55.31 s.當(dāng)曲線基本趨于穩(wěn)定后,在組態(tài)王界面中改變輸入值為1,待曲線再次達(dá)到穩(wěn)定后,改變輸入值為3,從仿真曲線圖5中可以看出,系統(tǒng)約有2 s的滯后時(shí)間.
通過(guò)OPC技術(shù)可以實(shí)現(xiàn)跨平臺(tái)的數(shù)據(jù)交換,本文較為詳細(xì)地?cái)⑹隽朔?wù)器和客戶端的搭建過(guò)程,建立了MATLAB與組態(tài)王通信,并通過(guò)仿真實(shí)驗(yàn)進(jìn)行了驗(yàn)證.經(jīng)過(guò)對(duì)比分析,在數(shù)據(jù)交換的過(guò)程中雖然存在一定的滯后問(wèn)題,導(dǎo)致數(shù)據(jù)傳輸不能同步進(jìn)行,但實(shí)現(xiàn)了不同平臺(tái)之間數(shù)據(jù)的交換,便于對(duì)數(shù)據(jù)的分析與處理,效果比較理想.