1 引言
隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)、控制技術(shù)、通信技術(shù)的發(fā)展,工業(yè)控制信息系統(tǒng)集成踏上了工業(yè)控制歷史的舞臺(tái)(信息集成即將控制系統(tǒng)和企業(yè)的上層管理系統(tǒng)結(jié)合到一起)。但是,隨著現(xiàn)代工業(yè)的發(fā)展,工業(yè)現(xiàn)場(chǎng)可以采用的工業(yè)控制設(shè)備種類越來越豐富,包括分布式控制系統(tǒng)(DCS)、可編程邏輯控制器(PLC)、工業(yè)控制計(jì)算機(jī)、智能調(diào)節(jié)器等。如何實(shí)現(xiàn)工業(yè)控制計(jì)算機(jī)環(huán)境中的各個(gè)技術(shù)子系統(tǒng)之間信息的溝通和傳遞成為信息系統(tǒng)集成亟待解決的首要問題,這就需要一種能夠有效進(jìn)行數(shù)據(jù)訪問和管理的開放標(biāo)準(zhǔn),OPC正是在這樣的背景下產(chǎn)生與發(fā)展起來。
2 OPC技術(shù)簡介
OPC是為了解決應(yīng)用軟件和各種設(shè)備驅(qū)動(dòng)程序的通訊而產(chǎn)生的一項(xiàng)工業(yè)技術(shù)規(guī)范和標(biāo)準(zhǔn),它是Object Linking and Embedding(OLE)for Process Control的縮寫,是微軟公司的對(duì)象鏈接和嵌入技術(shù)在過程控制方面的應(yīng)用。它采用客戶/服務(wù)器體系,基于Microsoft的OLE/COM和DCOM(Distributed Component Object Model)技術(shù),為硬件廠商和軟件開發(fā)者提供了一套適合過程控制應(yīng)用,支持過程數(shù)據(jù)訪問、報(bào)警、事件與歷史數(shù)據(jù)訪問等功能的接口、便于不同供應(yīng)商的軟硬件實(shí)現(xiàn)“即插即用”的連接與系統(tǒng)集成。如圖1所示。
2.1 OPC對(duì)象與接口
OPC規(guī)范中為OPC服務(wù)器規(guī)定了兩套接口(如圖2所示):定制接口和自動(dòng)化接口。定制接口是OPC服務(wù)器必須提供的,而自動(dòng)化接口是可選的。定制接口只支持用C/C++編寫的客戶應(yīng)用,自動(dòng)化接口則支持更上層的應(yīng)用,如VB、VBA等應(yīng)用程序。
按照功能的不同,OPC基金會(huì)發(fā)布的OPC規(guī)范說明的每套接口分為3類接口:
(1) OPC數(shù)據(jù)訪問接口(OPC Data Access Interface,OPC DA):OPC DA中主要包括3類對(duì)象,分別是OPC Server,OPC Group,OPC Item。
(2) OPC報(bào)警和事件接口(OPC Alarm & Event Access Interface,OPC AE):OPC AE主要負(fù)責(zé)讓服務(wù)器在特定事件和報(bào)警條件發(fā)生時(shí)及時(shí)通知客戶,主要的對(duì)象有:OPC EventServer,OPC EventSubscripti和OPC EventAreaBrowser對(duì)象。
(3) OPC歷史數(shù)據(jù)訪問接口(OPC Historical Data AccessInterface,OPC HAD):歷史數(shù)據(jù)服務(wù)器可以向需要?dú)v史數(shù)據(jù)的客戶提供有關(guān)的歷史信息源。
OPC標(biāo)準(zhǔn)規(guī)定了基本OPC對(duì)象有三個(gè):OPC Server、OPC Group和OPC Item。其中OPC Server和OPC Group接口圖如
3、圖4所示。
圖3 OPC服務(wù)器對(duì)象
圖4 OPC組對(duì)象
2.2 OPC采集數(shù)據(jù)的方式
OPC客戶獲得的數(shù)據(jù)來自于OPC服務(wù)器緩存區(qū),也可以來自于現(xiàn)場(chǎng)設(shè)備;從設(shè)備讀取數(shù)據(jù)速度比緩存區(qū)慢一些,一般只在故障診斷或極特殊的情況下才會(huì)從設(shè)備讀取數(shù)據(jù)。同步讀取、數(shù)據(jù)更新時(shí),數(shù)據(jù)可以來自O(shè)PC服務(wù)器緩存區(qū)或現(xiàn)場(chǎng)設(shè)備;數(shù)據(jù)訂閱、異步讀取數(shù)據(jù)直接從現(xiàn)場(chǎng)設(shè)備讀取。
OPC客戶采集數(shù)據(jù)的方式有如下幾種。
(1) 同步讀寫數(shù)據(jù) OPC服務(wù)器按照OPC應(yīng)用程序的要求,把得到的數(shù)據(jù)結(jié)果作為參數(shù)返回給OPC應(yīng)用程序,在得到結(jié)果之前OPC應(yīng)用程序一直處于等待狀態(tài)。
(2) 異步讀寫數(shù)據(jù) OPC應(yīng)用程序向OPC服務(wù)器發(fā)出請(qǐng)求后,可以不等待返回的結(jié)果處理其它事務(wù)。當(dāng)OPC服務(wù)器完成數(shù)據(jù)訪問時(shí),觸發(fā)OPC應(yīng)用程序的異步訪問完成事件,將數(shù)據(jù)訪問結(jié)果傳送給OPC應(yīng)用程序。讀寫過程如圖5所示。
圖5 異步數(shù)據(jù)訪問處理
(3) 數(shù)據(jù)訂閱 這種方式OPC服務(wù)器處于主動(dòng)狀態(tài),服務(wù)器按一定的更新周期更新OPC服務(wù)器的數(shù)據(jù)緩沖器的數(shù)據(jù),如果數(shù)據(jù)與前次相比變化幅度大于允許變化幅度(也稱為死區(qū),DeadBand),則自動(dòng)通過一個(gè)回調(diào)(IadivsSink::OndataChange或IOPCDataCallback::OnDataChange)向客戶發(fā)送數(shù)據(jù)。讀寫過程如圖6所示。
圖6 訂閱方式數(shù)據(jù)采集
(4) 數(shù)據(jù)更新 OPC客戶強(qiáng)制OPC服務(wù)器讀取一個(gè)有效組所有活動(dòng)的Item,并通過一個(gè)回調(diào)向客戶發(fā)送數(shù)據(jù)。數(shù)據(jù)更新機(jī)能只對(duì)有效組才可用。
3 OPC技術(shù)在某鋼廠改造工程中的應(yīng)用
在傳統(tǒng)的鋼廠監(jiān)控系統(tǒng)中,要監(jiān)測(cè)的設(shè)備種類很多,而且現(xiàn)場(chǎng)總線的應(yīng)用也不一樣,進(jìn)行工程改造的目的就是為了將這些分散的子系統(tǒng)有效地集成起來,同時(shí),擴(kuò)大生產(chǎn)規(guī)模,增加一些控制設(shè)備。圖7為基于OPC的過程控制系統(tǒng)結(jié)構(gòu)圖。
圖7 基于OPC的過程控制系統(tǒng)結(jié)構(gòu)
傳統(tǒng)的過程控制系統(tǒng)是一對(duì)一的系統(tǒng),任何一種HMI等上位監(jiān)控軟件或其它應(yīng)用軟件在使用某種硬件設(shè)備時(shí)都需要開發(fā)專用的驅(qū)動(dòng)程序。新增應(yīng)用軟件或者硬件設(shè)備帶來的只會(huì)是驅(qū)動(dòng)程序種類的迅速增長。基于OPC技術(shù)的過程控制系統(tǒng)則可以完美地解決傳統(tǒng)方式中的上述問題。任何一種設(shè)備只需要提供一種驅(qū)動(dòng)就可以供任何軟件系統(tǒng)使用,輕松實(shí)現(xiàn)系統(tǒng)的擴(kuò)展。從圖7中可以看出,OPC解決了現(xiàn)場(chǎng)總線系統(tǒng)中異構(gòu)網(wǎng)段之間數(shù)據(jù)交換的問題,還可作為訪問專有數(shù)據(jù)庫的中間件。OPC便于集成不同的數(shù)據(jù),為控制系統(tǒng)向管理系統(tǒng)升級(jí)提供了方便。而且,OPC使控制軟件能夠與硬件分別設(shè)計(jì)、生產(chǎn)和發(fā)展,并有利于獨(dú)立的第三方軟件供應(yīng)商產(chǎn)生與發(fā)展,從而形成新的社會(huì)分工,有更多的競(jìng)爭機(jī)制,為社會(huì)提供更多更好的產(chǎn)品。
4 結(jié)語
采用基于COM/DCOM技術(shù)的OPC規(guī)范,能提高計(jì)算機(jī)控制軟件系統(tǒng)的開放性能,各應(yīng)用程序之間通過標(biāo)準(zhǔn)的OPC接口進(jìn)行訪問控制。OPC技術(shù)改變了原有的控制系統(tǒng)模式,給國內(nèi)系統(tǒng)生產(chǎn)廠商提出了一個(gè)發(fā)展的機(jī)遇和挑戰(zhàn),符合OPC規(guī)范的軟、硬件也已被廣泛應(yīng)用,給工業(yè)自動(dòng)化領(lǐng)域帶來了勃勃生機(jī)。