1 OPC簡(jiǎn)介
OPC是 OLE for Process Control 的縮寫(xiě),即把 OLE 技術(shù)應(yīng)用于工業(yè)控制領(lǐng)域。
OPC的出現(xiàn)為基于Windows的應(yīng)用程序和現(xiàn)場(chǎng)過(guò)程控制應(yīng)用建立了橋梁。在過(guò)去,為了存取現(xiàn)場(chǎng)設(shè)備的數(shù)據(jù)信息,每一個(gè)應(yīng)用軟件開(kāi)發(fā)商都需要編寫(xiě)專(zhuān)用的接口函數(shù)。由于現(xiàn)場(chǎng)設(shè)備的種類(lèi)繁多,且產(chǎn)品的不斷升級(jí),往往給用戶(hù)和軟件開(kāi)發(fā)商帶來(lái)了巨大的工作負(fù)擔(dān)。通常這樣也不能滿(mǎn)足工作的實(shí)際需要,系統(tǒng)集成商和開(kāi)發(fā)商急切需要一種具有高效性、可靠性、開(kāi)放性、可互操作性的即插即用的設(shè)備驅(qū)動(dòng)程序。在這種情況下,OPC標(biāo)準(zhǔn)應(yīng)運(yùn)而生。OPC標(biāo)準(zhǔn)以微軟公司的 OLE技術(shù)為基礎(chǔ),它的制定是通過(guò)提供一套標(biāo)準(zhǔn)的OLE/COM接口完成的,在OPC技術(shù)中使用的是 OLE2技術(shù),OLE標(biāo)準(zhǔn)允許多臺(tái)微機(jī)之間交換文檔、圖形等對(duì)象。
OPC是以O(shè)LE/COM機(jī)制作為應(yīng)用程序的通訊標(biāo)準(zhǔn)。OLE/COM是一種客戶(hù)/服務(wù)器模式,具有語(yǔ)言無(wú)關(guān)性、代碼重用性、易于集成性等優(yōu)點(diǎn)。OPC規(guī)范了接口函數(shù),不管現(xiàn)場(chǎng)設(shè)備以何種形式存在,客戶(hù)都以統(tǒng)一的方式去訪(fǎng)問(wèn),從而保證軟件對(duì)客戶(hù)的透明性,使得用戶(hù)完全從低層的開(kāi)發(fā)中脫離出來(lái)。
應(yīng)用程序與OPC服務(wù)器之間必須有 OPC 接口,OPC 規(guī)范提供了兩套標(biāo)準(zhǔn)接口:Custom 標(biāo)準(zhǔn)接口,OLE 自動(dòng)化標(biāo)準(zhǔn)接口。通常在系統(tǒng)設(shè)計(jì)中采用OLE自動(dòng)化標(biāo)準(zhǔn)接口,OLE 自動(dòng)化標(biāo)準(zhǔn)接口,及采用 OLE 自動(dòng)化技術(shù)進(jìn)行調(diào)用,其技術(shù)為上節(jié)所述的 OLE 自動(dòng)化技術(shù)。OLE 自動(dòng)化標(biāo)準(zhǔn)接口定義了以下三層接口,依次呈包含關(guān)系:
1)OPC Server:OPC 啟動(dòng)服務(wù)器,獲得其他對(duì)象和服務(wù)的起始類(lèi),并用于返回 OPC Group 類(lèi)對(duì)象。
2)OPC Group:存儲(chǔ)由若干 OPC Item 組成的 Group 信息,并用于返回 OPC Item 類(lèi)對(duì)象。
3)OPC Item:存儲(chǔ)具體 Item 的定義、數(shù)據(jù)值、狀態(tài)值等信息。
2 采用OPC規(guī)范設(shè)計(jì)系統(tǒng)的優(yōu)勢(shì)
1)OPC規(guī)范以 OLE/DCOM 為技術(shù)基礎(chǔ),而 OLE/DCOM 支持 TCP/IP 等網(wǎng)絡(luò)協(xié)議,因此可以將各個(gè)子系統(tǒng)從物理上分開(kāi),分布于網(wǎng)絡(luò)的不同節(jié)點(diǎn)上。
2)OPC按照面向?qū)ο蟮脑瓌t,將一個(gè)應(yīng)用程序(OPC 服務(wù)器)作為一個(gè)對(duì)象封裝起來(lái),只將接口方法暴露在外面,客戶(hù)以統(tǒng)一的方式去調(diào)用這個(gè)方法,從而保證軟件對(duì)客戶(hù)的透明性,使得用戶(hù)完全從低層的開(kāi)發(fā)中脫離出來(lái)。
3)OPC實(shí)現(xiàn)了遠(yuǎn)程調(diào)用,使得應(yīng)用程序的分布與系統(tǒng)硬件的分布無(wú)關(guān),便于系統(tǒng)硬件配置以及使得系統(tǒng)的應(yīng)用范圍更廣。
4)采用OPC規(guī)范,便于系統(tǒng)的組態(tài)化,將系統(tǒng)復(fù)雜性大大簡(jiǎn)化,可以大大縮短軟件開(kāi)發(fā)周期,提高軟件運(yùn)行的可靠性和穩(wěn)定性,便于系統(tǒng)的升級(jí)與維護(hù)。
5)OPC 規(guī)范了接口函數(shù),不管現(xiàn)場(chǎng)設(shè)備以何種形式存在,客戶(hù)都以統(tǒng)一的方式去訪(fǎng)問(wèn),從而實(shí)現(xiàn)系統(tǒng)的開(kāi)放性,易于實(shí)現(xiàn)與其它系統(tǒng)的接口。
3 使用VB6.0編寫(xiě)OPC Client訪(fǎng)問(wèn)世紀(jì)星
世紀(jì)星同時(shí)提供OPC Client和OPC Server兩種功能,想要通過(guò)OPC方式和世紀(jì)星交換數(shù)據(jù),必須要編寫(xiě)OPC Client和OPC Server其中的任意一種。由于編寫(xiě)OPC Server程序具有一定難度,所以我們建議工程技術(shù)人員開(kāi)發(fā)OPC Client來(lái)和世紀(jì)星的OPC Server交互。
1)世紀(jì)星工程
使用OPC Client訪(fǎng)問(wèn)世紀(jì)星是不需要在世紀(jì)星中做任何特殊配置的,我們?cè)谑兰o(jì)星中創(chuàng)建如下類(lèi)型變量。在應(yīng)用程序命令語(yǔ)言中讓這些變量發(fā)生變化。
圖1 變量列表
圖2 應(yīng)用程序命令語(yǔ)言腳本
圖3 世紀(jì)星運(yùn)行畫(huà)面
2)VB6.0編寫(xiě)OPC Client
B、畫(huà)面
圖4 OPC Client界面
3)示例說(shuō)明
A、使用OPC之前可能需要安裝OPC Data Access 2.0 Components。
B、聯(lián)網(wǎng)運(yùn)行需要配置DCOM,配置的詳細(xì)情節(jié)請(qǐng)參考世紀(jì)星幫助或世紀(jì)星安裝光盤(pán)中的《世紀(jì)星OPC Server配置指南》。
C、本例只演示從世紀(jì)星中讀取數(shù)據(jù),讀者可自行研究回寫(xiě)數(shù)據(jù)的例子。
4 世紀(jì)星 OPC Server 配置指南
由于Windows XP SP2操作系統(tǒng)的安全特性非常高,所以配置也相對(duì)其他系統(tǒng)而言是最復(fù)雜的。下面以 Windows XP SP2操作系統(tǒng)為例來(lái)說(shuō)明CenturyStar OPCServer的配置方法。
1) CenturyStar OPCServer的安裝
在安裝CenturyStar的過(guò)程中,CenturyStar OPCServer和OPC的核心組件會(huì)自動(dòng)被安裝到計(jì)算機(jī)上。安裝成功后,計(jì)算機(jī)上會(huì)注冊(cè)有一個(gè)服務(wù)器: CenturyStar. OPCServer。
2)Windows安全性配置
1.防火墻
第一種方法是關(guān)閉防火墻。在控制面板中打開(kāi)Windows防火墻,在“常規(guī)”頁(yè)面中選擇關(guān)閉。
第二種方法是不關(guān)閉防火墻,添加一個(gè)例外到防火墻并開(kāi)放DCOM端口。在控制面板中打開(kāi)安全中心,選擇Windows防火墻,在“例外”頁(yè)面中選擇添加程序。需要“添加的程序”有Microsoft Management Console(即:mmc.exe,目錄:C:\Windows\System32), OPCServer.exe(目錄:C:\CenturyStar),OPCClient.exe(目錄:C:\CenturyStar),OPCEnum.exe(目錄:C:\Windows\System32)。選擇“添加端口”,名稱(chēng):DCOM,端口:135,類(lèi)型:TCP。
2.啟用文件共享
在控制面板中打開(kāi)網(wǎng)絡(luò)安裝向?qū)?,?ldquo;文件和打印機(jī)共享”頁(yè)面選擇啟用。
3)DCOM配置
在開(kāi)始菜單中選擇“運(yùn)行”,輸入dcomcnfg,回車(chē)。打開(kāi)“組件服務(wù)——計(jì)算機(jī)”,右鍵“我的電腦”——屬性,在“默認(rèn)”屬性頁(yè)面,“在此計(jì)算機(jī)上啟用分布式COM”上打勾;“默認(rèn)身份級(jí)別”選擇無(wú),“默認(rèn)模擬級(jí)別”選擇標(biāo)識(shí);在“默認(rèn)協(xié)議”頁(yè)面,將“面向連接的TCP/IP”移到最上方;在“COM安全”頁(yè)面里,“訪(fǎng)問(wèn)權(quán)限”中“編輯限制”添加Everyone并附給所有權(quán)限,附給Anonymous Logon所有權(quán)限,“編輯默認(rèn)值”添加Everyone并附給所有權(quán)限,附給System所有權(quán)限;“啟動(dòng)和激活權(quán)限”中“編輯限制”添加Everyone并附給所有權(quán)限,“編輯默認(rèn)值”添加Everyone并附給所有權(quán)限,附給Interactive,System所有權(quán)限。
展開(kāi)我的電腦——DCOM配置,選擇CenturyStar.OPCServer,“常規(guī)”頁(yè)面“身份驗(yàn)證”選擇無(wú);“位置”頁(yè)面“在此計(jì)算機(jī)運(yùn)行應(yīng)用程序”上打勾;“安全”頁(yè)面在“配置權(quán)限”中添加Everyone并附給所有權(quán)限,附給System所有權(quán)限;在“標(biāo)識(shí)”頁(yè)面中選擇“交互式用戶(hù)”。
OPCEnum的DCOM配置參考CenturyStar.OPCServer。
注意:配置完必須重起計(jì)算機(jī)才能生效,客戶(hù)機(jī)可配置參考服務(wù)器配置。
5 小結(jié)
如果需要世紀(jì)星和第三方軟件通訊盡量使用OPC方式,這種方式的優(yōu)點(diǎn)是效率較高,容易實(shí)現(xiàn)網(wǎng)絡(luò)連接。