當(dāng)前位置:機(jī)電之家首頁(yè) >> 電工園地>> 應(yīng)用案例 >> 設(shè)計(jì)參考 >> 羅克韋爾RSView32和MATLAB之間的通訊
羅克韋爾RSView32和MATLAB之間的通訊




摘 要: MATLAB是一種具有強(qiáng)大的矩陣處理功能和繪圖功能的應(yīng)用軟件.在許多復(fù)雜工程應(yīng)用中,需要將MATLAB和其他軟件交互協(xié)同工作.本文介紹了MATLAB與羅克韋爾公司的RSView32的特點(diǎn),并重點(diǎn)論述了他們之間的通訊方法.

關(guān)鍵詞: MATLAB軟件 RSView32軟件 動(dòng)態(tài)數(shù)據(jù)交換 ActiveX對(duì)象 VBA程序

The Communication between RSView32 and MATLAB
Electric Department of Liaoning Technical University Zhulei Leijianjun Changxiaoheng Liaoning Fuxin 123000
Automatic Department of Northeastern University at Qinhuangdao Gudeying Hebei Qinhuangdao 066004

Abstract: MATLAB is an internet application which has powerful function in matrix disposing and plotting. There is growing requirement of interbbbbbb between MATLAB and other applications. This paper introduces the characteristic of MATLAB and RSView32. It also emphasizes the communication bbbbbbs between the two applications.
Keywords: MATLAB RSView32 DDE ActiveX VBA


一.MATLAB簡(jiǎn)介
  MATLAB是MathWorks公司于1984年推出的一套高性能的數(shù)值計(jì)算軟件,它集數(shù)值分析,矩陣運(yùn)算,信號(hào)處理和圖形顯示于一體,構(gòu)成了一個(gè)方便,界面友好的用戶環(huán)境.它還將各類問(wèn)題的求解工具集成在不同的ToolBox(工具箱)中,可用來(lái)求解特定學(xué)科問(wèn)題,具有可擴(kuò)展性,易學(xué)易用性和高效性.由于MATLAB具有如此之多的優(yōu)點(diǎn),它已經(jīng)成為應(yīng)用于線性代數(shù),自動(dòng)控制理論,數(shù)理統(tǒng)計(jì),數(shù)字信號(hào)處理,時(shí)間序列分析,動(dòng)態(tài)系統(tǒng)仿真等高級(jí)課程的基本教學(xué)工具.在研究單位,工業(yè)部門,MATLAB也被廣泛用于研究和解決各種工程問(wèn)題.
  雖然MATLAB本身是個(gè)完整的程序開(kāi)發(fā)和數(shù)據(jù)處理環(huán)境,但由于自身存在一些不足,如人機(jī)界面設(shè)計(jì)不方便,不能訪問(wèn)硬件等,也經(jīng)常要和其他軟件協(xié)同工作.

二.RSView32簡(jiǎn)介
  RSView32是由Rockwell Software公司開(kāi)發(fā)的一種對(duì)自動(dòng)控制設(shè)備或生產(chǎn)過(guò)程進(jìn)行高速與有效的監(jiān)視和控制,以Microsoft bbbbbbs NT或bbbbbbs 95 為平臺(tái)的MMI(人機(jī)接口)軟件包; 它是第一個(gè)在圖形顯示中利用ActiveX,VisualBasic Application,OPC(面向過(guò)程控制的OLE)的MMI產(chǎn)品,提供了監(jiān)視,控制和數(shù)據(jù)采集功能;是一個(gè)可擴(kuò)展性強(qiáng),監(jiān)視性能高并有很高再利用性的監(jiān)控組態(tài)軟件包.它具有提供面向?qū)ο蟮膭?dòng)畫圖形,開(kāi)放的數(shù)據(jù)庫(kù)格式,歷史數(shù)據(jù)存儲(chǔ),增強(qiáng)的趨勢(shì)分析,報(bào)警,引導(dǎo)的標(biāo)簽創(chuàng)建和事物探測(cè)的能力.

