時間:2008-12-29 11:09:49來源:zhangting
圖1 雙向數(shù)據(jù)傳送實現(xiàn)的基本結(jié)構(gòu) [/align]
3 基于 visual c++的dde服務(wù)器程序設(shè)計
3.1 基本原理
dde協(xié)議的核心是dde消息,進行通訊的程序之間通過傳遞消息進行對話。dde服務(wù)器程序的主要任務(wù)是維護其它windows程序可能使用的數(shù)據(jù),實現(xiàn)dde服務(wù)器的消息循環(huán),從而處理dde客戶的各種請求。
3.2 程序?qū)崿F(xiàn)
采用visual c++實現(xiàn)dde服務(wù)器的程序流程圖如2所示。
[align=center]
圖2 dde服務(wù)器程序流程圖[/align]
(1)在程序初始化時,調(diào)用了ddeinitialize()初始化dde管理庫,以參數(shù)形式提供回調(diào)函數(shù)ddecallback(),當(dāng)程序以消息形式收到待處理事務(wù)時,就調(diào)用該回調(diào)函數(shù),回調(diào)函數(shù)通常寫成switch-case的形式。分支處理不同的事務(wù);然后調(diào)用ddecreatestringhandle() 返回服務(wù)名、話題名、項目名的 handle,返回的類型為hsz。
(2)注冊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)前對話的handle,hsz1、hsz2、hdata、dwdata1;dwdata2的意義取決于不同的事務(wù),hsz1和hsz2一般為話題名和項目名的handle,hdata一般是所交換數(shù)據(jù)的handle。
(4)生成各個字段的名字就是給出dde服務(wù)器名、話題名和項目名。
服務(wù)器名(servicename):ddetest
g_hszappname=ddecreatestringhandle(g_idinst, “ddetest”, null);
話題名(topic):test1
g_hsztopicname=ddecreatestringhandle(g_idinst, “test1”, null);
各個項目名(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 測試
測試要求:能夠在ifix、dde服務(wù)器和matlab中同步顯示系統(tǒng)的采集量和控制輸出。
測試方法:用ifix繪制工藝流程圖,圖上直觀地實時顯示溫度、壓力、流量、液位等過程參數(shù)。通過dde將以上參數(shù)傳輸?shù)絤atlab,進行相應(yīng)的控制運算。再通過dde將控制信號下傳至ifix,經(jīng)下位機實現(xiàn)對主體設(shè)備的控制操作。vc++程序作為服務(wù)器,同步地顯示所有數(shù)據(jù)。在matlab中編寫m文件,顯示上傳的相應(yīng)數(shù)據(jù),并且給出控制電壓up(泵控制電壓)和ut(加熱電壓)。
ifix的配置:首先對ifix進行配置,然后在ifix draw窗口建立一個odf文件,文件名為:ceshi.odf,見圖3。圖形界面中包含了溫度、壓力、流量、液位等七個參數(shù)和up、ut兩個控制電壓,還包括h2和up的時間曲線,該曲線圖的顯示時間為3分鐘,h2最大值為200mm水柱,up的最大值為24v。需要設(shè)置這九個量對應(yīng)模塊的dde節(jié)點名(或者i/o設(shè)備及i/o地址),如h2對應(yīng)的dde節(jié)點名為:=ddetest|test1!h2。
[align=center]
圖3 fix的圖形界面[/align]
5 結(jié)束語
進一步可以將matlab程序轉(zhuǎn)化為vc++程序,與dde服務(wù)器程序一起編譯成可執(zhí)行文件在ifix中運行,可以方便地實現(xiàn)各種算法和仿真,有較好的工程應(yīng)用前景。標簽:
傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為傳動網(wǎng)(surachana.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>2025-10-31
2025-10-22
2025-10-17
2025-10-11
2025-10-09
2025-09-23