2021-4-9 | 通信技術(shù)
0引言
可視化界面軟件是在生產(chǎn)過程自動(dòng)化中解決可視化和控制任務(wù)的人機(jī)接口軟件[1]。它具有高度的實(shí)用性和組態(tài)靈活性,可開發(fā)生成友好的交互式圖形界面。但是它的數(shù)據(jù)運(yùn)算能力較弱,不易實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)處理和控制算法。比如DCS系統(tǒng)中的組態(tài)軟件,虛擬儀器軟件LabVIEW[2]等。而在數(shù)據(jù)處理和復(fù)雜控制算法的實(shí)現(xiàn)方面有突出優(yōu)勢(shì)計(jì)算機(jī)編程語言如MAT-LAB,C,C++等,由于其編程方便、使用靈活、易于移植、便于模塊化處理的特性,成為工程技術(shù)人員開發(fā)實(shí)現(xiàn)復(fù)雜算法不可或缺的實(shí)現(xiàn)工具。尤其是MATLAB語言,針對(duì)不同的工程應(yīng)用領(lǐng)域,系統(tǒng)有相應(yīng)的工具箱,這不僅能夠方便地進(jìn)行算法的設(shè)計(jì)與實(shí)現(xiàn),而且能極大地縮短開發(fā)周期。但是這些開發(fā)語言不能與工業(yè)現(xiàn)場(chǎng)設(shè)備直接進(jìn)行數(shù)據(jù)交換,而且在界面設(shè)計(jì)方面也明顯遜色于組態(tài)軟件。如何在可視化界面系統(tǒng)中,綜合采用先進(jìn)智能算法,使整個(gè)系統(tǒng)滿足生產(chǎn)過程的目標(biāo)要求,從而提高界面監(jiān)控系統(tǒng)數(shù)據(jù)處理性能,是界面監(jiān)控系統(tǒng)亟待改善和提高的課題。OPC通訊技術(shù)的出現(xiàn)為解決該問題開辟了一條有效的途徑[3]。
1開放性的OPC接口協(xié)議
OPC(ObjectLinkingandEmbeddingforProcessControl)技術(shù)即過程控制中的對(duì)象連接和嵌入技術(shù)[4],它為基于Win-dows的應(yīng)用軟件和現(xiàn)場(chǎng)過程控制架起了橋梁[5]。作為工業(yè)標(biāo)準(zhǔn)的OPC技術(shù),不僅解決了不同軟件和硬件之間的通訊障礙,而且也很好地解決了不同軟件之間由于數(shù)據(jù)格式不一致而帶來的通訊問題[6]。OPC采用典型的客戶機(jī)/服務(wù)器模式:一個(gè)OPC客戶程序可以連接一個(gè)或多個(gè)不同的OPC服務(wù)器程序,同時(shí)多個(gè)不同的OPC客戶程序也可以連接到同一個(gè)OPC服務(wù)器程序上,結(jié)構(gòu)模型如圖1所示。OPC數(shù)據(jù)存取服務(wù)器主要包括服務(wù)器對(duì)象、組對(duì)象和項(xiàng)對(duì)象。OPC服務(wù)器對(duì)象負(fù)責(zé)維護(hù)相關(guān)服務(wù)器的信息,并作為OPC組對(duì)象的包容器,可以動(dòng)態(tài)地創(chuàng)建或釋放組對(duì)象;組對(duì)象除了維護(hù)自身相關(guān)的信息外,要提供包容和組織OPC項(xiàng)對(duì)象的機(jī)制;OPC項(xiàng)對(duì)象則需維護(hù)OPC服務(wù)器中與數(shù)據(jù)有關(guān)的信息,但它并不是實(shí)際數(shù)據(jù)源,僅是指向數(shù)據(jù)源的連接。服務(wù)器對(duì)象、組對(duì)象和項(xiàng)對(duì)象之間的組織關(guān)系如圖2所示。基于OPC通訊的標(biāo)準(zhǔn)協(xié)議,是由世界上領(lǐng)先的自動(dòng)化軟、硬件廠商連同微軟公司通力開發(fā)的,它使工業(yè)控制無論是在硬件還是軟件方面都有了統(tǒng)一的依據(jù)標(biāo)準(zhǔn)[7]。在軟件方面,目前幾乎國(guó)內(nèi)外所有流行的組態(tài)軟件都支持OPC數(shù)據(jù)交換標(biāo)準(zhǔn)。而且主流的計(jì)算機(jī)編程語言,都支持OPC通訊協(xié)議。值得提出的是當(dāng)今最優(yōu)秀的科技應(yīng)用軟件之一MATLAB在其7.0以上版本中還專門集成了OPC工具箱。硬件方面,當(dāng)前幾乎所有的PLC及其他工業(yè)現(xiàn)場(chǎng)設(shè)備都支持OPC數(shù)據(jù)通訊協(xié)議[8]。
2系統(tǒng)構(gòu)架
當(dāng)前,在工業(yè)DCS系統(tǒng)中,對(duì)現(xiàn)場(chǎng)生產(chǎn)過程的控制,多數(shù)是由在監(jiān)控室中的工程技術(shù)人員根據(jù)現(xiàn)場(chǎng)監(jiān)測(cè)數(shù)據(jù)并結(jié)合工程經(jīng)驗(yàn)來完成的。這種控制方式對(duì)操作員的經(jīng)驗(yàn)有過高的依賴性。盡管在某些先進(jìn)的DCS系統(tǒng)中對(duì)一些參數(shù)的控制采用了諸如PLC等硬件來實(shí)現(xiàn),這也從一定程度上提高了控制效果,但是過于復(fù)雜的控制算法就難以實(shí)現(xiàn)了。基于OPC通訊技術(shù),設(shè)計(jì)了DCS系統(tǒng)的復(fù)雜控制算法的實(shí)現(xiàn)方法。該DCS監(jiān)控系統(tǒng)充分利用了算法軟件的運(yùn)算優(yōu)勢(shì),實(shí)現(xiàn)對(duì)工業(yè)過程的復(fù)雜、智能控制,同時(shí)也不需對(duì)原DCS系統(tǒng)進(jìn)行大的改變,控制效果也遠(yuǎn)優(yōu)于傳統(tǒng)方式。系統(tǒng)結(jié)構(gòu)框圖如圖3所示。系統(tǒng)運(yùn)行后,DCS實(shí)時(shí)數(shù)據(jù)庫系統(tǒng)按照一定的采樣頻率從生產(chǎn)現(xiàn)場(chǎng)采集的實(shí)時(shí)數(shù)據(jù)。這些數(shù)據(jù)一方面通過組態(tài)軟件顯示在系統(tǒng)的監(jiān)控界面上;另一方面,被存儲(chǔ)到DCS系統(tǒng)的歷史數(shù)據(jù)庫中,以備以后的查閱使用。而后臺(tái)的控制算法應(yīng)用程序一旦被DCS監(jiān)控系統(tǒng)喚醒,后臺(tái)控制程序?qū)凑帐孪仍O(shè)定的周期通過OPC數(shù)據(jù)交換通道讀取實(shí)時(shí)采集而來的數(shù)據(jù),然后結(jié)合數(shù)據(jù)信息并調(diào)用相應(yīng)后臺(tái)算法,計(jì)算出控制器當(dāng)前和接下來一段時(shí)間內(nèi)應(yīng)采取的控制量,并將該控制量及時(shí)地通過OPC數(shù)據(jù)交互通道傳遞到DCS實(shí)時(shí)數(shù)據(jù)平臺(tái),并由該平臺(tái)向工業(yè)現(xiàn)場(chǎng)控制器發(fā)出相應(yīng)的控制指令。從而完成一次控制動(dòng)作。后臺(tái)控制算法按照一定的周期,反復(fù)如此,直到接收到DCS實(shí)時(shí)數(shù)據(jù)平臺(tái)發(fā)出停止指令為止。
3系統(tǒng)仿真實(shí)驗(yàn)設(shè)計(jì)
為檢驗(yàn)以上系統(tǒng)構(gòu)架的可行性和控制的實(shí)時(shí)性,選擇廣泛應(yīng)用于礦山、碼頭、冶金和化工等行業(yè)的傳送帶配料系統(tǒng)為被控實(shí)驗(yàn)對(duì)象。控制器通過接收來自上位機(jī)的設(shè)定流量數(shù)據(jù)作為給定量,與實(shí)際檢測(cè)到的流量進(jìn)行比較,得出偏差,然后根據(jù)偏差來決定控制系統(tǒng)的輸出,即電流控制信號(hào),進(jìn)而控制電機(jī)的轉(zhuǎn)速,使物料流量穩(wěn)定在期望值上。基于以上的被控對(duì)象,采用力控組態(tài)軟件開發(fā)DCS仿真系統(tǒng)并用MATLAB設(shè)計(jì)相應(yīng)的控制算法,利用遠(yuǎn)程網(wǎng)絡(luò)上的另一臺(tái)計(jì)算機(jī)上運(yùn)行的simulink仿真框圖來模擬現(xiàn)場(chǎng)工業(yè)過程。
3.1DCS監(jiān)控界面的構(gòu)建
根據(jù)系統(tǒng)構(gòu)架,原有DCS系統(tǒng)不需要做大的改變和調(diào)整,只需要在后臺(tái)DCS實(shí)時(shí)數(shù)據(jù)庫中增加對(duì)相關(guān)對(duì)象的控制量即可,為驗(yàn)證系統(tǒng)構(gòu)架的可實(shí)現(xiàn)性,設(shè)計(jì)了如圖4所示的DCS仿真界面。
3.2OPC接口程序的設(shè)計(jì)實(shí)現(xiàn)
系統(tǒng)的后臺(tái)控制算法由MATALB編寫實(shí)現(xiàn),并通過OPC接口程序與DCS交換實(shí)時(shí)數(shù)據(jù)。MATLAB為OPC提供了專門的接口函數(shù),以方便創(chuàng)建和配置OPC對(duì)象,并讀寫和記錄數(shù)據(jù)。下面給出了MATLAB與三維力控組態(tài)進(jìn)行數(shù)據(jù)通信的部分程序。3.2.1MATLAB獲取實(shí)時(shí)數(shù)據(jù)da=opcda('localhost','PCAuto.OPCServer');connect(da);%與OPC本地服務(wù)端相連grp=addgroup(da);%添加組itm=additem(grp,'flag.PV');%把變量元素添加到組中;itm1=additem(grp,'def.PV');itm2=additem(grp,'out.PV');itm3=additem(grp,'u.PV');while(flag==1)r=read(itm1);%讀取設(shè)定輸入值rin=r.Value;y=read(itm2);圖5后臺(tái)模型simulink框圖yout=y.Value;上述程序?qū)崿F(xiàn)了MATLAB應(yīng)用程序?qū)Γ模茫酉到y(tǒng)的實(shí)時(shí)數(shù)據(jù)的讀取操作。后臺(tái)程序可以利用這些數(shù)據(jù)進(jìn)行計(jì)算推導(dǎo),得到下一控制周期應(yīng)該施加的控制量。3.2.2MATLAB運(yùn)算結(jié)果寫入力控實(shí)時(shí)數(shù)據(jù)庫grp=addgroup(da);%創(chuàng)建項(xiàng)目組Itm3=additem(grp,'u.PV');%把變量添加到組中…%計(jì)算控制量u的值write(itm3,u);%向力控實(shí)時(shí)數(shù)據(jù)庫寫數(shù)據(jù)通過上述程序的執(zhí)行,MATLAB的運(yùn)算結(jié)果u將被寫入到力控的實(shí)時(shí)數(shù)據(jù)庫,并由組態(tài)軟件將控制作用發(fā)送到工業(yè)現(xiàn)場(chǎng)執(zhí)行機(jī)構(gòu)。