dde與opc技術(shù)的工作機制
dde技術(shù)的工作機制
本文引用地址:http://dyxdggzs.com/article/160837.htmdde是為在同一臺計算機或不同計算機上運行的程序提供動(dòng)態(tài)數據交換,最早由microsoft 公司提出的。動(dòng)態(tài)數據交換(dde)技術(shù)由于其具有實(shí)時(shí)性好、網(wǎng)絡(luò )通信連接實(shí)現方便等特點(diǎn),在控制軟件與信息網(wǎng)絡(luò )集成中得到了廣泛應用。
動(dòng)態(tài)數據交換基于windows消息機制,各應用程序間通過(guò)傳遞消息進(jìn)行對話(huà)交換信息。windows dde消息傳遞采用client/server模式,客戶(hù)(client)是數據的請求和接受者,而服務(wù)器(server)是數據的提供者,兩者之間通過(guò)請求、應答、傳輸三個(gè)步驟來(lái)完成數據的傳送。dde協(xié)議使用服務(wù)(service)、主題(topic)和數據項(item)三級命名來(lái)標識dde所傳遞的數據單元。一般情況下,服務(wù)(service)就是應用程序的文件名,主題是對服務(wù)器有意義的信息單元。每次dde客戶(hù)與服務(wù)程序之間的對話(huà)都是先由客戶(hù)啟動(dòng)的,所以在每次客戶(hù)啟動(dòng)之前,dde服務(wù)器應當首先投入運行。
當客戶(hù)程序需要向服務(wù)器程序請求數據時(shí),客戶(hù)程序發(fā)送一條wm-dde-initiate消息給當前運行的所有windows應用程序,這條消息不但包含了它所需要的服務(wù)器名(service)和主題名(topic),而且指明了它所希望的數據類(lèi)型,收到wm-dde-initiate消息的應用程序通過(guò)判別服務(wù)器名和會(huì )話(huà)主題決定是否應答,一旦dde服務(wù)器響應了這條被傳播的消息,dde會(huì )話(huà)就開(kāi)始了。
dde的工作方式有冷連接(cool link)、溫連接(warm link)和熱連接(hot link)等3種。在冷連接方式下,當server中的數據發(fā)生變化后不主動(dòng)通知client,但client可以隨時(shí)從server讀寫(xiě)數據;在溫連接方式下,當server中的數據發(fā)生變化后馬上通知client,client得到通知后將數據取回;在熱連接方式下,當server中的數據發(fā)生變化后馬上通知client,同時(shí)將變化的數據直接送給client。
dde的網(wǎng)絡(luò )形式稱(chēng)為netdde,它包含了dde的全部特征,是動(dòng)態(tài)數據交換(dde)的擴充,可以在跨越網(wǎng)絡(luò )的計算機之間使用。采用netdde后,兩個(gè)或更多網(wǎng)絡(luò )上的應用能夠通過(guò)dde共享來(lái)建立網(wǎng)絡(luò )上不同工作站之間的連接,從而實(shí)現站站之間的動(dòng)態(tài)信息共享。
opc技術(shù)的工作機制
在opc技術(shù)出現以前,dde技術(shù)是絕大多數控制系統都支持和采用的數據交換方式。但是,由于dde是基于windows信息傳遞而建立的技術(shù),因此,當通信量較大時(shí),就會(huì )出現數據刷新速度慢、安全性管理機制差、可靠性能低等現象,從而就有可能致使dde客戶(hù)程序在較長(cháng)時(shí)間內得不到回應。和dde 技術(shù)相比,基于com和dcom技術(shù)的opc技術(shù)具有數據傳送性能高、 安全性管理性能好、開(kāi)發(fā)成本低等特點(diǎn)。
最初階段的opc規范是由opc基金會(huì )的先驅fisher-rosemount、rockwell、opto 22、intellution、intuitive technology公司于1996年8月發(fā)布的,目前opc基金會(huì )成員在全球已超過(guò)300多個(gè),其中包括世界上幾乎所有主要的控制系統、儀器儀表、過(guò)程控制系統生產(chǎn)廠(chǎng)家。
opc以ole/com/dcom技術(shù)為基礎,是ole(object linking and embedding)for process control的縮寫(xiě),是微軟公司的對象鏈接和嵌入技術(shù)在過(guò)程控制方面的應用。與dde一樣,opc也采用client/server模式。opc服務(wù)器是數據源的提供者,數據源可以是plc、dcs、條形碼讀取器等控制設備,隨控制系統的構成不同,作為數據源的opc服務(wù)器既可以是和opc應用程序在同一臺計算機上運行的本地opc服務(wù)器,也可以是在另外計算機上運行的遠程opc服務(wù)器。opc客戶(hù)是數據的使用者,它按照opc接口規范從opc服務(wù)器獲取所需要的數據。
opc服務(wù)器主要包括三部分:服務(wù)器(server)、組(group)和數據項(item)。服務(wù)器對象保存服務(wù)器和服務(wù)器作為opc組對象容器的所有信息。opc組對象包括公共組和局部組(私有組)兩種,公共組由多個(gè)客戶(hù)共享,局部組只隸屬于一個(gè)opc客戶(hù)。一個(gè)組可能代表一個(gè)特殊設備的數據項,opc 客戶(hù)可以通過(guò)組對象來(lái)讀寫(xiě)數據,并可以設定opc服務(wù)器應該提供給opc client數據的更新速率。opc 數據項是讀寫(xiě)數據的最小邏輯單位(在實(shí)際應用中,可能是物理設備的寄存器或寄存器的某一位),其數據值以variant形式表示,每個(gè)數據項包括值(value)、品質(zhì)(quality)和時(shí)間戳(time stamp)3個(gè)變量。在一個(gè)組對象中,opc 客戶(hù)可以加入多個(gè)opc數據項。
opc客戶(hù)與opc服務(wù)器的接口有自定義接口(custom interface)和自動(dòng)化接口(automation interface)兩種形式。自定義接口是一組com接口,主要用于采用c++語(yǔ)言的應用程序開(kāi)發(fā);自動(dòng)化接口是自動(dòng)化的ole接口,主要用于采用vb,delphi等基于腳本編程語(yǔ)言的應用程序開(kāi)發(fā)。對于客戶(hù)端應用程序的開(kāi)發(fā),采用自定義接口的方式運行效率高,但開(kāi)發(fā)難度較大;采用自動(dòng)化接口的方式運行效率低,但開(kāi)發(fā)簡(jiǎn)單。這兩種接口與opc服務(wù)器的通信方式可用1圖所示。
圖1 自定義接口和自動(dòng)化接口與opc服務(wù)器通信方式示意圖
對于分布式計算機上的opc客戶(hù)程序的開(kāi)發(fā),opc標準采用dcom技術(shù)實(shí)現服務(wù)器和客戶(hù)程序的通訊。
opc的數據訪(fǎng)問(wèn)主要有同步數據訪(fǎng)問(wèn)和異步數據訪(fǎng)問(wèn)兩種方式。同步數據訪(fǎng)問(wèn)時(shí),opc服務(wù)器在將按照opc應用程序要求的數據返回之前,opc應用程序一直處于等待狀態(tài),也就是說(shuō),同步方式的數據訪(fǎng)問(wèn)在要求的動(dòng)作沒(méi)有完成前不能執行任何opc應用程序側的處理。與之相比,異步方式的數據訪(fǎng)問(wèn)在對opc服務(wù)器提出數據訪(fǎng)問(wèn)要求后,立即返回到opc應用程序側的主處理程序中,opc服務(wù)器完成數據訪(fǎng)問(wèn)時(shí)通知opc應用程序,opc應用程序從而得到數據訪(fǎng)問(wèn)結果。當opc應用程序采用自動(dòng)化接口訪(fǎng)問(wèn)opc服務(wù)器時(shí),同步和異步數據操作分別由syncread、syncwrite和asyncread、asyncwrite四個(gè)opc組對象的方法函數來(lái)實(shí)現。
評論