OPC技術(shù)介紹與OPC開發(fā)技術(shù)
OPC全稱是OLE for Process Control,它的出現(xiàn)為基于Windows的應(yīng)用程序和現(xiàn)場過程控制應(yīng)用建立了橋梁。在過去,為了存取現(xiàn)場設(shè)備的數(shù)據(jù)信息,每一個應(yīng)用軟件開發(fā)商都需要編寫專用的接口函數(shù)。由于現(xiàn)場設(shè)備的種類繁多,且產(chǎn)品的不斷升級,往往給用戶和軟件開發(fā)商帶來了巨大的工作負(fù)擔(dān)。通常這樣也不能滿足工作的實(shí)際需要,系統(tǒng)集成商和開發(fā)商急切需要一種具有高效性、可靠性、開放性、可互操作性的即插即用的設(shè)備驅(qū)動程序。在這種情況下,OPC標(biāo)準(zhǔn)應(yīng)運(yùn)而生。OPC標(biāo)準(zhǔn)以微軟公司的OLE技術(shù)為基礎(chǔ),它的制定是通過提供一套標(biāo)準(zhǔn)的OLE/COM接口完成的,在OPC技術(shù)中使用的是OLE 2技術(shù),OLE標(biāo)準(zhǔn)允許多臺微機(jī)之間交換文檔、圖形等對象。
COM是COMPONENT OBJECT MODEL的縮寫,是所有OLE機(jī)制的基礎(chǔ)。COM是一種為了實(shí)現(xiàn)與編程語言無關(guān)的對象而制定的標(biāo)準(zhǔn),該標(biāo)準(zhǔn)將WINDOWS下的對象定義為獨(dú)立單元,可不受程序限制地訪問這些單元。這種標(biāo)準(zhǔn)可以使兩個應(yīng)用程序通過對象化接口通訊,而不需要知道對方是如何創(chuàng)建的。例如,用戶可以使用C++語言創(chuàng)建一個WINDOWS對象,它支持一個接口,通過該接口,用戶可以訪問該對象提供的各種功能,用戶可以使用VISUAL BASIC,C,PASCAL,SMALLTALK或其它語言編寫對象訪問程序。在WINDOWS NT4.0操作系統(tǒng)下,COM規(guī)范擴(kuò)展到可訪問本機(jī)以外的其它對象,一個應(yīng)用程序所使用的對象可分布在網(wǎng)絡(luò)上,COM的這個擴(kuò)展被稱為DCOM(DISTRIBUTED COM)。 
通過DCOM技術(shù)和OPC標(biāo)準(zhǔn),完全可以創(chuàng)建一個開放的、可互操作的控制系統(tǒng)軟件。OPC采用客戶/服務(wù)器模式,把開發(fā)訪問接口的任務(wù)放在硬件生產(chǎn)廠家或第三方廠家,以O(shè)PC服務(wù)器的形式提供給用戶,解決了軟、硬件廠商的矛盾,完成了系統(tǒng)的集成,提高了系統(tǒng)的開放性和可互操作性。
OPC服務(wù)器通常支持兩種類型的訪問接口,它們分別為不同的編程語言環(huán)境提供訪問機(jī)制。這兩種接口是:自動化接口(Automation interface);自定義接口(Custom interface)。自動化接口通常是為基于腳本編程語言而定義的標(biāo)準(zhǔn)接口,可以使用VisualBasic、Delphi、PowerBuilder等編程語言開發(fā)OPC服務(wù)器的客戶應(yīng)用。而自定義接口是專門為C++等高級編程語言而制定的標(biāo)準(zhǔn)接口。OPC現(xiàn)已成為工業(yè)界系統(tǒng)互聯(lián)的缺省方案,為工業(yè)監(jiān)控編程帶來了便利,用戶不用為通訊協(xié)議的難題而苦惱。任何一家自動化軟件解決方案的提供者,如果它不能全方位地支持OPC,則必將被歷史所淘汰。
OPC規(guī)范簡介
由OPC Task Force制定的OPC(OLE for Process Control)規(guī)范于1996年8月正式誕生了,隨著1997年2月Microsoft公司推出Windows95支持的DCOM技術(shù),1997年9月新成立的OPC Foundation對OPC規(guī)范進(jìn)行修改,增加了數(shù)據(jù)訪問等一些標(biāo)準(zhǔn),OPC規(guī)范得到了進(jìn)一步的完善。
“OPC 基于Microsoft公司的 Distributed interNet Application (DNA) 構(gòu)架和 Component Object Model (COM) 技術(shù)的,根據(jù)易于擴(kuò)展性而設(shè)計(jì)的。OPC規(guī)范定義了一個工業(yè)標(biāo)準(zhǔn)接口,這個標(biāo)準(zhǔn)使得COM技術(shù)適用于過程控制和制造自動化等應(yīng)用領(lǐng)域。”O(jiān)PC 基礎(chǔ)委員會主席Dave Rehbein是這樣描述的
OPC是以O(shè)LE/COM機(jī)制作為應(yīng)用程序的通訊標(biāo)準(zhǔn)。OLE/COM是一種客戶/服務(wù)器模式,具有語言無關(guān)性、代碼重用性、易于集成性等優(yōu)點(diǎn)。OPC規(guī)范了接口函數(shù),不管現(xiàn)場設(shè)備以何種形式存在,客戶都以統(tǒng)一的方式去訪問,從而保證軟件對客戶的透明性,使得用戶完全從低層的開發(fā)中脫離出來。
應(yīng)用程序與OPC服務(wù)器之間必須有OPC接口,OPC規(guī)范提供了兩套標(biāo)準(zhǔn)接口:Custom標(biāo)準(zhǔn)接口,OLE自動化標(biāo)準(zhǔn)接口。通常在系統(tǒng)設(shè)計(jì)中采用OLE自動化標(biāo)準(zhǔn)接口。
OLE自動化標(biāo)準(zhǔn)接口,及采用OLE自動化技術(shù)進(jìn)行調(diào)用,其技術(shù)為上節(jié)所述的OLE自動化技術(shù)。OLE自動化標(biāo)準(zhǔn)接口定義了以下三層接口,依次呈包含關(guān)系。
OPC Server:OPC啟動服務(wù)器,獲得其他對象和服務(wù)的起始類,并用于返回OPC Group類對象;
OPC Group:存儲由若干OPC Item組成的Group信息,并用于返回OPC Item類對象。
OPC Item:存儲具體Item 的定義、數(shù)據(jù)值、狀態(tài)值等信息。
由于OPC規(guī)范基于OLE/COM技術(shù),同時OLE/COM的擴(kuò)展遠(yuǎn)程OLE自動化與DCOM技術(shù)支持TCP/IP等多種網(wǎng)絡(luò)協(xié)議,因此可以將OPC客戶、服務(wù)器在物理上分開,分布于網(wǎng)絡(luò)不同節(jié)點(diǎn)上。
OPC規(guī)范可以應(yīng)用在許多應(yīng)用程序中,如它們可以應(yīng)用于從SCADA 或者DCS系統(tǒng)的物理設(shè)備中獲取原始數(shù)據(jù)的最低層,它們同樣可以應(yīng)用于從SCADA 或者DCS系統(tǒng)中獲取數(shù)據(jù)到應(yīng)用程序中。實(shí)際上,OPC設(shè)計(jì)的目的就是從網(wǎng)絡(luò)上某節(jié)點(diǎn)獲取數(shù)據(jù)。圖4.2.2OPC的客戶/服務(wù)器關(guān)系圖同樣描述了OPC在SCADA系統(tǒng)的應(yīng)用。
采用OPC規(guī)范設(shè)計(jì)系統(tǒng)的好處
在進(jìn)行新型微機(jī)遠(yuǎn)動系統(tǒng)的研制中,各個計(jì)算機(jī)以及各個模塊的數(shù)據(jù)交換應(yīng)該按照OPC規(guī)范進(jìn)行。這樣做有以下好處:
·OPC規(guī)范以O(shè)LE/DCOM為技術(shù)基礎(chǔ),而OLE/DCOM支持TCP/IP等網(wǎng)絡(luò)協(xié)議,因此可以將各個子系統(tǒng)從物理上分開,分布于網(wǎng)絡(luò)的不同節(jié)點(diǎn)上。
·OPC按照面向?qū)ο蟮脑瓌t,將一個應(yīng)用程序(OPC服務(wù)器)作為一個對象封裝起來,只將接口方法暴露在外面,客戶以統(tǒng)一的方式去調(diào)用這個方法,從而保證軟件對客戶的透明性,使得用戶完全從低層的開發(fā)中脫離出來。
·OPC實(shí)現(xiàn)了遠(yuǎn)程調(diào)用,使得應(yīng)用程序的分布與系統(tǒng)硬件的分布無關(guān),便于系統(tǒng)硬件配置以及,使得系統(tǒng)的應(yīng)用范圍更廣。
采用OPC規(guī)范,便于系統(tǒng)的組態(tài)化,將系統(tǒng)復(fù)雜性大大簡化,可以大大縮短軟件開發(fā)周期,提高軟件運(yùn)行的可靠性和穩(wěn)定性,便于系統(tǒng)的升級與維護(hù)。
·OPC規(guī)范了接口函數(shù),不管現(xiàn)場設(shè)備以何種形式存在,客戶都以統(tǒng)一的方式去訪問,從而實(shí)現(xiàn)系統(tǒng)的開放性,易于實(shí)現(xiàn)與其它系統(tǒng)的接口。(end)