三. 建立RSView32和MATLAB的通訊
  因?yàn)镽SView32和MATLAB在各自的領(lǐng)域中有著極強(qiáng)的特點(diǎn),將二者連接起來(lái)會(huì)充分發(fā)揮各自的優(yōu)勢(shì),在控制系統(tǒng)仿真,教學(xué)軟件開(kāi)發(fā)等領(lǐng)域有著廣泛的應(yīng)用. MATLAB與RSView32的通訊大致有兩種.一種是使用動(dòng)態(tài)數(shù)據(jù)交換DDE來(lái)實(shí)現(xiàn),另一種是通過(guò)ActiveX控件來(lái)實(shí)現(xiàn).
  下面分別就這兩種建立通訊方法進(jìn)行介紹.

1.使用DDE服務(wù)建立MATLAB和組態(tài)軟件RSView32的通訊.
(1)DDE簡(jiǎn)介
  動(dòng)態(tài)數(shù)據(jù)交換(Dynamic Data Exchange)技術(shù),是隨著Microsoft bbbbbbs的應(yīng)用而發(fā)展起來(lái)的一門新技術(shù).因?yàn)閎bbbbbs允許用戶進(jìn)行多窗口,多任務(wù)工作,所以它提供了一種支持在兩個(gè)應(yīng)用程序之間動(dòng)態(tài)地交換數(shù)據(jù)信息的功能,這樣的功能就是DDE. 在bbbbbbs環(huán)境下, DDE是應(yīng)用程序之間實(shí)時(shí)交換數(shù)據(jù)的有效方法, 它是不同應(yīng)用程序之間共享數(shù)據(jù)的一個(gè)協(xié)議. DDE有三種會(huì)話方式.分別為冷鏈接,熱鏈接和溫鏈接.
• 冷鏈接
由客戶程序傳播一條啟動(dòng)觸發(fā)消息來(lái)開(kāi)始冷鏈接,則服務(wù)器程序向客戶程序提供一次數(shù)據(jù).當(dāng)客戶還需要服務(wù)器提供更多次的數(shù)據(jù)時(shí),客戶程序必須重新傳播啟動(dòng)觸發(fā)消息.
• 熱鏈接
服務(wù)器程序已經(jīng)被訪問(wèn)的數(shù)據(jù)可能會(huì)隨著時(shí)間的推移而發(fā)生變化,在冷鏈接中, 如果客戶不傳播啟動(dòng)觸發(fā)消息, 則變化了的數(shù)據(jù)不會(huì)傳給客戶, 而在熱鏈接中, 服務(wù)器會(huì)自動(dòng)將變化了的數(shù)據(jù)傳送給客戶.
• 溫鏈接
溫鏈接綜合了熱鏈接和冷鏈接的特點(diǎn),客戶只希望被通知數(shù)據(jù)是否發(fā)生了變化而不一定要立刻得到新的數(shù)據(jù), 只有當(dāng)客戶知道數(shù)據(jù)發(fā)生了變化并需要獲得它時(shí), 再啟動(dòng)與冷鏈接相同的會(huì)話.
MATLAB支持兩種鏈接方式,一種為熱鏈接方式,一種為溫鏈接方式.
(2)在MATLAB中使用DDE
  MATLAB提供了有關(guān)DDE的一些基本函數(shù),這里做一個(gè)簡(jiǎn)單介紹:
• ddeadv():在 MATLAB與應(yīng)用程序之間建立連接.
• ddeexec():發(fā)出執(zhí)行命令給應(yīng)用程序.
• ddeinit():初始化 MATL AB 與其它應(yīng)用程序之間的 DDE會(huì)話.
• ddepoke():MATLAB發(fā)送數(shù)據(jù)給 DDE應(yīng)用程序.
• ddereq():從應(yīng)用程序請(qǐng)求數(shù)據(jù).
• ddeterm():在 MATLAB與應(yīng)用程序之間終止DDE會(huì)話.
• ddeunadv():在 MATLAB 與應(yīng)用程序之間釋放連接.
(3)設(shè)置RSView32的DDE通訊
  在MATLAB中設(shè)計(jì)完程序之后,還需要在RSView32中啟動(dòng)DDE服務(wù)器. 方法有兩種:
