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