技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于ActiveX協(xié)議的組態(tài)軟件RSView32與matlab的通信

基于ActiveX協(xié)議的組態(tài)軟件RSView32與matlab的通信

時(shí)間:2008-08-05 11:25:00來(lái)源:ronggang

導(dǎo)語(yǔ):?在工業(yè)控制領(lǐng)域,組態(tài)軟件用于現(xiàn)場(chǎng)監(jiān)控時(shí)計(jì)算能力不強(qiáng),難以實(shí)現(xiàn)復(fù)雜的控制策略,而數(shù)學(xué)軟件Matlab可完成復(fù)雜的運(yùn)算。在組態(tài)軟件與matlab二者間建立通信可實(shí)現(xiàn)優(yōu)勢(shì)互補(bǔ)
摘 要:在工業(yè)控制領(lǐng)域,組態(tài)軟件用于現(xiàn)場(chǎng)監(jiān)控時(shí)計(jì)算能力不強(qiáng),難以實(shí)現(xiàn)復(fù)雜的控制策略,而數(shù)學(xué)軟件Matlab可完成復(fù)雜的運(yùn)算。在組態(tài)軟件與matlab二者間建立通信可實(shí)現(xiàn)優(yōu)勢(shì)互補(bǔ)。該文基于ActiveX技術(shù),詳細(xì)介紹了組態(tài)軟件RSView32與matlab間進(jìn)行通信的步驟。該文的研究工作為在工業(yè)控制領(lǐng)域中使用組態(tài)軟件來(lái)完成復(fù)雜的控制算法開(kāi)辟了新的途徑,為測(cè)控系統(tǒng)與仿真系統(tǒng)的集成提供了新的技術(shù)支持。 關(guān)鍵詞:工業(yè)控制 組態(tài)軟件RSView32 數(shù)學(xué)軟件matlab 通信 1、前言   在工業(yè)控制領(lǐng)域,如何更有效地實(shí)現(xiàn)控制算法一直是人們普遍關(guān)心的問(wèn)題。目前,工控組態(tài)軟件具有豐富的圖形功能,強(qiáng)大的與硬件通信的能力,但是它的計(jì)算能力不強(qiáng),難以實(shí)現(xiàn)復(fù)雜的控制策略。MATLAB語(yǔ)言具有強(qiáng)大的科學(xué)運(yùn)算能力,借助其自帶的工具箱可實(shí)現(xiàn)各種復(fù)雜算法的運(yùn)算[1]。同時(shí),在工業(yè)測(cè)控系統(tǒng)開(kāi)發(fā)過(guò)程中,實(shí)現(xiàn)測(cè)控系統(tǒng)與仿真系統(tǒng)的集成是當(dāng)前的一個(gè)發(fā)展方向[2]。因此,在工業(yè)控制中將工控組態(tài)軟件與MATLAB相結(jié)合,實(shí)現(xiàn)優(yōu)勢(shì)互補(bǔ)一直是自動(dòng)控制領(lǐng)域研究的熱點(diǎn)。   RSView32是Rockwell公司開(kāi)發(fā)的一種組態(tài)軟件包,它是第一個(gè)在圖形顯示中利用ActiveX、VisualBasic Applications、OPC(面向過(guò)程控制的OLE)的MMI產(chǎn)品,提供了監(jiān)視、控制和數(shù)據(jù)采集功能。在RSView32與matlab間建立通信的方式目前有DDE動(dòng)態(tài)數(shù)據(jù)交換技術(shù)和ActiveX技術(shù)二種方式。ActiveX技術(shù)是在DDE的基礎(chǔ)上發(fā)展起來(lái)的,但它們之間還是有區(qū)別的,ActiveX在調(diào)用時(shí)不需要服務(wù)者事先已經(jīng)運(yùn)行,它實(shí)際上是在調(diào)用一種部件,而無(wú)須要求該部件對(duì)應(yīng)的程序正在運(yùn)行,這會(huì)使得其功能更加強(qiáng)大,語(yǔ)句結(jié)構(gòu)更簡(jiǎn)單,它的唯一要求就是MATLAB在程序運(yùn)行的機(jī)器上已經(jīng)安裝并可以成功運(yùn)行[3]。采用DDE方式進(jìn)行通信已在一些論文中多次提到,但采用ActiveX技術(shù)在RSView32與matlab間通信鮮見(jiàn)有詳細(xì)的描述,本文詳細(xì)地介紹了二者間進(jìn)行ActiveX技術(shù)通信的步驟[4]。 2、實(shí)現(xiàn)通信的過(guò)程   首先在RSView32的主界面中輸入所需的參數(shù),通過(guò)通信將數(shù)據(jù)傳送給Matlab進(jìn)行控制運(yùn)算,然后將結(jié)果傳送回RSView32,并通過(guò)其主界面演示出相應(yīng)的結(jié)果。其通信流程見(jiàn)下圖1。 3、使用ActiveX控件建立通信的步驟:   3.1 ActiveX對(duì)象的創(chuàng)建   在VBA中定義MATLAB對(duì)象前,必須在Windows [align=center] 圖1 RSView32與MATLAB通信步驟框圖[/align]   下安裝RSView32和MATLAB6.1軟件,并在RSView32的VBA中引用MATLAB程序。MATALB的ActiveX對(duì)象名固定為”Matlab.application”,其具體程序如下:   ‘將MATLAB實(shí)例對(duì)象定義為公共變量   Public objMATLAB As Object   Private Sub form_initialize()   ‘創(chuàng)建matlab的實(shí)例   Set objMATLAB =   CreateObject("matlab.application")   End Sub   3.2在RSView32的人機(jī)界面中向tag中讀入一變量值   為了能接收輸入值,在界面上設(shè)置Solid Animation ,并讓其對(duì)應(yīng)一個(gè)標(biāo)簽tag,在VBA中讓該標(biāo)簽名與一變量相關(guān)聯(lián):   Set tAvalve7 = gTagDb("inoil\Avalve7")   這里Avalve7是與Solid Animation相對(duì)應(yīng)的一個(gè)標(biāo)簽名,tAvalve7是在VBA中定義的一個(gè)變量,在人機(jī)界面中通過(guò)Solid Animation滑動(dòng)動(dòng)畫拖動(dòng)滾動(dòng)條即可輸入數(shù)據(jù),該數(shù)據(jù)并儲(chǔ)存在VBA中的tAvalve7.value中。   3.3在VBA中用PutFullMarix命令將該數(shù)寫入MATLAB中   用PutFullMarix命令向MATLAB中寫入數(shù)據(jù)格式為:   Call matlab.putfullMatrix(“a”, “base”,   Mreal,Mimag)   其中 a 為Matlab中的矩陣變量名,base 為變量類型,Mreal 為VBA程序中的實(shí)部矩陣,Mimag為VBA中的虛部矩陣。   為了測(cè)試PutFullMarix命令,在RSView32的VBA中設(shè)計(jì)一窗體,其中有一CommandButton3,對(duì)CommandButton3_Click()事件編程序如下,運(yùn)行時(shí)在窗體中點(diǎn)擊CommandButton3,則會(huì)通過(guò)命令PutFullMatrix()實(shí)現(xiàn)數(shù)據(jù)從VBA傳送到MATLAB中,并通過(guò)getfullmatrix()命令又傳送回VBA中。最后在Text1中顯示結(jié)果”90”。   Private Sub CommandButton3_Click()   Dim matlab As Object   Dim result As String   Set matlab =   CreateObject("matlab.application")   Dim sita(1 To 6) As Double   sita(1) = 0: sita(2) = 90: sita(3) = 0   sita(4) = -90: sita(5) = 0: sita(6) = 0   Dim Mreal(1 To 6, 1 To 1) As Double   Dim Mimag() As Double   Dim sitam() As Double   Dim I As Integer   Dim mreal2(1 To 6, 1 To 1) As Double   Dim mimag2() As Double   For I = 1 To 6   Mreal(I, 1) = sita(I)   Next I   Call matlab.PutFullMatrix("sitam", "base", Mreal, Mimag)   Call matlab.getfullmatrix("sitam", "base", mreal2, mimag2)   Text1 = mreal2(2, 1)   End Sub   3.4在VBA中用Execute命令執(zhí)行一條MATLAB命令例如,下面的程序?qū)⑼瓿纱蜷_(kāi)Matlab的Command   Windows 窗口以及在Figure No.1窗口中顯示一個(gè)三   維著色表面圖形。   ‘將MATLAB實(shí)例對(duì)象定義為公共變量   Public objMATLAB As Object   Private Sub form_initialize()   ‘創(chuàng)建matlab的實(shí)例   Set objMATLAB =   CreateObject("matlab.application")   result = objMATLAB.execute("surf(peaks)")   End Sub   在RSView32中的界面上可設(shè)置命令按鈕,如”測(cè)試”,在該按鈕的右鍵菜單中打開(kāi)”Edit Button1”,在如下圖2所示界面中,用Vbaexec begin來(lái)調(diào)用在VBA程序中的begin函數(shù),該函數(shù)的程序?yàn)?:   Private Sub CommandButton1_Click()   Dim matlab As Object   Dim result As String   Set matlab =   CreateObject("matlab.application")   result = matlab.Execute("surf(peaks)")   End Sub   Public Sub begin()   UserForm6.Show   End Sub [align=center] 圖2 RSView32中的按鈕設(shè)置界面[/align]   這樣,在RSView32的界面中,就可用”測(cè)試”按鈕來(lái)調(diào)用Matlab中的Command Windows 窗口以及在Figure No.1窗口中顯示一個(gè)三維著色表面圖形。   3.5在VBA中用GetFullMarix命令讀取結(jié)果   執(zhí)行本命令將matlab中的一個(gè)矩陣變量傳送到VBA程序的1維或2維數(shù)組中,其格式為:   Call matlab.getfullmatrix(“a”,”base”,   MReal,Mimag)   例如下面的程序?qū)⑼瓿蓮腗atlab中的b數(shù)組中傳送數(shù)據(jù)到VB中的Mreal1數(shù)組中。   MATLAB.execute "b=[1,2;4,7]"   Dim mreal1(1 To 2, 1 To 2) As Double   Dim mimag1() As Double   Call MATLAB.getfullmatrix("b", "base", mreal1, mimag1)   Text1 = mreal1(2, 2) 4、結(jié)論   本文采用上述步驟成功地在RSView32與matlab二者間建立了通信,從而利用各自的優(yōu)勢(shì),將復(fù)雜的運(yùn)算由matlab完成,由RSView32實(shí)現(xiàn)良好的人機(jī)界面和豐富的圖形顯示。本文的工作為在工業(yè)控制領(lǐng)域中使用組態(tài)軟件來(lái)完成復(fù)雜的控制算法開(kāi)辟了新的途徑,為測(cè)試系統(tǒng)與仿真系統(tǒng)的集成提供了新的技術(shù)支持。 參考文獻(xiàn)   [1]石瑩,洪銳,錢曉龍.MATLAB與組態(tài)軟件的數(shù)據(jù)交換技術(shù).儀器儀表學(xué)報(bào).2003,24(4):337-340   [2]吳躍斌,謝樹(shù)俊,徐立等.液壓仿真技術(shù)的現(xiàn)在和未來(lái).液壓與氣動(dòng),2002(11):1-3   [3]王穎,胡宗軍,鄒介棠等.ActiveX:從Visual Basic6.0調(diào)用MATLAB的實(shí)現(xiàn)方法.機(jī)電工程.1999(5)   [4] 徐江華,孫榮,邵惠鶴.博士論文:基于組態(tài)王、Excel和Matlab的PID自整定仿真軟件.計(jì)算機(jī)工程.2003,29(3):27-29

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:帶反并聯(lián)二極管IGBT中的二極...

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.surachana.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見(jiàn)反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)