熟女人妻水多爽中文字幕,国产精品鲁鲁鲁,隔壁的少妇2做爰韩国电影,亚洲最大中文字幕无码网站

技術頻道

娓娓工業
您現在的位置: 中國傳動網 > 技術頻道 > 技術百科 > 基于ActiveX協議的組態軟件RSView32與matlab的通信

基于ActiveX協議的組態軟件RSView32與matlab的通信

時間:2008-08-05 11:25:00來源:ronggang

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

標簽:

點贊

分享到:

上一篇:帶反并聯二極管IGBT中的二極...

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

中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網站簡介|會員服務|聯系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網-工業自動化與智能制造的全媒體“互聯網+”創新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業執照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號

主站蜘蛛池模板: 平远县| 葵青区| 正宁县| 饶平县| 新源县| 德令哈市| 昌江| 墨竹工卡县| 常德市| 出国| 仁化县| 利辛县| 平乡县| 石台县| 彭泽县| 阿坝县| 宣汉县| 汉阴县| 保亭| 日喀则市| 米林县| 嘉荫县| 甘肃省| 松溪县| 仲巴县| 荣成市| 金昌市| 林口县| 建始县| 清涧县| 渑池县| 益阳市| 防城港市| 炉霍县| 高清| 山阳县| 全州县| 凤山县| 漳平市| 平遥县| 宁陵县|