OPC(OLE for Process Control, 用于過程控制的OLE)是一個工業(yè)標(biāo)準(zhǔn),管理這個標(biāo)準(zhǔn)國際組織是OPC基金會,OPC基金會現(xiàn)有會員已超過220家。遍布全球,包括世界上所有主要的自動化控制系統(tǒng)、儀器儀表及過程控制系統(tǒng)的公司。
基于微軟的OLE(現(xiàn)在的Active X)、COM (部件對象模型)和DCOM (分布式部件對象模型)技術(shù)。OPC包括一整套接口、屬性和方法的標(biāo)準(zhǔn)集,用于過程控制和制造業(yè)自動化系統(tǒng)。
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技術(shù)規(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)域!監(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技術(shù)規(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)的接口。
OPC技術(shù)的應(yīng)用
由于OPC技術(shù)的采用,使得可以以更簡單的系統(tǒng)結(jié)構(gòu)、更長的壽命、更低的價格解決工業(yè)控制成為可能。同時現(xiàn)場設(shè)備與系統(tǒng)的連接也更加簡單、靈活、方便。因此OPC技術(shù)在國內(nèi)的工業(yè)控制領(lǐng)域得到了廣泛的應(yīng)用,主要應(yīng)用領(lǐng)域如下:
1)數(shù)據(jù)采集技術(shù)。OPC技術(shù)通常在數(shù)據(jù)采集軟件中廣泛應(yīng)用,F(xiàn)在眾多硬件廠商提供的產(chǎn)品均帶有標(biāo)準(zhǔn)的OPC接口,OPC實(shí)現(xiàn)了應(yīng)用程序和工業(yè)控制設(shè)備之間高效、靈活的數(shù)據(jù)讀寫,可以編制符合標(biāo)準(zhǔn)OPC接口的客戶端應(yīng)用軟件完成數(shù)據(jù)的采集任務(wù)。
2)歷史數(shù)據(jù)訪問。OPC提供了讀取存儲在過程數(shù)據(jù)存檔文件、數(shù)據(jù)庫或遠(yuǎn)程終端設(shè)備中的歷史數(shù)據(jù)以及對其操作、編輯的方法。
3)報(bào)警和事件處理。OPC提供了OPC服務(wù)器發(fā)生異常時,以及OPC服務(wù)器設(shè)定事件到來時向OPC客戶發(fā)送通知的一種機(jī)制,通過使用OPC技術(shù),能夠更好的捕捉控制過程中的各種報(bào)警和事件并給予相應(yīng)的處理。
4)數(shù)據(jù)冗余技術(shù)。工控軟件開發(fā)中,冗余技術(shù)是一項(xiàng)最為重要的技術(shù),它是系統(tǒng)長期穩(wěn)定工作的保障。OPC技術(shù)的使用可以更加方便的實(shí)現(xiàn)軟件冗余,而且具有較好的開放性和可互操作性。
5)遠(yuǎn)程數(shù)據(jù)訪問。借助Microsoft的DCOM(分散式組件對象模型)技術(shù),OPC實(shí)現(xiàn)了高性能的遠(yuǎn)程數(shù)據(jù)訪問能力,從而使得工業(yè)控制軟件之間的數(shù)據(jù)交換更加方便。
OPC技術(shù)在工業(yè)控制領(lǐng)域應(yīng)用中的作用
OPC技術(shù)對工業(yè)控制系統(tǒng)的影響及應(yīng)用是基礎(chǔ)性和革命性的,簡單地說,它的作用主要表現(xiàn)在以下幾個方面:
首先,OPC解決了設(shè)備驅(qū)動程序開發(fā)中的異構(gòu)問題。隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,用戶需求的不斷提高,以DCS(集散控制系統(tǒng))為主體的工業(yè)控制系統(tǒng)功能日趨強(qiáng)大,結(jié)構(gòu)日益復(fù)雜,規(guī)模也越來越大,一套工業(yè)控制系統(tǒng)往往選用了幾家甚至十幾家不同公司的控制設(shè)備或系統(tǒng)集成一個大的系統(tǒng),但由于缺乏統(tǒng)一的標(biāo)準(zhǔn),開發(fā)商必須對系統(tǒng)的每一種設(shè)備都編寫相應(yīng)的驅(qū)動程序,而且,當(dāng)硬件設(shè)備升級、修改時,驅(qū)動程序也必須跟隨修改。同時,一個系統(tǒng)中如果運(yùn)行不同公司的控制軟件,也存在著互沖突的風(fēng)險(xiǎn)。
有了OPC后,由于有了統(tǒng)一的接口標(biāo)準(zhǔn),硬件廠商只需提供一套符合OPC技術(shù)的程序,軟件開發(fā)人員也只需編寫一個接口,而用戶可以方便地進(jìn)行設(shè)備的選型和功能的擴(kuò)充,只要它們提供了OPC支持,所有的數(shù)據(jù)交換都通過OPC接口進(jìn)行,而不論連接的控制系統(tǒng)或設(shè)備是哪個具體廠商提供。
其次,OPC解決了現(xiàn)場總線系統(tǒng)中異構(gòu)網(wǎng)段之間數(shù)據(jù)交換的問題,F(xiàn)場總線系統(tǒng)仍然存在多種總線并存的局面,因此系統(tǒng)集成和異構(gòu)控制網(wǎng)段之間的數(shù)據(jù)交換面臨許多困難。有了OPC作為異構(gòu)網(wǎng)段集成的中間件,只要每個總線段提供各自的OPC服務(wù)器,任一OPC客戶端軟件都可以通過一致的OPC接口訪問這些OPC服務(wù)器,從而獲取各個總線段的數(shù)據(jù), 并可以很好地實(shí)現(xiàn)異構(gòu)總線段之間的數(shù)據(jù)交互。而且,當(dāng)其中某個總線的協(xié)議版本做了升級,也只需對相對應(yīng)總線的程序作升級修改。
第三,OPC可作為訪問專有數(shù)據(jù)庫的中間件。實(shí)際應(yīng)用中,許多控制軟件都采用專有的實(shí)時數(shù)據(jù)庫或歷史數(shù)據(jù)庫,這些數(shù)據(jù)庫由控制軟件的開發(fā)商自主開發(fā)。對這類數(shù)據(jù)庫的訪問不像訪問通用數(shù)據(jù)庫那么容易,只能通過調(diào)用開發(fā)商提供的API函數(shù)或其它特殊的方式。然而不同開發(fā)商提供的API函數(shù)是不一樣的,這就帶來和硬件驅(qū)動器開發(fā)類似的問題:要訪問不同監(jiān)控軟件的專有數(shù)據(jù)庫,必須編寫不同的代碼,這樣顯然十分繁瑣。采用OPC則能有效解決這個問題,只要專有數(shù)據(jù)庫的開發(fā)商在提供數(shù)據(jù)庫的同時也能提供一個訪問該數(shù)據(jù)庫的OPC服務(wù)器,那么當(dāng)用戶要訪問時只需按照OPC規(guī)范的要求編寫OPC客戶端程序而無需了解該專有數(shù)據(jù)庫特定的接口要求。
第四,OPC便于集成不同的數(shù)據(jù),為控制系統(tǒng)向管理系統(tǒng)升級提供了方便。當(dāng)前控制系統(tǒng)的趨勢之一就是網(wǎng)絡(luò)化,控制系統(tǒng)內(nèi)部采用網(wǎng)絡(luò)技術(shù),控制系統(tǒng)與控制系統(tǒng)之間也網(wǎng)絡(luò)連接,組成更大的系統(tǒng),而且,整個控制系統(tǒng)與企業(yè)的管理系統(tǒng)也網(wǎng)絡(luò)連接,控制系統(tǒng)只是整個企業(yè)網(wǎng)的一個子網(wǎng)。在實(shí)現(xiàn)這樣的企業(yè)網(wǎng)絡(luò)過程中,OPC也能夠發(fā)揮重要作用。在企業(yè)的信息集成,包括現(xiàn)場設(shè)備與監(jiān)控系統(tǒng)之間、監(jiān)控系統(tǒng)內(nèi)部各組件之間、監(jiān)控系統(tǒng)與企業(yè)管理系統(tǒng)之間以及監(jiān)控系統(tǒng)與Internet之間的信息集成,OPC作為連接件,按一套標(biāo)準(zhǔn)的COM對象、方法和屬性,提供了方便的信息流通和交換。無論是管理系統(tǒng)還是控制系統(tǒng),無論是PLC(可編程控制器)還是DCS,或者是FCS(現(xiàn)場總線控制系統(tǒng)),都可以通過OPC快速可靠的彼此交換信息。換句話說,OPC是整個企業(yè)網(wǎng)絡(luò)的數(shù)據(jù)接口規(guī)范,所以,OPC提升了控制系統(tǒng)的功能,增強(qiáng)了網(wǎng)絡(luò)的功能,提高了企業(yè)管理的水平。
最后,OPC使控制軟件能夠與硬件分別設(shè)計(jì)、生產(chǎn)和發(fā)展,并有利于獨(dú)立的第三方軟件供應(yīng)商產(chǎn)生與發(fā)展,從而形成新的社會分工,有更多的競爭機(jī)制,為社會提供更多更好的產(chǎn)品。
OPC作為一項(xiàng)逐漸成型的技術(shù)已得到國內(nèi)外廠商的高度重視,許多公司都在原來產(chǎn)品的基礎(chǔ)上增加了對OPC的支持。由于統(tǒng)一了數(shù)據(jù)訪問的接口,使控制系統(tǒng)進(jìn)一步走向開放,實(shí)現(xiàn)信息的集成和共享,用戶能夠得到更多的方便。OPC技術(shù)改變了原有的控制系統(tǒng)模式,給國內(nèi)系統(tǒng)生產(chǎn)廠商提出了一個發(fā)展的機(jī)遇和挑戰(zhàn),符合OPC規(guī)范的軟、硬件也已被廣泛應(yīng)用,給工業(yè)自動化領(lǐng)域帶來了勃勃生機(jī)。