•用啟動(dòng)宏文件來(lái)啟動(dòng)DDE服務(wù)器 在RSView32項(xiàng)目管理器中,選擇邏輯與控制文件夾中的宏文件,在宏文件中輸入啟動(dòng)時(shí)要執(zhí)行的啟動(dòng)DDE服務(wù)的命令DDEServeOn和DDEPokeEnable.
•直接在項(xiàng)目管理器中的STARTUP窗口中選中OPC/DDE服務(wù)器也將啟動(dòng)DDE服務(wù)器. 這里舉個(gè)例子:
我們想在MATLAB中求出轉(zhuǎn)速反饋單閉環(huán)直流調(diào)速系統(tǒng)時(shí)域響應(yīng),將速度值送回到RSView32的"oneloop\n"標(biāo)記中,并繪制出仿真趨勢(shì)圖.由于用MATLAB求時(shí)域響應(yīng)是一次性的計(jì)算,只能求出最終穩(wěn)態(tài)的常數(shù),不適合仿真時(shí)域響應(yīng)曲線,因此想到了使用DDE的熱鏈接功能,從RSView32中每隔一秒向MATLAB中送入一個(gè)時(shí)間值,將該時(shí)間值送入已經(jīng)建立好的轉(zhuǎn)速反饋單閉環(huán)直流調(diào)速系統(tǒng)時(shí)域響應(yīng)函數(shù)中,計(jì)算出函數(shù)值(即速度值)再送回到RSView32的"oneloop\n"標(biāo)記中.
  操作步驟為:
•在MATLAB的Simubbbb中建立轉(zhuǎn)速反饋單閉環(huán)直流調(diào)速系統(tǒng)的仿真模型.
•以系統(tǒng)時(shí)鐘為基礎(chǔ),在RSView32中創(chuàng)建衍生標(biāo)記(Derive Tag)oneloop\t=system\Second/100, 使該標(biāo)記相當(dāng)于送入系統(tǒng)時(shí)域響應(yīng)的仿真時(shí)鐘.
• 編制一個(gè)M文件,將DDE功能集成在其中.RSView32作為服務(wù)器端,MATLAB作為客戶端,因此Service設(shè)為'RTData',這是RSView32在DDE通訊中通用的服務(wù)者名稱;topic設(shè)為該RSView32項(xiàng)目名稱;item選擇要傳送數(shù)據(jù)的RSView32中的標(biāo)記, 這里選擇"oneloop\t",這樣使用DDE就可以將MATLAB和組態(tài)軟件RSView32動(dòng)態(tài)鏈接起來(lái),并實(shí)現(xiàn)了動(dòng)態(tài)數(shù)據(jù)的交換.
•在RSView32中啟動(dòng)DDE.
•在RSView32中嵌入趨勢(shì)圖并設(shè)置相應(yīng)的標(biāo)記(Tag),這里設(shè)為oneloop\n. 這樣,在MATLAB中仿真調(diào)速模型的時(shí)候就能在RSView32的趨勢(shì)圖中實(shí)時(shí)表現(xiàn)出來(lái).

2.使用ActiveX控件建立MATLAB與組態(tài)軟件RSView32的通訊
(1) ActiveX簡(jiǎn)介
  ActiveX是Microsoft公司提供的一種用于模塊集成的新協(xié)議.它是Visual Basic工具箱的擴(kuò)充部分.ActiveX部件是一些遵循ActiveX規(guī)范編寫的可執(zhí)行代碼,例如一個(gè).exe,.dll, .ocx文件.在程序中加入ActiveX控件后,它將成為開(kāi)發(fā)和運(yùn)行環(huán)境的一部分,并為應(yīng)用程序提供更新的功能.ActiveX部件特有的方法和屬性大大的增強(qiáng)了程序設(shè)計(jì)者的能力和靈活性.
  當(dāng)前的新軟件一般都支持ActiveX控件的嵌入,MATLAB提供了ActiveX控件的嵌入,RSView32不但有ActiveX控件的嵌入,還提供了Visual Basic編輯器,因此MATLAB和RSView32的通訊可以通過(guò)ActiveX控件實(shí)現(xiàn).
(2)在RSView32 中創(chuàng)建ActiveX對(duì)象
  在VBA應(yīng)用程序中可以創(chuàng)建ActiveX對(duì)象.值得注意的是,在系統(tǒng)注冊(cè)表中MATLAB的
