【摘要】針對(duì)傳統(tǒng)控制系統(tǒng)的發(fā)展?fàn)顩r,指出當(dāng)前傳統(tǒng)控制系統(tǒng)存在的諸多問(wèn)題,通過(guò)研究OPC規(guī)范特別是OPC數(shù)據(jù)存取規(guī)范3.0版,研究其數(shù)據(jù)組織形式與訪問(wèn)機(jī)制,結(jié)合基于OPC技術(shù)應(yīng)用的嵌入式智能控制器,給出了基于OPC技術(shù)的解決方案。
【關(guān)鍵詞】傳統(tǒng)控制系統(tǒng)OPC技術(shù)3.0規(guī)范嵌入式
1引言
在傳統(tǒng)控制系統(tǒng)中,隨著智能儀表的大量運(yùn)用和現(xiàn)場(chǎng)總線的迅速發(fā)展,大量現(xiàn)場(chǎng)信息(如現(xiàn)場(chǎng)的溫度、壓力等被測(cè)參數(shù),以及裝置本身的運(yùn)動(dòng)狀況、組態(tài)參數(shù)等)在傳入監(jiān)控計(jì)算機(jī)時(shí),存在著計(jì)算機(jī)內(nèi)部應(yīng)用程序?qū)ΜF(xiàn)場(chǎng)信息的共享和交互問(wèn)題。由于缺乏統(tǒng)一的標(biāo)準(zhǔn),對(duì)于不同供應(yīng)商提供的硬件設(shè)備,工控軟件往往需要開(kāi)發(fā)獨(dú)立的驅(qū)動(dòng)程序(如圖1),這給硬件設(shè)備的更新帶來(lái)了困難。同時(shí),即使安裝在同一計(jì)算機(jī)中的軟件,如SCADA(監(jiān)控與數(shù)據(jù)采集)系統(tǒng),NMI(人機(jī)接口)系統(tǒng)等應(yīng)用程序,由于具有獨(dú)立的驅(qū)動(dòng)程序,一般也不允許同時(shí)訪問(wèn)相同的設(shè)備,否則容易導(dǎo)致整個(gè)系統(tǒng)的崩潰。
綜上所述,傳統(tǒng)控制系統(tǒng)存在著諸如驅(qū)動(dòng)程序的重復(fù)開(kāi)發(fā)和不一致,不能隨著硬件設(shè)備的升級(jí)而繼續(xù)使用,軟件訪問(wèn)沖突等問(wèn)題。正是這些問(wèn)題,促使了OPC規(guī)范的產(chǎn)生。
2OPC技術(shù)規(guī)范概述
OPC(OLE for Process Control,用于過(guò)程控制的 OLE)是一個(gè)工業(yè)標(biāo)準(zhǔn),它是基于微軟的OLE(現(xiàn)在的Active X)、COM(部件對(duì)象模型)和DCOM(分布式部件對(duì)象模型)生成的技術(shù)。OPC包括一整套接口、屬性和方法的標(biāo)準(zhǔn)集,用于過(guò)程控制和制造業(yè)自動(dòng)化系統(tǒng),管理這個(gè)標(biāo)準(zhǔn)國(guó)際組織是OPC基金會(huì)。OPC實(shí)際上提供了一種標(biāo)準(zhǔn)的數(shù)據(jù)訪問(wèn)機(jī)制,系統(tǒng)使用標(biāo)準(zhǔn)的方式從數(shù)據(jù)源獲取數(shù)據(jù),并且提供標(biāo)準(zhǔn)的接口供客戶應(yīng)用程序使用,客戶應(yīng)用程序通過(guò)標(biāo)準(zhǔn)的接口訪問(wèn)現(xiàn)場(chǎng)數(shù)據(jù)?,F(xiàn)場(chǎng)設(shè)備生產(chǎn)商只需要開(kāi)發(fā)出一套遵循OPC規(guī)范的服務(wù)器,由服務(wù)器與現(xiàn)場(chǎng)設(shè)備進(jìn)行通訊,獲取現(xiàn)場(chǎng)數(shù)據(jù)。如圖2所示,客戶應(yīng)用程序通過(guò)與服務(wù)器通訊獲取現(xiàn)場(chǎng)數(shù)據(jù),也就是說(shuō)只要現(xiàn)場(chǎng)設(shè)備提供了OPC服務(wù)器的支持,就可以通過(guò)統(tǒng)一的OPC接口程序訪問(wèn)現(xiàn)場(chǎng)設(shè)備中的數(shù)據(jù)。與傳統(tǒng)控制系統(tǒng)相比,一個(gè)OPC客戶端可以與多個(gè)OPC服務(wù)器同時(shí)進(jìn)行通訊,減少了驅(qū)動(dòng)程序的開(kāi)發(fā),提高了企業(yè)的工作效率;多個(gè)OPC客戶端也可以同時(shí)與一個(gè)OPC服務(wù)器通訊,不會(huì)出現(xiàn)系統(tǒng)崩潰等問(wèn)題。
OPC規(guī)范定義了OPC服務(wù)器與客戶端之間數(shù)據(jù)交換的方法,使得用戶能從底層開(kāi)發(fā)中脫離出來(lái),避免開(kāi)發(fā)的重復(fù)性,提高系統(tǒng)的開(kāi)放性和互操作性。但OPC規(guī)范只定義了特定的COM接口,沒(méi)有說(shuō)明如何實(shí)現(xiàn)這些接口,它只規(guī)定了OPC服務(wù)器提供給客戶端應(yīng)用程序的接口應(yīng)該具有的行為特征。OPC服務(wù)器可由不同的供應(yīng)商,根據(jù)不同的物理設(shè)備,通過(guò)不同的代碼決定服務(wù)器訪問(wèn)物理設(shè)備的方式及數(shù)據(jù)處理等細(xì)節(jié)。這些細(xì)節(jié)對(duì)于客戶程序都是透明的,客戶程序只要遵循相同的規(guī)范和方法就能從不同的服務(wù)器中讀取數(shù)據(jù),這也就實(shí)現(xiàn)了硬件無(wú)關(guān)的數(shù)據(jù)訪問(wèn)機(jī)制。
OPC在不同領(lǐng)域推出了多種規(guī)范,目前已經(jīng)推出的OPC規(guī)范有:
OPC數(shù)據(jù)存?。―ata Access)規(guī)范3.0版
OPC報(bào)警與事件(Alarm and Event)規(guī)范1.1版
OPC歷史數(shù)據(jù)存取(Historical Data Access)規(guī)范1.2版
OPC批量數(shù)據(jù)存?。˙atch Data Access)規(guī)范2.0版
OPC安全性(Security)規(guī)范
OPC可擴(kuò)展標(biāo)記語(yǔ)言(XML)規(guī)范
OPC服務(wù)器數(shù)據(jù)交換(Data eXchange)規(guī)范
OPC主要技術(shù)規(guī)范及其關(guān)系如圖3:
在OPC基金會(huì)推出的多種規(guī)范中,目前最廣泛應(yīng)用的是OPC數(shù)據(jù)存取規(guī)范,也是本研究遵循的主要規(guī)范,下面就此規(guī)范進(jìn)行更近一步的介紹。
3基于OPC的嵌入式智能控制器的實(shí)現(xiàn)
由于傳統(tǒng)控制系統(tǒng)存在的種種弊端與瓶頸,在嵌入式智能控制器中引入OPC技術(shù)完成上下位機(jī)的通信解決方案?;贠PC的嵌入式智能控制器在工控領(lǐng)域有著廣泛的應(yīng)用前景,利用OPC的優(yōu)勢(shì)有:
1. OPC以COM為技術(shù)基礎(chǔ),實(shí)現(xiàn)了代碼在二進(jìn)制級(jí)上的重用和代碼的語(yǔ)言無(wú)關(guān)性,極大地提高了軟件的重用性,提高了開(kāi)發(fā)效率。
2. OPC規(guī)范了接口函數(shù),不管現(xiàn)場(chǎng)設(shè)備以何種形式存在,客戶都以統(tǒng)一的方式去訪問(wèn),從而實(shí)現(xiàn)系統(tǒng)的開(kāi)放性,易于實(shí)現(xiàn)與其他系統(tǒng)的接口。
3.采用標(biāo)準(zhǔn)的Windows體系接口,硬件制造商為其設(shè)備提供的接口程序的數(shù)量減少到一個(gè),軟件制造商也僅需要開(kāi)發(fā)一套通訊接口程序。即有利于軟硬件開(kāi)發(fā)商,更有利于最終用戶。
4. OPC封裝了系統(tǒng)功能的實(shí)現(xiàn),只將接口方法暴露在外面,客戶以統(tǒng)一的方式去調(diào)用這個(gè)方法,從而保證軟件對(duì)客戶的透明性,使得用戶完全從低層的開(kāi)發(fā)中脫離出來(lái)。
5.采用OPC規(guī)范,便于系統(tǒng)的組態(tài)化,將系統(tǒng)復(fù)雜性大大簡(jiǎn)化,可以大大縮短軟件的開(kāi)發(fā)周期,提高軟件運(yùn)行的可靠性和穩(wěn)定性,便于系統(tǒng)的升級(jí)與維護(hù)。
3.1硬件平臺(tái)
平臺(tái)使用了AT91SAM9260微處理器。這是一款基于ARM926EJ-S核心的工業(yè)級(jí)微控制器,功能豐富,性能強(qiáng)大,且功耗較低。AT91SAM9260有豐富的接口資源,且內(nèi)置以太網(wǎng)MAC,完成設(shè)計(jì)所需的以太網(wǎng)接口只需外接物理層芯片和RJ45接口。平臺(tái)采用Intel的工業(yè)級(jí)以太網(wǎng)物理層芯片LXT971ALE,它與AT91SAM9260之間通過(guò)標(biāo)準(zhǔn)的MII(media independent interface)接口連接。平臺(tái)還使用了DM9000,這是一款完全集成的和符合成本效益的,單芯片快速以太網(wǎng)MAC控制器,使用它的目的在于其低功耗和高性能進(jìn)程的3.3V與5V的支持。
3.2嵌入式操作系統(tǒng)
嵌入式操作系統(tǒng)選擇Windows CE。OPC是基于微軟的OLE(現(xiàn)在的Active X)、COM和DCOM技術(shù)的,而Windows CE系統(tǒng)本身提供了DCOM組件的支持,并且Windows CE的DCOM API與Windows的DCOM API有很大程度上的相似性,因此,采用Windows CE系統(tǒng)可以大大降低系統(tǒng)開(kāi)發(fā)的復(fù)雜度和額外成本的開(kāi)銷(xiāo)。而其他系統(tǒng)諸如嵌入式Linux提供的DCOM解決方案不是由操作系統(tǒng)本身提供的組件來(lái)完成的,而是通過(guò)購(gòu)買(mǎi)第三方軟件包的支持來(lái)完成的,需要額外成本的開(kāi)銷(xiāo);同時(shí),第三方軟件有可能成為系統(tǒng)運(yùn)行的不穩(wěn)定因素。
操作系統(tǒng)的移植采用了ATMEL提供的AT91SAM9260EK_CE6.0_Source_v110_secure BSP包,BOOTLOADER選擇EBOOT,即通過(guò)Ethernet下載操作系統(tǒng)映像的BOOTLOADER。在開(kāi)發(fā)的過(guò)程中使用EBOOT,可以提高開(kāi)發(fā)效率。通過(guò)使用EBOOT可以很快速的下載NK到目標(biāo)設(shè)備中,而利用Flash編程工具或者是通過(guò)JTAG下載則很慢。EBOOT移植完成后是OAL(OEM Adaption Layer,即原始設(shè)備制造商適配層)的移植,主要是修改Startup.s函數(shù)、修改串口調(diào)試函數(shù)、修改OEMInit函數(shù)、修改系統(tǒng)時(shí)鐘函數(shù)和修改中斷處理函數(shù)等;接著移植各模塊驅(qū)動(dòng)程序,修改平臺(tái)配置文件,編譯完成即得到FIRSTBOOT,EBOOT及內(nèi)核映像文件,完成操作系統(tǒng)的移植工作。
3.3嵌入式智能控制器
整個(gè)系統(tǒng)由三部分構(gòu)成:智能電子設(shè)備(IED)、智能控制器以及上位機(jī)。整體設(shè)計(jì)方案如圖4所示:
控制器的主要功能是對(duì)IED環(huán)節(jié)輸入的模擬量或開(kāi)關(guān)信號(hào)進(jìn)行識(shí)別處理,根據(jù)一定的協(xié)議打包傳送給上位機(jī),同時(shí)根據(jù)控制程序?qū)ED輸出開(kāi)關(guān)信號(hào)以達(dá)到控制的目的。與上位機(jī)的通信基于OPC采用客戶/服務(wù)器形式,設(shè)計(jì)完成基于OPC數(shù)據(jù)存取規(guī)范3.0的服務(wù)器程序與客戶端應(yīng)用程序,分別運(yùn)行與嵌入式智能控制器的硬件平臺(tái)及上位機(jī)中,完成OPC通信。
結(jié)論
通過(guò)對(duì)OPC規(guī)范的研究,根據(jù)硬件平臺(tái)設(shè)計(jì)并完成了基于OPC的嵌入式智能控制器的整體架構(gòu),操作系統(tǒng)移植,實(shí)現(xiàn)了基于OPC的以太網(wǎng)通信。OPC技術(shù)以其巨大的優(yōu)勢(shì)受到越來(lái)越多的工控領(lǐng)域廠商與用戶的青睞,其取代傳統(tǒng)驅(qū)動(dòng)程序的趨勢(shì)是不可阻擋的,通過(guò)在嵌入式智能控制器中對(duì)OPC的應(yīng)用更加能夠體會(huì)到這一點(diǎn)。