價(jià)格
¥2,020.00
型號(hào)
22A-A1P4N103
品牌
廈門(mén)光沃自動(dòng)化設(shè)備有限公司
所在地
福建省 廈門(mén)市
更新時(shí)間
2024-03-23 18:58:01
瀏覽次數(shù)
次
其他推薦產(chǎn)品
22A-A1P4N103
22A-A1P4N103
22A-A1P4N103
DDE(Dynamic Data Exchange,動(dòng)態(tài)數(shù)據(jù)交換)是進(jìn)程間通訊(InterProcess Communication,IPC)的方法。進(jìn)程間通訊(IPC)包括進(jìn)程之間和同步事件之間的數(shù)據(jù)傳遞。DDE使用共享內(nèi)存來(lái)實(shí)現(xiàn)進(jìn)程之間的數(shù)據(jù)交換以及使用DDE協(xié)議獲得傳遞數(shù)據(jù)的同步。DDE協(xié)議是一組所有的DDE應(yīng)用程序都必須遵循的規(guī)則集。DDE協(xié)議可以應(yīng)用于兩類(lèi)DDE應(yīng)用程序:類(lèi)是基于消息的DDE,第二類(lèi)是動(dòng)態(tài)數(shù)據(jù)交換管理庫(kù)(DDEML)應(yīng)用程序(使用動(dòng)態(tài)連接庫(kù)(DLL),該庫(kù)隨Windows系統(tǒng)一起發(fā)行)。
DDE應(yīng)用程序可以分為四種類(lèi)型:客戶(hù)、服務(wù)器、客戶(hù)/服務(wù)器和監(jiān)視器。DDE會(huì)話發(fā)生在客戶(hù)應(yīng)用程序和服務(wù)器應(yīng)用程序之間。客戶(hù)應(yīng)用程序從服務(wù)器應(yīng)用程序請(qǐng)求數(shù)據(jù)或服務(wù),服務(wù)器應(yīng)用程序響應(yīng)客戶(hù)應(yīng)用程序的數(shù)據(jù)或服務(wù)請(qǐng)求。客戶(hù)/服務(wù)器應(yīng)用程序既是客戶(hù)應(yīng)用程序又是服務(wù)器應(yīng)用程序,它既可發(fā)出請(qǐng)求又可提供信息。監(jiān)視器應(yīng)用程序用于調(diào)試目的。DDE應(yīng)用程序可擁有多重迸發(fā)會(huì)話。DDE協(xié)議規(guī)定會(huì)話中的消息必須同步控制,但應(yīng)用程序可以在不同的會(huì)話之間異步切換。
DDE應(yīng)用程序采用三層識(shí)別系統(tǒng):應(yīng)用程序名(Application)、主題名(Topic)和項(xiàng)目名(Item)。應(yīng)用程序名位于層次結(jié)構(gòu)的頂層,用于指出特定的DDE服務(wù)器應(yīng)用程序名。主題名更深刻地定義了服務(wù)器應(yīng)用程序會(huì)話的主題內(nèi)容,服務(wù)器應(yīng)用程序可支持一個(gè)或多個(gè)主題名。項(xiàng)目名更進(jìn)一步確定了會(huì)話的詳細(xì)內(nèi)容,每個(gè)主題名可擁有一個(gè)或多個(gè)項(xiàng)目名。
DDE會(huì)話的初始化是由客戶(hù)應(yīng)用程序發(fā)送WM_DDE_INITIATE消息開(kāi)始,它傳遞窗口句柄并為會(huì)話應(yīng)用程序名和主題名,當(dāng)然需要有服務(wù)器應(yīng)用程序來(lái)響應(yīng)該消息。一旦沒(méi)有服務(wù)器響應(yīng)或同時(shí)有多個(gè)服務(wù)器響應(yīng),則客戶(hù)應(yīng)用程序不得不發(fā)送WM_DDE_TERMINATE消息來(lái)終止所有不需要的會(huì)話。
建立DDE會(huì)話后,客戶(hù)應(yīng)用程序和服務(wù)器應(yīng)用程序可通過(guò)三種鏈接方式進(jìn)行數(shù)據(jù)交換。三種鏈接方式為:冷鏈接(Cold Link)、溫鏈接(Warm Link)和熱鏈接(Hot Link)。冷鏈接(Cold Link):客戶(hù)應(yīng)用程序申請(qǐng)數(shù)據(jù),服務(wù)器應(yīng)用程序立刻給客戶(hù)應(yīng)用程序發(fā)送數(shù)據(jù),服務(wù)器應(yīng)用程序處于主動(dòng)地位;溫鏈接(Warm Link):服務(wù)器應(yīng)用程序通知客戶(hù)應(yīng)用程序數(shù)據(jù)項(xiàng)發(fā)生了變化,但并沒(méi)有將已變化的值發(fā)送給用戶(hù)應(yīng)用程序;熱鏈接(Hot Link):當(dāng)數(shù)據(jù)項(xiàng)發(fā)生變化時(shí),服務(wù)器應(yīng)用程序立即把變化后的值發(fā)送給客戶(hù)應(yīng)用程序,服務(wù)器應(yīng)用程序處于主動(dòng)地位。
三、 FIX軟件的DDE支持
FIX軟件提供了強(qiáng)有力的DDE客戶(hù)和服務(wù)器支持。DDE客戶(hù)支持允許把來(lái)自其他應(yīng)用程序的信息傳遞到FIX軟件中,用于數(shù)據(jù)庫(kù)和畫(huà)面;服務(wù)器支持允許把FIX軟件的過(guò)程信息傳送到其他應(yīng)用程序中去處理。
a) DDE客戶(hù)支持
FIX軟件DDE客戶(hù)支持允許讀寫(xiě)DDE地址,利用DDE I/O驅(qū)動(dòng)器和塊配置的DDE地址,可以在過(guò)程數(shù)據(jù)庫(kù)中插入來(lái)自其他應(yīng)用程序、DDE設(shè)備驅(qū)動(dòng)程序或另一個(gè)SCADA節(jié)點(diǎn)的數(shù)據(jù)信息。
數(shù)據(jù)庫(kù)中的這些數(shù)據(jù)可以按照以下方式使用:在鏈中傳送數(shù)據(jù)、對(duì)DDE數(shù)據(jù)進(jìn)行報(bào)警和用DDE數(shù)據(jù)制作趨勢(shì)曲線。
DDE客戶(hù)支持允許在FIX畫(huà)面中直接使用DDE,而不使用數(shù)據(jù)庫(kù)中的點(diǎn)。即DDE可以直接應(yīng)用于數(shù)據(jù)鏈接、動(dòng)態(tài)特性(前景顏色、邊界顏色、X和Y坐標(biāo)、水平或垂直填充、可見(jiàn)性等)設(shè)置、X/Y繪圖、棒狀圖和命令語(yǔ)言。
Fix作為客戶(hù)的DDE地址語(yǔ)法為:= Appliaction|Topic!Item.
例如: 點(diǎn)A1的I/O地址 = VBSrvApp|Form1!Text1, 其中VBSrvApp為VB開(kāi)發(fā)的應(yīng)用程序名、Form1為主題名和 Text1為項(xiàng)目名。
b) DDE服務(wù)器支持
FIX軟件作為服務(wù)器允許將它的實(shí)時(shí)數(shù)據(jù)或歷史數(shù)據(jù)傳送到其他DDE客戶(hù)應(yīng)用程序中。使用FIX DDE服務(wù)器功能,需要首先啟動(dòng)DDE服務(wù)器程序,即FIX軟件的安裝目錄Fix32下的DMDDE.exe。Fix作為服務(wù)器提供的DDE編址語(yǔ)法如表1。
表1 DDE編址語(yǔ)法
例如:實(shí)時(shí)數(shù)據(jù)語(yǔ)法 =DDMDDE|DATA!NODE1:AI1.A_CV
歷史數(shù)據(jù)語(yǔ)法 =DDMDDE|HTR!Group1.time1.Y.Y.Y.Y.25
四、 VB的DDE支持
VB作為Windows環(huán)境下非常流行的快速開(kāi)發(fā)工具,與Windows操作系統(tǒng)同出于微軟一家,它理所當(dāng)然地支持Windows下的DDE技術(shù)。用VB可以方便快捷地開(kāi)發(fā)出DDE客戶(hù)或服務(wù)器。
a) VB的DDE屬性、DDE事件和DDE方法
VB中支持DDE的對(duì)象有4類(lèi):Form(窗體)、Label(標(biāo)簽)、TextBox(文本框)和PictureBox(圖片框)。其中,F(xiàn)orm對(duì)象扮演(即數(shù)據(jù)的提供者)Label、TextBox和PictureBox等對(duì)象扮演接受端(即數(shù)據(jù)的接收者)。VB為支持DDE給發(fā)送端對(duì)象提供了2種DDE屬性和4種DDE事件(見(jiàn)表2), 給接受端對(duì)象提供了4種DDE屬性、4種DDE事件和4種DDE方法 (見(jiàn)表3) 。
表2 發(fā)送端對(duì)象的屬性、事件
表3 接收端對(duì)象的屬性、事件及方法
b) 利用VB開(kāi)發(fā)DDE客戶(hù)/服務(wù)器應(yīng)用程序
在利用VB開(kāi)發(fā)DDE客戶(hù)/服務(wù)器應(yīng)用程序中,欲建立DDE鏈接,完全依賴(lài)對(duì)象的DDE屬性設(shè)置。VB分別作為DDE客戶(hù)和DDE服務(wù)器時(shí),DDE屬性的不同設(shè)置(見(jiàn)表4)。
表4 VB作為DDE客戶(hù)/服務(wù)器的DDE屬性設(shè)置
五、 應(yīng)用實(shí)例
現(xiàn)以某油田的“油井注氮遠(yuǎn)程監(jiān)測(cè)系統(tǒng)”開(kāi)發(fā)為例,具體說(shuō)明FIX與VB之間DDE的實(shí)現(xiàn)方法。在該系統(tǒng)開(kāi)發(fā)中,根據(jù)參數(shù)的不同,F(xiàn)IX和VB分別需要在DDE客戶(hù)與DDE服務(wù)器兩種角色之間進(jìn)行相應(yīng)的變化。
a)VB作為DDE服務(wù)器,F(xiàn)IX作為DDE客戶(hù)
有些參數(shù)需要VB開(kāi)發(fā)的應(yīng)用程序VBSrvApp把從遠(yuǎn)程現(xiàn)場(chǎng)采集的實(shí)時(shí)數(shù)據(jù)傳輸?shù)紽ix實(shí)現(xiàn)顯示或制作趨勢(shì)圖,如膜組的實(shí)測(cè)溫度、膜組的進(jìn)出口壓力、四級(jí)過(guò)濾器壓力、氮?dú)獾膶?shí)測(cè)純度、渦輪增壓機(jī)的轉(zhuǎn)速和三級(jí)實(shí)測(cè)溫度、渦輪增壓機(jī)的進(jìn)出口壓力等參數(shù)。
在VBSrvApp中,把采集到的實(shí)時(shí)數(shù)據(jù)賦給TextBox(文本框),并把Fix中個(gè)點(diǎn)的DDE地址的項(xiàng)目名設(shè)為對(duì)應(yīng)TextBox(文本框)。如膜組的實(shí)測(cè)溫度,在FIX中點(diǎn)名為AI_Membrane_Tem,其DDE地址=VBSrvApp|frmMain!txtMembraneTem(其中,VBSrvApp是應(yīng)用程序名,frmMain是作為主題的窗體名稱(chēng),txtMembraneTem是作為項(xiàng)目的文本框名稱(chēng))。此時(shí),F(xiàn)ix為客戶(hù),VB應(yīng)用程序?yàn)榉?wù)器。
b) FIX作為DDE服務(wù)器, VB作為DDE客戶(hù)
有些參數(shù)需要從FIX傳輸?shù)絍B開(kāi)發(fā)的應(yīng)用程序VBSrvAp,再由VBSrvAp以命令的形式下達(dá)給遠(yuǎn)程現(xiàn)場(chǎng)的智能儀表或PLC等遠(yuǎn)程的現(xiàn)場(chǎng)設(shè)備,如膜組的設(shè)定溫度、氮?dú)獾脑O(shè)定純度、渦輪增壓機(jī)的進(jìn)口設(shè)定壓力等參數(shù)。
在VBSrvApp中,把各個(gè)設(shè)定參數(shù)相應(yīng)的TextBox(文本框)的LinkItem屬性設(shè)置為對(duì)應(yīng)FIX的點(diǎn),然后把從FIX的點(diǎn)傳輸?shù)綄?duì)應(yīng)TextBox(文本框)中的內(nèi)容下達(dá)給遠(yuǎn)程現(xiàn)場(chǎng)設(shè)備。如膜組的設(shè)定溫度,在FIX中點(diǎn)名為AO_Membrane_Tem_Set,在在VBSrvApp中相應(yīng)的TextBox(文本框)名為txtMembraneTemSet,其LinkTopic屬性為DMDDE|Data, LinkItem屬性為FIX: AO_Membrane_Tem_Set.A_CV。此時(shí),VB應(yīng)用程序?yàn)榭蛻?hù),F(xiàn)ix為服務(wù)器。