ActiveX對(duì)象名固定為"Matlab. Application".具體如下:
Dim Matlab as bbbbbb
Set Matlab=Createbbbbbb("Matlab.Application")
  這樣就可以使用這個(gè)對(duì)象所包含的各種方法來(lái)實(shí)現(xiàn)對(duì)MATLAB的調(diào)用.
MATLAB Application對(duì)象含有3個(gè)方法,具體功能如下表:
Execute 執(zhí)行一條由字符串決定的MATLAB命令.
PutFullMarix 向MATLAB寫入一個(gè)一或二維數(shù)組的數(shù)據(jù).
GetFullMatrix 從MATLAB讀取一個(gè)一或二維數(shù)組的數(shù)據(jù).
  舉個(gè)例子:在RSView32的VBA中創(chuàng)建一個(gè)窗口Userbbbb1,在上面創(chuàng)建一個(gè)按鈕,編程如下:
Private Sub CommandButton1_Click()
Dim Matlab As bbbbbb
Dim Result As bbbbbb
Set Matlab = Createbbbbbb("Matlab.Application")
Result = Matlab.Execute("surf(peaks)")
End Sub
在ThisProject中編寫如下函數(shù):
Public Sub begin()
Userbbbb1.Show
End Sub
  這樣在RSView32中只要使用使用命令 vbaExec begin就會(huì)彈出你設(shè)定的窗口,點(diǎn)擊上面的按鈕,就會(huì)啟動(dòng)MATLAB命令窗并出現(xiàn)你需要的圖形.

四. 結(jié) 論
  MATLAB軟件包具有強(qiáng)大的數(shù)值計(jì)算功能 RSView32具有強(qiáng)大的人機(jī)界面,實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng),第三方程序接口和控制組件控制功能,將二者結(jié)合起來(lái),會(huì)使控制系統(tǒng)的計(jì)算機(jī)輔助設(shè)計(jì)和有關(guān)的多媒體課件的開(kāi)發(fā)更加方便,有效.

參考文獻(xiàn):
【1】 王穎 , 《ActiveX:從Visual Basic 6.0 調(diào)用MATLAB的實(shí)現(xiàn)方法》, 機(jī)電工程,1999年第5期.
【2】 劉滿華,任正云, 邵惠鶴. 《監(jiān)控平臺(tái)軟件與MATLAB的DDE通訊》,微型電腦應(yīng)用 ,2002年第18卷第一期.
【3】 薛定宇 , 《科學(xué)運(yùn)算語(yǔ)言MATLAB 5.3 程序設(shè)計(jì)與應(yīng)用》, 清華大學(xué)出版社, 2000.
【4】 Rockwell Software Inc.,RSView32 User's Guide ,1998.
 

 
遼寧工程技術(shù)大學(xué)電氣工程系 祝磊 雷建軍 常曉恒 遼寧阜新 123000

東北大學(xué)秦皇島分校自動(dòng)化工程系 顧德英 河北秦皇島 066004
作者:未知 點(diǎn)擊:1043次 [打印] [關(guān)閉] [返回頂部]
本文標(biāo)簽:羅克韋爾RSView32和MATLAB之間的通訊
* 由于無(wú)法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報(bào)酬未能及時(shí)支付,在此深表歉意,請(qǐng)《羅克韋爾RSView32和MATLAB之間的通訊》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
電子樣本

SN系列樣冊(cè)
:鞏經(jīng)理
:13915946763
:南京塞姆泵業(yè)有限公司
個(gè)人求購(gòu)

A 【求購(gòu)】  鐵路接觸網(wǎng)...  2025-12-11
 【求購(gòu)】  西門子ET...  2025-12-11
唐多 【求購(gòu)】  DCS系統(tǒng)...  2025-12-11
康經(jīng)理 【求購(gòu)】  鈦1混合器  2025-12-10
陳圣英 【求購(gòu)】  金剛石刻刀  2025-12-10
汪先生 【求購(gòu)】  變壓器套管  2025-12-10
武女士 【求購(gòu)】  循環(huán)冷卻水...  2025-12-9
朱經(jīng)理 【求購(gòu)】  華乘局放  2025-12-9
VIP公司推薦