<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > DDE與OPC技術在工業(yè)自動化系統(tǒng)中的應用

          DDE與OPC技術在工業(yè)自動化系統(tǒng)中的應用

          作者: 時間:2012-08-14 來源:網(wǎng)絡 收藏

          4 利用vb開發(fā)dde與opc客戶端

          如上所述,目前許多scada軟件都采用了dde、opc技術規(guī)范作為其軟件接口,而scada監(jiān)控軟件在實際工程應用中則扮演了dde、opc客戶端的角色。另外,wonderware公司的wwclient,siemens公司的simatic net opc scout和rockwell-ab公司的opc test client等測試軟件也都是dde、opc客戶端軟件的實例。

          dde、opc客戶端軟件可采用visual c++、visual basic、delphi等編程軟件實現(xiàn),這里主要對如何用visual basic 6.0編寫dde、opc 客戶端實現(xiàn)和dde、opc 服務器通訊的方法分別予以介紹。

          4.1 利用vb開發(fā)dde 客戶端

          作為microsoft 公司軟件產(chǎn)品的重要一員,visual basic理所當然的對windows操作系統(tǒng)的下的dde技術給予支持。visual basic為一些控件提供了用于dde動態(tài)數(shù)據(jù)交換的linktopic、linkitem、linktimeout、linkmode等屬性,以及l(fā)inkrequest、linkpoke、linkexecute、linksend等方法。其中,linktopic、linkitem兩項屬性分別對應于dde通訊架構中的主題名和數(shù)據(jù)項名,linktimeout、linkmode分別表示dde 客戶端與dde服務器的嘗試連接時間和連接模式(數(shù)據(jù)交換方式),linkmode有manual、notify、automatic三種方式,而automatic方式最為常用,它主要用于和dde server建立“熱連接(hot link)”,即在dde服務器數(shù)據(jù)發(fā)生變化時主動發(fā)送數(shù)據(jù)給客戶端。linkrequest、linkpoke分別用于dde 客戶端對dde服務器數(shù)據(jù)的讀寫操作。

          根據(jù)應用程序與服務器程序dde方式通訊機制,可以在visual basic編程環(huán)境下開發(fā)適合實際需要的dde客戶端應用程序。例如,visual basic訪問intouch 程序變量“intouchtag”時,其代碼為
          label1.linktopic= "view|tagn-ame"
          label1.linkitem= "intouchtag"
            label1.linkmode=1
            label1.linkrequest

          其中,代碼中的“view”和“tagname”分別表示intouch windowviewer的應用程序名和主題名,“l(fā)inkmode”值為1表示該應用程序與windowviewer的連接方式為automatic(即“熱連接”)方式。這樣,當該應用代碼被執(zhí)行時,label1的值便隨intouch windowviewer“intouchtag”變量的變化而變化。

          同樣可以在visual basic中添加label2、label3,并建立和dassidirect、rsllinx的dde通訊連接,使其分別隨所連接s7-300 plc數(shù)據(jù)db5.dbw20、controllogix 1756-l55 plc全局變量“l(fā)inxlogixtag”數(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的應用程序名以及在dassidirect和rslinx dde服務器中建立的主題名。而“db5.w20”和“l(fā)inxlogixtag”則分別對應于s7-300 plc數(shù)據(jù)db5.dbw20和controllogix 1756-l55 plc全局變量linxlogixtag,這樣,該段代碼被執(zhí)行時,label2和label3的數(shù)值將隨plc中數(shù)據(jù)db5.dbw20與linxlogixtag變量值的變化而變化。

          netdde是dde的網(wǎng)絡擴展形式,主要為網(wǎng)絡上不同計算機之間的動態(tài)數(shù)據(jù)交換提供方便。在visual basic編程環(huán)境下,也可以開發(fā)基于netdde的客戶端應用程序。與開發(fā)dde客戶端不同的是,網(wǎng)絡上作為dde服務器和客戶端的計算機都要啟動netdde.exe服務,并在作為dde服務器的計算機上同時啟動ddeshare.exe程序,對新建的dde共享進行必要的設置。如下代碼的功能為計算機pc02讀取pc01計算機上rslinx dde服務器所采集的"linxlogixtag" plc變量的值。

            label4.linktopic= "pc01ndde$|pc01shrnm"
            label4.linkitem= "linxlogixtag"
            label4.linkmode=1
            label4.linkrequest

          由于netdde的訪問采用了“計算機名>ndde$>|共享名>!變量名>”的形式,所以,上述代碼中的“pc01”、“pc01shrnm”分別為dde服務器的計算機名和ddeshare.exe程序中的新建共享名,而dde訪問所需要的應用程序名rslinx和主題名rslinxtopic則在新建共享“pc01shrnm”的屬性對話框中進行了設置。

          此外,由于excel也支持dde技術,所以pc01計算機上rslinx dde服務器plc變量linxlogixtag的變化也可以在pc02計算機excel表格中得到體現(xiàn),只需要在需要顯示該值的單元格中填寫如下代碼=‘pc01ndde$‘|pc01shrnm!linxlogixtag

          4.2 利用vb開發(fā)opc 客戶端

          利用visual basic所開發(fā)的opc客戶端應用程序主要采用自動化通信接口和opc服務器程序實施通信。而opc基金會提供的opc自動化接口 opcdaauto.dll動態(tài)鏈接庫集成了所有用于對opc服務器進行訪問的對象、屬性和方法,為利用visual basic開發(fā)opc客戶端應用程序提供了極大方便。程序設計時,opc客戶程序應當首先生成opc服務器支持的opc對象,然后再使用opc對象支持的屬性和方法,實現(xiàn)對opc服務器的操作和訪問。

          opc數(shù)據(jù)訪問對象主要包括opc服務器(opcserver)、opc組集合(opcgroups)、opc組(opcgroup)、opc標簽集合(opcitems)、opc標簽(opcitem)、opc瀏覽器(opcbrowser)等幾個部分。程序設計時,要首先在visual basic環(huán)境下選擇對opc automation 2.0接口的引用,此時,opc對象會被自動添加到正在開發(fā)的工程項目中,然后,再根據(jù)需要建立這些對象的實例并利用其屬性和方法來實現(xiàn)對opc服務器的訪問。對opc服務器的訪問主要包括聲明opc對象實例、連接opc server、添加標簽變量、讀寫opc服務器(同步/異步)、斷開連接等幾個步驟。

          opc對象實例的聲明主要包括對opc服務器、opc組集合、opc組、opc標簽集合、opc服務器句柄的聲明及程序所需要的其它實例的聲明。opc客戶端和opc server的連接主要靠調(diào)用opc服務器對象實例的connect方法函數(shù)來完成,例如,連接本地計算機dassidirect和rslinx opc server 的代碼分別為connect("archestra.dassidirect.1")和connect("rslinx opc server")

          連接網(wǎng)絡遠程計算機(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")



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();