技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于DDE的iFix與Matlab的數(shù)據(jù)通信

基于DDE的iFix與Matlab的數(shù)據(jù)通信

時(shí)間:2008-12-29 11:09:49來(lái)源:zhangting

導(dǎo)語(yǔ):?美國(guó)通用電氣公司工業(yè)組態(tài)軟件ifix運(yùn)行穩(wěn)定、高效,多年來(lái)廣泛應(yīng)用在工業(yè)自動(dòng)化領(lǐng)域。
1 引言 美國(guó)通用電氣公司工業(yè)組態(tài)軟件ifix運(yùn)行穩(wěn)定、高效,多年來(lái)廣泛應(yīng)用在工業(yè)自動(dòng)化領(lǐng)域。與其它工業(yè)組態(tài)軟件一樣,作為人機(jī)界面軟件,fix雖然有得天獨(dú)厚的優(yōu)勢(shì),但是數(shù)學(xué)和計(jì)算功能有諸多不足。美國(guó)mathworks公司出品的數(shù)學(xué)軟件matlab是一種基于c語(yǔ)言內(nèi)核與矩陣運(yùn)算的工程計(jì)算語(yǔ)言,具有強(qiáng)大的數(shù)值計(jì)算能力和豐富的控制算法。本文用vc++實(shí)現(xiàn)fix和matlab的雙向數(shù)據(jù)通信,將matlab的運(yùn)算功能和算法引入ifixdde。 dde(動(dòng)態(tài)數(shù)據(jù)交換)是windows的一種進(jìn)程通信機(jī)制,它基于windows消息機(jī)制,兩個(gè)應(yīng)用程序之間通過(guò)傳遞消息進(jìn)行對(duì)話,這兩個(gè)程序分別被稱為服務(wù)器和客戶,dde服務(wù)器維護(hù)著其它windows程序可能使用的數(shù)據(jù),而dde客戶則是從服務(wù)器獲得這些數(shù)據(jù)的程序。 同一個(gè)windows應(yīng)用程序既可以是一個(gè)程序的客戶,也可以同時(shí)是另一個(gè)程序的服務(wù)器,一個(gè)服務(wù)器可以將數(shù)據(jù)傳給多個(gè)客戶,一個(gè)客戶也可以從多個(gè)服務(wù)器獲取數(shù)據(jù),這些都通過(guò)dde對(duì)話來(lái)定義。dde對(duì)話需要三個(gè)參數(shù):服務(wù)名、話題名、項(xiàng)目名。服務(wù)名一般同做為服務(wù)器的應(yīng)用程序同名,一個(gè)服務(wù)可提供多個(gè)話題,一個(gè)話題可提供多個(gè)項(xiàng)目,最后由項(xiàng)目名確定要交換的數(shù)據(jù)。 2 用vc++實(shí)現(xiàn)ifix和matlab dde通信的基本思路 ifix軟件既實(shí)現(xiàn)了dde服務(wù)器也實(shí)現(xiàn)了dde客戶,支持文本格式的剪貼板數(shù)據(jù)。matlab既實(shí)現(xiàn)了dde服務(wù)器也實(shí)現(xiàn)了dde客戶,作為服務(wù)器時(shí)支持文本格式、元文件圖(metafilepict)和xltable格式三種剪貼板格式,作為客戶端支持文本格式。本文用vc++程序?qū)崿F(xiàn)了dde服務(wù)器,將fix軟件和matlab都做為vc++程序客戶。三者的關(guān)系如圖1所示: [align=center] 圖1 雙向數(shù)據(jù)傳送實(shí)現(xiàn)的基本結(jié)構(gòu) [/align] 3 基于 visual c++的dde服務(wù)器程序設(shè)計(jì) 3.1 基本原理 dde協(xié)議的核心是dde消息,進(jìn)行通訊的程序之間通過(guò)傳遞消息進(jìn)行對(duì)話。dde服務(wù)器程序的主要任務(wù)是維護(hù)其它windows程序可能使用的數(shù)據(jù),實(shí)現(xiàn)dde服務(wù)器的消息循環(huán),從而處理dde客戶的各種請(qǐng)求。 3.2 程序?qū)崿F(xiàn) 采用visual c++實(shí)現(xiàn)dde服務(wù)器的程序流程圖如2所示。 [align=center] 圖2 dde服務(wù)器程序流程圖[/align] (1)在程序初始化時(shí),調(diào)用了ddeinitialize()初始化dde管理庫(kù),以參數(shù)形式提供回調(diào)函數(shù)ddecallback(),當(dāng)程序以消息形式收到待處理事務(wù)時(shí),就調(diào)用該回調(diào)函數(shù),回調(diào)函數(shù)通常寫(xiě)成switch-case的形式。分支處理不同的事務(wù);然后調(diào)用ddecreatestringhandle() 返回服務(wù)名、話題名、項(xiàng)目名的 handle,返回的類型為hsz。 (2)注冊(cè)dde服務(wù),以服務(wù)名handle為參數(shù)調(diào)用ddenameservice()。 (3)回調(diào)函數(shù)ddecallback()的原型為: hddedata expentry ddecallback(uint type,uint fmt,hconv hconv,hsz hsz1,hsz hsz2,hddedata hdata,dword dwdata1,dword dwdata2); 其中type為事務(wù)類型,fmt為交換數(shù)據(jù)的剪貼板格式,hconv為當(dāng)前對(duì)話的handle,hsz1、hsz2、hdata、dwdata1;dwdata2的意義取決于不同的事務(wù),hsz1和hsz2一般為話題名和項(xiàng)目名的handle,hdata一般是所交換數(shù)據(jù)的handle。 (4)生成各個(gè)字段的名字就是給出dde服務(wù)器名、話題名和項(xiàng)目名。 服務(wù)器名(servicename):ddetest g_hszappname=ddecreatestringhandle(g_idinst, “ddetest”, null); 話題名(topic):test1 g_hsztopicname=ddecreatestringhandle(g_idinst, “test1”, null); 各個(gè)項(xiàng)目名(items):h1、h2、ut、up、…… g_hszinitem[0]=ddecreatestringhandle(g_idinst, “h1”,null); g_hszinitem[1]=ddecreatestringhandle(g_idinst, “h2”,null); g_hszoutitem[0]=ddecreatestringhandle(g_idinst, “ut”,null); g_hszoutitem[1]=ddecreatestringhandle(g_idinst, “up”,null); 4 測(cè)試 測(cè)試要求:能夠在ifix、dde服務(wù)器和matlab中同步顯示系統(tǒng)的采集量和控制輸出。 測(cè)試方法:用ifix繪制工藝流程圖,圖上直觀地實(shí)時(shí)顯示溫度、壓力、流量、液位等過(guò)程參數(shù)。通過(guò)dde將以上參數(shù)傳輸?shù)絤atlab,進(jìn)行相應(yīng)的控制運(yùn)算。再通過(guò)dde將控制信號(hào)下傳至ifix,經(jīng)下位機(jī)實(shí)現(xiàn)對(duì)主體設(shè)備的控制操作。vc++程序作為服務(wù)器,同步地顯示所有數(shù)據(jù)。在matlab中編寫(xiě)m文件,顯示上傳的相應(yīng)數(shù)據(jù),并且給出控制電壓up(泵控制電壓)和ut(加熱電壓)。 ifix的配置:首先對(duì)ifix進(jìn)行配置,然后在ifix draw窗口建立一個(gè)odf文件,文件名為:ceshi.odf,見(jiàn)圖3。圖形界面中包含了溫度、壓力、流量、液位等七個(gè)參數(shù)和up、ut兩個(gè)控制電壓,還包括h2和up的時(shí)間曲線,該曲線圖的顯示時(shí)間為3分鐘,h2最大值為200mm水柱,up的最大值為24v。需要設(shè)置這九個(gè)量對(duì)應(yīng)模塊的dde節(jié)點(diǎn)名(或者i/o設(shè)備及i/o地址),如h2對(duì)應(yīng)的dde節(jié)點(diǎn)名為:=ddetest|test1!h2。 [align=center] 圖3 fix的圖形界面[/align] 5 結(jié)束語(yǔ) 進(jìn)一步可以將matlab程序轉(zhuǎn)化為vc++程序,與dde服務(wù)器程序一起編譯成可執(zhí)行文件在ifix中運(yùn)行,可以方便地實(shí)現(xiàn)各種算法和仿真,有較好的工程應(yīng)用前景。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:新型無(wú)弧交流接觸器的設(shè)計(jì)

下一篇:微能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)(m.u63ivq3.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 - 2024 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書(shū) | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)