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