2 dde與opc技術(shù)的工作機(jī)制
和wonderware公司的dassid
4 利用vb開發(fā)dde與opc客戶端
5 結(jié)束語
1 引言
隨著工業(yè)生產(chǎn)的不斷發(fā)展以及自動(dòng)化系統(tǒng)集成度的不斷提高,,工業(yè)自動(dòng)化系統(tǒng)軟件取得了長足的發(fā)展與進(jìn)步,。然而,,工業(yè)系統(tǒng)中設(shè)備數(shù)量的不斷增加和現(xiàn)場信息交互共享能力要求的不斷提高,,傳統(tǒng)的智能設(shè)備之間及智能設(shè)備與控制系統(tǒng)之間采用專門驅(qū)動(dòng)程序?qū)崿F(xiàn)信息共享的通訊方式已不能滿足工業(yè)控制系統(tǒng)的發(fā)展需要,。因此,,為了能夠解決工業(yè)系統(tǒng)硬件設(shè)備的升級改變?yōu)檐浖到y(tǒng)帶來的不便,更好的實(shí)現(xiàn)不同設(shè)備廠家硬件產(chǎn)品的集成互連,,增強(qiáng)系統(tǒng)的穩(wěn)定性與可靠性,,工業(yè)自動(dòng)化軟件接口的標(biāo)準(zhǔn)化、統(tǒng)一化成為工業(yè)控制領(lǐng)域必須面臨的一個(gè)問題,。
為了能夠使得自動(dòng)化軟件的開發(fā)具有統(tǒng)一的接口標(biāo)準(zhǔn),,dde(動(dòng)態(tài)數(shù)據(jù)交換:dynamic data exchan-ge)、opc(基于過程控制的鏈接與嵌入:ole for process control)技術(shù)的出現(xiàn)和應(yīng)用為不同的自動(dòng)化程序系統(tǒng)之間能夠?qū)崿F(xiàn)簡單交互,、無縫互連做出了巨大的貢獻(xiàn),。
2.1 dde技術(shù)的工作機(jī)制
dde是為在同一臺計(jì)算機(jī)或不同計(jì)算機(jī)上運(yùn)行的程序提供動(dòng)態(tài)數(shù)據(jù)交換,最早由microsoft 公司提出的,。動(dòng)態(tài)數(shù)據(jù)交換(dde)技術(shù)由于其具有實(shí)時(shí)性好,、網(wǎng)絡(luò)通信連接實(shí)現(xiàn)方便等特點(diǎn),在控制軟件與信息網(wǎng)絡(luò)集成中得到了廣泛應(yīng)用,。
動(dòng)態(tài)數(shù)據(jù)交換基于windows消息機(jī)制,,各應(yīng)用程序間通過傳遞消息進(jìn)行對話交換信息。windows dde消息傳遞采用 client/server模式,,客戶(client)是數(shù)據(jù)的請求和接受者,,而服務(wù)器(server)是數(shù)據(jù)的提供者,兩者之間通過請求,、應(yīng)答,、傳輸三個(gè)步驟來完成數(shù)據(jù)的傳送。dde協(xié)議使用服務(wù)(service),、主題(topic)和數(shù)據(jù)項(xiàng)(item)三級命名來標(biāo)識dde所傳遞的數(shù)據(jù)單元,。一般情況下,服務(wù)(service)就是應(yīng)用程序的文件名,,主題是對服務(wù)器有意義的信息單元,。每次dde客戶與服務(wù)程序之間的對話都是先由客戶啟動(dòng)的,所以在每次客戶啟動(dòng)之前,,dde服務(wù)器應(yīng)當(dāng)首先投入運(yùn)行,。
當(dāng)客戶程序需要向服務(wù)器程序請求數(shù)據(jù)時(shí),客戶程序發(fā)送一條wm-dde-initiate消息給當(dāng)前運(yùn)行的所有windows應(yīng)用程序,,這條消息不但包含了它所需要的服務(wù)器名(service)和主題名(topic),,而且指明了它所希望的數(shù)據(jù)類型,收到wm-dde-initiate消息的應(yīng)用程序通過判別服務(wù)器名和會(huì)話主題決定是否應(yīng)答,一旦dde服務(wù)器響應(yīng)了這條被傳播的消息,,dde會(huì)話就開始了,。
dde的工作方式有冷連接(cool link)、溫連接(warm link)和熱連接(hot link)等3種,。在冷連接方式下,,當(dāng) server中的數(shù)據(jù)發(fā)生變化后不主動(dòng)通知client,,但client可以隨時(shí)從server讀寫數(shù)據(jù);在溫連接方式下,,當(dāng)server中的數(shù)據(jù)發(fā)生變化后馬上通知client,,client得到通知后將數(shù)據(jù)取回,;在熱連接方式下,,當(dāng)server中的數(shù)據(jù)發(fā)生變化后馬上通知client,同時(shí)將變化的數(shù)據(jù)直接送給client,。
dde的網(wǎng)絡(luò)形式稱為netdde,,它包含了dde的全部特征,是動(dòng)態(tài)數(shù)據(jù)交換(dde)的擴(kuò)充,,可以在跨越網(wǎng)絡(luò)的計(jì)算機(jī)之間使用,。采用 netdde后,兩個(gè)或更多網(wǎng)絡(luò)上的應(yīng)用能夠通過dde共享來建立網(wǎng)絡(luò)上不同工作站之間的連接,,從而實(shí)現(xiàn)站站之間的動(dòng)態(tài)信息共享,。
2.2 opc技術(shù)的工作機(jī)制
在opc技術(shù)出現(xiàn)以前,dde技術(shù)是絕大多數(shù)控制系統(tǒng)都支持和采用的數(shù)據(jù)交換方式,。但是,,由于dde是基于windows信息傳遞而建立的技術(shù),因此,,當(dāng)通信量較大時(shí),,就會(huì)出現(xiàn)數(shù)據(jù)刷新速度慢、安全性管理機(jī)制差,、可靠性能低等現(xiàn)象,,從而就有可能致使dde客戶程序在較長時(shí)間內(nèi)得不到回應(yīng)。和 dde 技術(shù)相比,,基于com和dcom技術(shù)的opc技術(shù)具有數(shù)據(jù)傳送性能高,、 安全性管理性能好、開發(fā)成本低等特點(diǎn),。
最初階段的opc規(guī)范是由opc基金會(huì)的先驅(qū)fisher-rosemount,、rockwell、opto 22,、 intellution,、intuitive technology公司于1996年8月發(fā)布的,目前opc基金會(huì)成員在全球已超過300多個(gè),,其中包括世界上幾乎所有主要的控制系統(tǒng),、儀器儀表、過程控制系統(tǒng)生產(chǎn)廠家,。
opc以ole/com/dcom技術(shù)為基礎(chǔ),,是 ole(object linking and embedding)for process control的縮寫,,是微軟公司的對象鏈接和嵌入技術(shù)在過程控制方面的應(yīng)用。與dde一樣,,opc也采用client/server模式,。opc服務(wù)器是數(shù)據(jù)源的提供者,數(shù)據(jù)源可以是plc,、dcs,、條形碼讀取器等控制設(shè)備,隨控制系統(tǒng)的構(gòu)成不同,,作為數(shù)據(jù)源的opc服務(wù)器既可以是和opc應(yīng)用程序在同一臺計(jì)算機(jī)上運(yùn)行的本地opc服務(wù)器,,也可以是在另外計(jì)算機(jī)上運(yùn)行的遠(yuǎn)程opc服務(wù)器。opc客戶是數(shù)據(jù)的使用者,,它按照opc接口規(guī)范從opc服務(wù)器獲取所需要的數(shù)據(jù),。
opc服務(wù)器主要包括三部分:服務(wù)器(server)、組(group)和數(shù)據(jù)項(xiàng)(item),。服務(wù)器對象保存服務(wù)器和服務(wù)器作為opc組對象容器的所有信息,。opc組對象包括公共組和局部組(私有組)兩種,公共組由多個(gè)客戶共享,,局部組只隸屬于一個(gè)opc客戶,。一個(gè)組可能代表一個(gè)特殊設(shè)備的數(shù)據(jù)項(xiàng),opc 客戶可以通過組對象來讀寫數(shù)據(jù),,并可以設(shè)定opc服務(wù)器應(yīng)該提供給opc client數(shù)據(jù)的更新速率,。opc 數(shù)據(jù)項(xiàng)是讀寫數(shù)據(jù)的最小邏輯單位(在實(shí)際應(yīng)用中,可能是物理設(shè)備的寄存器或寄存器的某一位),,其數(shù)據(jù)值以variant形式表示,,每個(gè)數(shù)據(jù)項(xiàng)包括值(value)、品質(zhì)(quality)和時(shí)間戳(time stamp)3個(gè)變量,。在一個(gè)組對象中,,opc 客戶可以加入多個(gè)opc數(shù)據(jù)項(xiàng)。
opc客戶與opc服務(wù)器的接口有自定義接口(custom interface)和自動(dòng)化接口(automation interface)兩種形式,。自定義接口是一組com接口,,主要用于采用c++語言的應(yīng)用程序開發(fā);自動(dòng)化接口是自動(dòng)化的 ole接口,,主要用于采用vb,,delphi等基于腳本編程語言的應(yīng)用程序開發(fā)。對于客戶端應(yīng)用程序的開發(fā),,采用自定義接口的方式運(yùn)行效率高,,但開發(fā)難度較大;采用自動(dòng)化接口的方式運(yùn)行效率低,但開發(fā)簡單,。這兩種接口與opc服務(wù)器的通信方式可用1圖所示,。
圖1 自定義接口和自動(dòng)化接口與opc服務(wù)器通信方式示意圖
對于分布式計(jì)算機(jī)上的opc客戶程序的開發(fā),opc標(biāo)準(zhǔn)采用dcom技術(shù)實(shí)現(xiàn)服務(wù)器和客戶程序的通訊,。
opc的數(shù)據(jù)訪問主要有同步數(shù)據(jù)訪問和異步數(shù)據(jù)訪問兩種方式,。同步數(shù)據(jù)訪問時(shí),opc服務(wù)器在將按照opc應(yīng)用程序要求的數(shù)據(jù)返回之前,,opc應(yīng)用程序一直處于等待狀態(tài),,也就是說,同步方式的數(shù)據(jù)訪問在要求的動(dòng)作沒有完成前不能執(zhí)行任何opc應(yīng)用程序側(cè)的處理,。與之相比,,異步方式的數(shù)據(jù)訪問在對opc服務(wù)器提出數(shù)據(jù)訪問要求后,,立即返回到opc應(yīng)用程序側(cè)的主處理程序中,,opc服務(wù)器完成數(shù)據(jù)訪問時(shí)通知opc應(yīng)用程序,opc應(yīng)用程序從而得到數(shù)據(jù)訪問結(jié)果,。當(dāng)opc應(yīng)用程序采用自動(dòng)化接口訪問opc服務(wù)器時(shí),,同步和異步數(shù)據(jù)操作分別由syncread、syncwrite和 asyncread,、asyncwrite四個(gè)opc組對象的方法函數(shù)來實(shí)現(xiàn),。
3 dde與opc技術(shù)應(yīng)用
當(dāng)前,dde,、opc技術(shù)在許多世界著名的自動(dòng)化廠家的i/o通訊服務(wù)器,、scada等自動(dòng)化軟件中都得到了體現(xiàn)。例如 wonderware 公司的daserver和intouch,、siemens公司的simatic net和wincc,、 rockwell-ab公司的rslinx和rsview32等。其中daserver和rslinx既可作為opc server,,又可作為dde server,;wincc和 rsview32則既可以作為opc client,又可作為dde client,。同時(shí),,由于各家的軟件接口都合乎dde、opc接口規(guī)范標(biāo)準(zhǔn),,所以,,不同廠家的i/o通訊、scada等軟件產(chǎn)品也可以很方便的實(shí)現(xiàn)互連,。
下面分別以wonderware 公司的intouch與daserver(dassidirect),、intouch與rockwell- ab公司的rslinx進(jìn)行dde通訊,siemens 公司的wincc 與simatic net 、wincc 與rslinx進(jìn)行opc通訊的方法為例說明dde,、opc技術(shù)在工業(yè)自動(dòng)化軟件的應(yīng)用情況,。
dassidirect是wonderware 公司開發(fā)用于對siemens s7 200/300/400系列plc進(jìn)行以太網(wǎng)數(shù)據(jù)訪問的服務(wù)器軟件,支持dde,、opc,、suitlink、fastdde等通訊方式,。當(dāng)客戶程序通訊接口與dassidirect的連接采用dde方式時(shí),,dassidirect 的數(shù)據(jù)訪問采用了節(jié)點(diǎn)名(node name)、應(yīng)用程序名(application name,,此處為 dassidirect),、主題名(topic name)和項(xiàng)目名(item name)的層次結(jié)構(gòu)。而當(dāng)通訊接口以opc方式與 dassidirect連接時(shí),,dassidirect 的數(shù)據(jù)訪問則采用了節(jié)點(diǎn)名(node name),、服務(wù)器名(program name,此處為 archestra.dassidirect.1),、組名(group name),、設(shè)備組名(device group)、連接名(link name)和項(xiàng)目名(item name)的層次結(jié)構(gòu),。各層次項(xiàng)可在dassidirect軟件界面中配置實(shí)現(xiàn),。
工程應(yīng)用時(shí),需要在dassidirect管理界面smc archestra.dassidirect.1目錄下根據(jù)需要依次添加接口類型(tcp/ip),、接口處理器類型(s7 plc),,并進(jìn)行必要的參數(shù)設(shè)置,然后還要為device groups添加不同的topic以方便對不同變量的歸類管理,。intouch標(biāo)簽變量對dassidirect的訪問是通過“訪問名”的設(shè)置來實(shí)現(xiàn)的,,所以intouch中“訪問名”的設(shè)置必須和 dassidirect軟件中的設(shè)置一一對應(yīng),例如,,“訪問名”中“應(yīng)用程序名”應(yīng)設(shè)置為dassidirect,,“訪問名”中“主題名”的設(shè)置應(yīng)和 dassidirect中所添加的topic名稱完全一致。此外,,intouch標(biāo)簽變量“項(xiàng)目名”的填寫也必須遵從dassidirect中 item name的定義形式,,例如對s7 plc數(shù)據(jù)塊地址word的訪問形如db11.w80,對數(shù)據(jù)塊地址dword的訪問形如db11.d80,,對輸入/輸出位的訪問形式分別為i5.2/q7.5等,。
-irect一樣,rslinx也支持opc/dde兩種通訊方式,。當(dāng)intouch和rslinx以dde方式進(jìn)行通訊時(shí),,首先需要在 rslinx“dde/opc topic configuration ”對話框中添加新的topic,,并建立該topic與要連接 rslogix plc cpu之間的對應(yīng)關(guān)系,然后再對intouch中“訪問名”做相應(yīng)的配置。不過,,此時(shí)“訪問名”中“應(yīng)用程序名”應(yīng)設(shè)置為 rslinx,,“訪問名”中的“主題名”則應(yīng)和在rslinx中所添加的topic名稱完全一致。而intouch標(biāo)簽變量“項(xiàng)目名”的填寫也應(yīng)遵從 rslinx中item name的定義形式,,例如對rslogix plc cpu中全局變量controller tags地址的訪問即為 plc變量地址的tag name,,而對cpu中程序變量program tags地址的訪問則為 program:
當(dāng)采用siemens 公司的wincc作為opc client與opc服務(wù)器進(jìn)行opc方式連接時(shí),,首先需要在wincc資源管理器中添加opc通訊驅(qū)動(dòng)程序opc.chn,,然后在出現(xiàn)的opc通道單元的“連接屬性”和所建變量的“變量地址屬性”對話框中分別填寫“opc服務(wù)器名稱”和 “變量地址名稱”,這樣便可建立該變量到opc服務(wù)器的連接,。需要說明的是,,不同的opc服務(wù)器,其opc服務(wù)器名稱和地址格式是不盡相同的,,例如 siemens simatic net opc服務(wù)器的名稱和地址訪問格式(以按s7協(xié)議對s7系列 plc數(shù)據(jù)訪問為例)分別是 “opc.simaticnet”和“s7:[<連接名稱>]
同樣,,其它scada軟件與相關(guān)dde,、opc服務(wù)器軟件通訊的實(shí)現(xiàn)方法與此類似,不再贅述,。
此外,由于dde,、opc都是標(biāo)準(zhǔn)規(guī)范,,所以也可以根據(jù)需要來實(shí)現(xiàn)dde、opc之間的接口轉(zhuǎn)換來滿足實(shí)際需求,,例如wonderware公司的opclink便是實(shí)現(xiàn)opc,、dde接口轉(zhuǎn)換的專用軟件。
如上所述,,目前許多scada軟件都采用了dde,、opc技術(shù)規(guī)范作為其軟件接口,而scada監(jiān)控軟件在實(shí)際工程應(yīng)用中則扮演了dde,、 opc客戶端的角色,。另外,wonderware公司的wwclient,,siemens公司的simatic net opc scout和 rockwell-ab公司的opc test client等測試軟件也都是dde,、opc客戶端軟件的實(shí)例。
dde,、opc客戶端軟件可采用visual c++,、visual basic、delphi等編程軟件實(shí)現(xiàn),這里主要對如何用visual basic 6.0編寫dde,、opc 客戶端實(shí)現(xiàn)和dde,、opc 服務(wù)器通訊的方法分別予以介紹。
4.1 利用vb開發(fā)dde 客戶端
作為microsoft 公司軟件產(chǎn)品的重要一員,,visual basic理所當(dāng)然的對windows操作系統(tǒng)的下的dde技術(shù)給予支持,。 visual basic為一些控件提供了用于dde動(dòng)態(tài)數(shù)據(jù)交換的linktopic、linkitem,、linktimeout,、linkmode等屬性,以及l(fā)inkrequest,、linkpoke,、linkexecute、linksend等方法,。其中,,linktopic、linkitem兩項(xiàng)屬性分別對應(yīng)于dde通訊架構(gòu)中的主題名和數(shù)據(jù)項(xiàng)名,,linktimeout,、linkmode分別表示dde 客戶端與dde服務(wù)器的嘗試連接時(shí)間和連接模式(數(shù)據(jù)交換方式),linkmode有manual,、notify,、automatic三種方式,而automatic方式最為常用,,它主要用于和dde server建立“熱連接(hot link)”,,即在dde服務(wù)器數(shù)據(jù)發(fā)生變化時(shí)主動(dòng)發(fā)送數(shù)據(jù)給客戶端。linkrequest,、 linkpoke分別用于dde 客戶端對dde服務(wù)器數(shù)據(jù)的讀寫操作,。
根據(jù)應(yīng)用程序與服務(wù)器程序dde方式通訊機(jī)制,可以在visual basic編程環(huán)境下開發(fā)適合實(shí)際需要的dde客戶端應(yīng)用程序,。例如,,visual basic訪問intouch 程序變量“intouchtag”時(shí),其代碼為 label1.linktopic= "view|tagn-ame"
label1.linkitem= "intouchtag"
label1.linkmode=1
label1.linkrequest
其中,,代碼中的“view”和“tagname”分別表示intouch windowviewer的應(yīng)用程序名和主題名,,“linkmode”值為1表示該應(yīng)用程序與windowviewer的連接方式為automatic(即“熱連接”)方式。這樣,,當(dāng)該應(yīng)用代碼被執(zhí)行時(shí),,label1的值便隨intouch windowviewer“intouchtag”變量的變化而變化。
同樣可以在visual basic中添加label2,、label3,,并建立和dassidirect,、rsllinx的dde通訊連接,使其分別隨所連接s7-300 plc數(shù)據(jù)db5.dbw20,、controllogix 1756-l55 plc全局變量 “linxlogixtag”數(shù)值的變化而變化,,其代碼分別如下:
label2.linktopic = "dassidire
-ct|dasvrtopic"
label2.linkitem = "db5.w20"
label2.linkmode = 1
label2.linkrequest
label3.linktopic = "rslinx|" & “rslinxtopic”
label3.linkitem= "linxlogixtag"
label3.linkmode = 1
label3.linkrequest
其中,“dassidirect”和“dasvrtopic”,、“rslinx”和“rslinxtopic”分別為dassidirect 和rslinx的應(yīng)用程序名以及在dassidirect和rslinx dde服務(wù)器中建立的主題名,。而“db5.w20”和 “linxlogixtag”則分別對應(yīng)于s7-300 plc數(shù)據(jù)db5.dbw20和controllogix 1756-l55 plc全局變量 linxlogixtag,這樣,,該段代碼被執(zhí)行時(shí),,label2和label3的數(shù)值將隨plc中數(shù)據(jù)db5.dbw20與linxlogixtag變量值的變化而變化。
netdde是dde的網(wǎng)絡(luò)擴(kuò)展形式,,主要為網(wǎng)絡(luò)上不同計(jì)算機(jī)之間的動(dòng)態(tài)數(shù)據(jù)交換提供方便,。在visual basic編程環(huán)境下,也可以開發(fā)基于netdde的客戶端應(yīng)用程序,。與開發(fā)dde客戶端不同的是,,網(wǎng)絡(luò)上作為dde服務(wù)器和客戶端的計(jì)算機(jī)都要啟動(dòng)netdde.exe服務(wù),并在作為 dde服務(wù)器的計(jì)算機(jī)上同時(shí)啟動(dòng)ddeshare.exe程序,,對新建的dde共享進(jìn)行必要的設(shè)置,。如下代碼的功能為計(jì)算機(jī)pc02讀取pc01計(jì)算機(jī)上 rslinx dde服務(wù)器所采集的"linxlogixtag" plc變量的值。
label4.linktopic= "\pc01
ndde$|pc01shrnm"
label4.linkitem= "linxlogixtag"
label4.linkmode=1
label4.linkrequest
由于netdde的訪問采用了“\<計(jì)算機(jī)名>
此外,由于excel也支持dde技術(shù),,所以pc01計(jì)算機(jī)上rslinx dde服務(wù)器plc變量linxlogixtag的變化也可以在 pc02計(jì)算機(jī)excel表格中得到體現(xiàn),只需要在需要顯示該值的單元格中填寫如下代碼=‘\pc01ndde$‘|pc01shrnm!linxlogixtag
4.2 利用vb開發(fā)opc 客戶端
利用visual basic所開發(fā)的opc客戶端應(yīng)用程序主要采用自動(dòng)化通信接口和opc服務(wù)器程序?qū)嵤┩ㄐ?。而opc基金會(huì)提供的opc 自動(dòng)化接口 opcdaauto.dll動(dòng)態(tài)鏈接庫集成了所有用于對opc服務(wù)器進(jìn)行訪問的對象,、屬性和方法,為利用visual basic開發(fā)opc 客戶端應(yīng)用程序提供了極大方便,。程序設(shè)計(jì)時(shí),,opc客戶程序應(yīng)當(dāng)首先生成opc服務(wù)器支持的opc對象,然后再使用opc對象支持的屬性和方法,,實(shí)現(xiàn)對 opc服務(wù)器的操作和訪問,。
opc數(shù)據(jù)訪問對象主要包括opc服務(wù)器(opcserver)、opc組集合(opcgroups),、opc組(opcgroup),、 opc標(biāo)簽集合(opcitems),、opc標(biāo)簽(opcitem)、opc瀏覽器(opcbrowser)等幾個(gè)部分,。程序設(shè)計(jì)時(shí),,要首先在 visual basic環(huán)境下選擇對opc automation 2.0接口的引用,此時(shí),,opc對象會(huì)被自動(dòng)添加到正在開發(fā)的工程項(xiàng)目中,,然后,再根據(jù)需要建立這些對象的實(shí)例并利用其屬性和方法來實(shí)現(xiàn)對opc服務(wù)器的訪問,。對opc服務(wù)器的訪問主要包括聲明opc對象實(shí)例,、連接 opc server、添加標(biāo)簽變量,、讀寫opc服務(wù)器(同步/異步),、斷開連接等幾個(gè)步驟。
opc對象實(shí)例的聲明主要包括對opc服務(wù)器,、opc組集合,、opc組、opc標(biāo)簽集合,、opc服務(wù)器句柄的聲明及程序所需要的其它實(shí)例的聲明,。opc客戶端和opc server的連接主要靠調(diào)用opc服務(wù)器對象實(shí)例的connect方法函數(shù)來完成,例如,,連接本地計(jì)算機(jī) dassidirect和rslinx opc server 的代碼分別為connect("archestra.dassidirect.1")和 connect("rslinx opc server")
連接網(wǎng)絡(luò)遠(yuǎn)程計(jì)算機(jī)(ip地址為10.144.45.45)上dassidirect和rslinx opc server 的代碼分別為 connect("archestra.dassidirect.1", "\10.144.45.45")和 connect("rslinx opc server", "\10.144.45.45")
需要說明的是當(dāng)進(jìn)行遠(yuǎn)程opc連接時(shí),,必須在遠(yuǎn)程計(jì)算機(jī)上運(yùn)行dcomcnfg程序,并啟動(dòng)該計(jì)算機(jī)opc服務(wù)器的dcom服務(wù),。
標(biāo)簽變量的添加主要由opc標(biāo)簽集合的additems方法函數(shù)實(shí)現(xiàn),,該函數(shù)定義了添加的標(biāo)簽數(shù)量、標(biāo)簽變量名(數(shù)組),、應(yīng)用程序句柄(數(shù)組),、opc服務(wù)器句柄(數(shù)組)、錯(cuò)誤代碼(數(shù)組)等方面的信息,。例如,,為dassidirect和rslinx opc服務(wù)器添加標(biāo)簽變量的代碼為 tagnms(1)=”portcps7.jsbf.db2,x48.0”或者tagnms(1)=”linxlogixtag”
my_items.additems itmnum, tagnms, clienthdls, svrhandles, err
其中,my_items為opc標(biāo)簽集合的一個(gè)實(shí)例,。標(biāo)簽變量添加完成后,,可通過syncread、syncwrite和 asyncread,、asyncwrite四個(gè)函數(shù)實(shí)現(xiàn)對opc服務(wù)器中相應(yīng)數(shù)據(jù)的讀寫操作,。在讀寫操作完成后,程序?qū)?huì)自動(dòng)執(zhí)行 syncreadcomplete,、syncwritecomplete和asyncread-complete,、asyncwritecomple- te等過程,,opc客戶端應(yīng)用程序的數(shù)據(jù)顯示、故障診斷等功能可在該段程序代碼中實(shí)現(xiàn),。
此外,,在對opc服務(wù)器完成讀寫后,可以調(diào)用opc服務(wù)器的disconnect方法來斷開與相應(yīng)opc服務(wù)器的連接,。不過,,為了節(jié)省系統(tǒng)開支,增加程序穩(wěn)定性,,通常要在斷開和opc服務(wù)器連接前先移除opc服務(wù)器中的opc標(biāo)簽和opc組,,并將opc集合對象都置為nothing,然后再執(zhí)行disconnect操作并將opc server對象實(shí)例置為nothing,。
dde,、opc技術(shù)的出現(xiàn)與發(fā)展已經(jīng)在包括工業(yè)自動(dòng)控制在內(nèi)的諸多領(lǐng)域得到了廣泛的應(yīng)用。dde作為一種較成熟的數(shù)據(jù)交換方式已擁有最全面的支持,,而opc技術(shù)也越來越受眾多自動(dòng)化軟硬件企業(yè)的支持與青睞,,所以,在將來很長的一段時(shí)間里,,dde與opc將繼續(xù)在各自的應(yīng)用領(lǐng)域發(fā)揮重要作用,,dde、opc技術(shù)的出現(xiàn)和發(fā)展為我們提供了一個(gè)方便的數(shù)據(jù)訪問接口,,從而使控制系統(tǒng)進(jìn)一步走向開放,用戶系統(tǒng)因此受益,。