輔小榮 朱家驥 何堅強
摘 要: 作者針對動態數據交換技術的概念抽象、晦澀、不易掌握的情況,采用理論與實際相結合的教學方法,以組態王訪問Excel的例子講解動態數據交換技術的概念與原理,使其生動形象,幫助學生掌握動態數據交換技術的相關知識,并靈活應用。
關鍵詞: 計算機測控 動態數據交換 組態王
1.引言
計算機及測控技術是為高等教育自動化專業本科生開設的一門專業選修課,課程的主要教學內容是計算機測控系統設計開發方面的專業知識,該課程集理論性、工程性和實踐性于一體。隨著工業生產規模不斷擴大,使得測控系統復雜程度大大提高,系統需要交換的數據種類和數量不斷增加,不同系統的設備具有不同的通信機制,造成測控軟件相互之間不能通信。為了該問題,動態交換技術(DDE,Dynamic Data Exchange)應運而生,解決測控系統之間通信的一系列問題[1]。DDE技術較抽象,學生理解較困難,本文以理論與實例相結合的方式講解該技術,使學生更好地理解和掌握該技術。
2.動態數據交換技術基本原理
2.1 DDE基本概念
動態數據交換DDE(Dynamie data exchange)是Mierosoft Window所制定的程序間通信的一種常用協議。動態數據交換已經成為Windows的一部分,并且許多應用程序都采用DDE技術,DDE作為一種基本機制已經應用于對象鏈接和嵌入OLE(Object Linking and Embedding)中。近年來,隨著OLE及COM技術的逐漸成熟和發展,使用DDE方式的程序間通信有所減少,但是這并不意味著使用DDE方式進行程序間的通信不再有價值,DDE在MicrosoftOffice和眾多的組態軟件等許多應用程序中得到普遍支持。例如,Excel、QQ、組態王等。
DDE應用程序可以分為四種類型:客戶、服務器、客戶/服務器和監視器。DDE會話發生在客戶應用程序和服務器應用程序之間。
DDE應用程序采用三層識別系統:應用程序名(Application)、主題名(Topic)和項目名(Item):(1)應用程序名位于層次結構的頂層,用于指出特定的DDE服務器應用程序名。(2)主題名更深刻地定義了服務器應用程序會話的主題內容,服務器應用程序可支持一個或多個主題名。(3)項目名更進一步確定了會話的詳細內容,每個主題名可擁有一個或多個項目名。
2.2 DDE通信原理
確切地講,Windows下應用程序間的DDE通信的實現基礎是Windows消息機制,DDE通信的基本原理如圖1所示。
(1)運行DDE服務器端和客戶端;(2)DDE客戶端向服務器提出連接請求;(3)DDE服務器響應客戶端的連接請求建立DDE會話連接;(4)DDE客戶端與服務器端的通信;(5)結束DDE會話。
建立DDE會話后,客戶應用程序和服務器應用程序可通過三種鏈接方式進行數據交換。三種鏈接方式為:冷鏈接(ColdLink)、溫鏈接(Warm Link)和熱鏈接(Hot Link)。
冷鏈接:客戶程序申請數據,服務器程序立刻給客戶程序發送數據,一次會話就此結束。
溫鏈接:客戶程序在與服務器程序建立連接后,每次數據發生變化時服務器程序都會通知客戶程序。
熱鏈接:客戶程序在與服務器程序建立連接后,每次數據發生變化時服務器程序立即把變化后的值發送給客戶程序。
3.實例講解
本文以組態王訪問Excel的例子講解動態數據交換技術。
3.1定義DDE設備
首先在組態王中定義DDE設備,具體步驟如下:
3.1.1在工程瀏覽器的目錄顯示區,單擊大綱項設備下的成員DDE,則在目錄內容顯示區出現“新建”圖標,如圖2所示[2]。
3.1.2選中“新建”圖標后雙擊,安裝設備配置向導進行相關配置,最后得到一個新建的DDE設備,如圖3所示。
從圖3可知,新建的DDE設備邏輯名為:ExcelToView,服務程序名就是DDE三層識別系統中的最頂層,應用程序名,用于指出特定的DDE服務器應用程序名。在本文中組態王訪問Excel,從Excel中獲取數據,Excel即為服務器應用程序,因此在信息匯總表中服務程序名為:Excel。話題名即對應DDE三層識別系統的主題名,定義服務器應用程序會話的主體內容。本文中服務器應用程序為Excel,因此我們定義話題名為:sheet1。組態王與Excel的數據交換方式為:標準WindowsDDE交換。
3.2定義變量與動畫連接
在定義DDE設備以后,需要在數據詞典中定義變量,具體信息如圖4所示。
我們將變量名定義為:FromViewToExcel,變量類型定義為:I/O實數,因為組態王與Excel進行數據交換,故必須將其定義為I/O型變量。該變量連接的設備為已經定義的DDE設備:ExcelToView。項目名即為DDE三層識別系統的項目名,更進一步確定會話的詳細內容。從圖2已知,我們將話題名定義為sheet1,但是sheet1中有無數數據,組態王變量具體訪問哪一個不確定。為了確定具體的訪問數據,我們將項目名定義為:r1c2,即第一行第二列的數據。
接下來將開發界面中的文本與已定義的變量FromViewToExcel進行動畫連接,具體信息如圖5所示。
由圖5可知,我們對文本進行模擬值輸出連接,連接變量為FromViewToExcel。
3.3組態運行
動畫連接結束以后,進入到運行狀態。將Excel打開,同時組態王切換到運行狀態,這樣組態王就可以訪問Excel,獲取Excel中的數據,如圖6所示。
4.結語
動態數據交換技術是測控系統中一種非常重要的數據交換技術,由于其概念較為抽象,不便于學生掌握。本文以一實例組態王訪問Excel,詳細生動地講解動態數據交換技術的概念及原理,使學生很快掌握DDE技術的基本原理,并靈活應用。
參考文獻:
[1]何堅強,徐順清,張春富等.計算機測控系統設計與應用[M].北京:中國電力出版社,2012(9).
[2]何堅強,薛迎成,徐順清.工控組態軟件及應用[M.北京:北京大學出版社,2014(3)