![工業(yè)控制數(shù)據(jù)交換標(biāo)準(zhǔn)OPC規(guī)范_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/35749af7-af6c-41c7-b1dc-10f6e63b2c67/35749af7-af6c-41c7-b1dc-10f6e63b2c671.gif)
![工業(yè)控制數(shù)據(jù)交換標(biāo)準(zhǔn)OPC規(guī)范_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/35749af7-af6c-41c7-b1dc-10f6e63b2c67/35749af7-af6c-41c7-b1dc-10f6e63b2c672.gif)
![工業(yè)控制數(shù)據(jù)交換標(biāo)準(zhǔn)OPC規(guī)范_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/35749af7-af6c-41c7-b1dc-10f6e63b2c67/35749af7-af6c-41c7-b1dc-10f6e63b2c673.gif)
![工業(yè)控制數(shù)據(jù)交換標(biāo)準(zhǔn)OPC規(guī)范_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/35749af7-af6c-41c7-b1dc-10f6e63b2c67/35749af7-af6c-41c7-b1dc-10f6e63b2c674.gif)
![工業(yè)控制數(shù)據(jù)交換標(biāo)準(zhǔn)OPC規(guī)范_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/35749af7-af6c-41c7-b1dc-10f6e63b2c67/35749af7-af6c-41c7-b1dc-10f6e63b2c675.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、監(jiān)督控制與數(shù)據(jù)采集技術(shù)監(jiān)督控制與數(shù)據(jù)采集技術(shù)華東理工大學(xué)自動化系華東理工大學(xué)自動化系王華忠王華忠 Ch4 工業(yè)控制數(shù)據(jù)交換標(biāo)準(zhǔn)OPC規(guī)范一、一、OPC開發(fā)背景和歷史開發(fā)背景和歷史1、為什么需要OPC(1)對于早期的計算機(jī)系統(tǒng),為了實現(xiàn)不同的硬件和軟件所構(gòu)成的計算機(jī)之間的數(shù)據(jù)交換和通信,必須要花費(fèi)很多時間去開發(fā)獨(dú)自的通信程序。(2)由于驅(qū)動程序缺乏統(tǒng)一的連接標(biāo)準(zhǔn),這樣一旦硬件設(shè)備升級換代,就需要對相應(yīng)的驅(qū)動程序進(jìn)行更改,增加了系統(tǒng)的維護(hù)費(fèi)用。(3)即使計算機(jī)中的SCADA、HMI等軟件都有獨(dú)立的驅(qū)動程序,但一般也不允許同時訪問相同的設(shè)備,否則很容易造成系統(tǒng)崩潰(4)另一方面,現(xiàn)場控制層作為企業(yè)整
2、個信息系統(tǒng)的底層部分,必然需要與生產(chǎn)過程管理層和經(jīng)營決策層進(jìn)行集成。這樣也存在著監(jiān)控計算機(jī)如何與其它計算機(jī)進(jìn)行信息溝通和傳遞的問題。圖4.1 用驅(qū)動程序的系統(tǒng)連接客戶應(yīng)用程序A設(shè)備1驅(qū)動程序A設(shè)備2驅(qū)動程序A客戶應(yīng)用程序B設(shè)備1驅(qū)動程序B設(shè)備2驅(qū)動程序B設(shè)備1設(shè)備22、OPC是如何工作的OPC規(guī)范是由世界領(lǐng)先的自動化廠商與微軟合作制定的一項工業(yè)標(biāo)準(zhǔn),它以組件對象模型和分布式組件對象模型(COM、DCOM)技術(shù)為基礎(chǔ),采用C/ S模式,定義了一組COM對象及其接口規(guī)范。OPC規(guī)范定義了客戶程序與服務(wù)器程序進(jìn)行交互的方法,但并沒有規(guī)定具體的實現(xiàn),OPC服務(wù)器可由不同供應(yīng)商提供,其代碼決定了服務(wù)器訪
3、問物理設(shè)備的方式、數(shù)據(jù)處理等細(xì)節(jié)。但這些對OPC 客戶程序來說都是透明的,只需要遵循相同的規(guī)范或方法就能讀取服務(wù)器中的數(shù)據(jù)。通過COM接口,OPC 客戶程序可以和一個或多個提供商的OPC服務(wù)器連接。同時一個OPC 服務(wù)器也可以同多個客戶程序相連,形成多對多的關(guān)系。任何支持OPC的產(chǎn)品都可以無縫地實現(xiàn)系統(tǒng)集成。由于OPC技術(shù)基于DCOM所以客戶程序和服務(wù)器可以分布在不同的主機(jī)上,形成網(wǎng)絡(luò)化的監(jiān)控系統(tǒng)。圖4.2 利用OPC的控制系統(tǒng)構(gòu)成客戶應(yīng)用程序AOPC客戶程序接口設(shè)備1設(shè)備2客戶應(yīng)用程序BOPC客戶程序接口設(shè)備1OPC服務(wù)器設(shè)備2OPC服務(wù)器3、采用OPC的好處:各方受益(1)OPC技術(shù)把硬件
4、和應(yīng)用軟件有效地分離開,硬件廠商只需要提供一套軟件組件,所有OPC客戶程序都可以使用這些組件,無需重復(fù)開發(fā)單獨(dú)的驅(qū)動程序。一旦硬件升級,只需修改OPC服務(wù)器端I/O 接口部分,無需改動客戶端程序。(2)工控軟件公司只要開發(fā)一套OPC接口就可采用統(tǒng)一的方式對不同硬件廠商的設(shè)備進(jìn)行存取操作。這樣,軟硬件廠商可以專注于各自的核心部分,而不是兼容問題。(3)對于最終用戶而言,由于無需擔(dān)心互操作性,在選擇和更換軟硬件時有了更多的余地,不再局限于從單一的廠商購買專用成套系統(tǒng)。(4)同時在異構(gòu)計算機(jī)環(huán)境下的系統(tǒng)集成將變得很簡單,應(yīng)用程序之間很容易實現(xiàn)信息的共享和交互。用戶可以將重點放在整個系統(tǒng)的功能及應(yīng)用上
5、,這也意味著成本的降低。(5)OPC組件的使用也十分方便,用戶只需進(jìn)行簡單的組態(tài)即可。4、OPC的歷史早期的OPC標(biāo)準(zhǔn)是由提供工控軟件的家公司所組成的OPC特別工作小組所開發(fā)的。Fisher-Rosement,Intellution,Rockwell Soft ware,Intuitive Technology以及Opto22早在1995年開發(fā)了原始的OPC標(biāo)準(zhǔn),微軟同時作為技術(shù)顧問給予了支持。OPC基金會(OPC Foundation)是在1996年9月24日在美國的達(dá)拉斯舉行了第一次理事會,并在同年10月7日在美國的芝加哥舉行了第一次全體大會上宣告正式成立的。之后得到迅速發(fā)展,中國也成了了
6、OPC促進(jìn)會。表41 現(xiàn)存的和正在開發(fā)的OPC的標(biāo)準(zhǔn)標(biāo)準(zhǔn)版本內(nèi)容Data Access 1.0A,2.0,3.0 數(shù)據(jù)訪問的標(biāo)準(zhǔn)Alarm and Events1.0,2.0 警報和事件的標(biāo)準(zhǔn)Historical Data 1.0,1.2歷史數(shù)據(jù)訪問的標(biāo)準(zhǔn)Batch 1.0 ,2.0批處理的標(biāo)準(zhǔn)Security 1.0安全性的標(biāo)準(zhǔn)Compliance 1.0數(shù)據(jù)訪問標(biāo)準(zhǔn)的測試工具OPC XML 1.01過程數(shù)據(jù)的XML標(biāo)準(zhǔn)OPC Data eXchange 1.0服務(wù)器間數(shù)據(jù)交換的標(biāo)準(zhǔn)二、二、OPC規(guī)范簡介規(guī)范簡介1、OPC規(guī)范基礎(chǔ)隨著軟件工業(yè)技術(shù)的迅
7、速發(fā)展,傳統(tǒng)的程序升級已經(jīng)無法滿足技術(shù)的發(fā)展需要,而且程序升級需要大量人力成本,解決這一問題的方法就是將應(yīng)用程序分割成一些小的應(yīng)用或組件,然后將這些組件在運(yùn)行時組裝起來以形成所需的應(yīng)用程序,每一個組件都可以在不影響其他組件的情況下被升級。 在組件技術(shù)規(guī)范方面,主要有兩個標(biāo)準(zhǔn):一個是由對象管理組織(Object Management Group,OMG)起草并頒布的公共對象請求代理體系結(jié)構(gòu)(Common Object Request Breaker Architecture,CORBA),另外一個是由微軟推出的組件對象模型(Component Object Model,COM)技術(shù)。 組件實際上
8、是一些小的二進(jìn)制可執(zhí)行程序。它可以給應(yīng)用程序、操作系統(tǒng)以及其他組件提供一些服務(wù)。多個COM 對象可以連接起來以形成應(yīng)用程序或組件系統(tǒng),每一個應(yīng)用程序都可劃分為多個獨(dú)立的模塊進(jìn)行開發(fā),這里的每一個獨(dú)立模塊都是一個自給自足的組件??梢圆扇〔煌拈_發(fā)語言去設(shè)計每一個組件。在運(yùn)行時將這些組件通過接口組裝起來以形成所需要的應(yīng)用程序。 (1)COM/DCOM簡介簡介由微軟公司推出的開放的組件標(biāo)準(zhǔn)。COM標(biāo)準(zhǔn)包括規(guī)范和實現(xiàn)二大部分,規(guī)范部分定義了組件之間通信的機(jī)制,這些規(guī)范不依賴任何特定的語言和操作系統(tǒng),具有語言無關(guān)性;COM 標(biāo)準(zhǔn)的實現(xiàn)部分是COM 庫,COM庫為COM規(guī)范的具體實現(xiàn)提供了一些核心服務(wù)。由
9、于COM以客戶/ 服務(wù)器模型為基礎(chǔ),因此具有良好的穩(wěn)定性和很強(qiáng)的擴(kuò)展能力。分布式組件對象模型(Distributed COM,DCOM)是COM的網(wǎng)絡(luò)擴(kuò)展,它建立在COM之上,并且提供了一種使COM組件加入網(wǎng)絡(luò)環(huán)境的透明網(wǎng)絡(luò)協(xié)議,使COM對象能像在本機(jī)上一樣在網(wǎng)絡(luò)上彼此交互。DCOM技術(shù)的核心是地址透明性,它依賴對象遠(yuǎn)程過程調(diào)用(Object Remote Procedure Call,ORPC)來完成它所有的網(wǎng)絡(luò)通信工作,使DCOM組件不僅能跨越進(jìn)程邊界,而且能跨越計算機(jī)間的物理邊界而相互交換信息,程序員不必編寫網(wǎng)絡(luò)通信所需要的繁雜代碼。在分布式計算機(jī)環(huán)境下,DCOM服務(wù)器和客戶處于不同的地
10、址空間,不能直接交互信息,客戶和DCOM服務(wù)器通過代理(proxy)對象和存根(stub)模塊間接地交互。 客戶程序和COM 組件程序進(jìn)行交互的實體是COM對象。 COM 對象類似C+ 中對象的概念,它是某個類(class)的一個實例,包括一組屬性和方法。COM接口是COM規(guī)范中最重要的部分,COM規(guī)范的核心內(nèi)容就是對接口的定義,COM都是以接口的形式出現(xiàn)。組件與組件之間、組件與客戶程序之間都要通過接口進(jìn)行交互。 COM 對象提供的方法就是COM接口,它是一組邏輯相關(guān)函數(shù)的集合??蛻舫绦虮仨毻ㄟ^接口才能獲得COM對象的服務(wù)。COM接口的名字以字母I打頭。COM組件有兩個最基本的接口類,分別是I
11、Unknown、IDispatch。 所有的COM接口都必須繼承一個名為IUnknown的接口,COM的核心接口是IUnknown接口。 IUnkown接口提供了兩個非常重要的特性:生存期控制和接口查詢。 Idispatch為調(diào)度接口。調(diào)度接口把每一個函數(shù)每一個屬性都編上號??蛻舫绦蛞{(diào)用這些函數(shù)屬性的時侯就把這些編號傳給IDispatch接口就行了,IDispatch再根據(jù)這些編號調(diào)用相應(yīng)的函數(shù)。 對于COM對象來說,接口是它與外界交互的唯一途徑,因此,封裝特性也是COM對象的基本特征。在COM模型中,對象本身對于客戶來說是不可見的,客戶請求服務(wù)時只能通過接口進(jìn)行,每個COM對象是用一個12
12、8位的全局唯一標(biāo)識符(Globally Unique Identifier,GUID)來標(biāo)識的,稱為CLSID(class identifier類標(biāo)識和類ID)。 COM規(guī)范采用開放軟件基金會 (Open Software Foundation,OSF)的分布式計算環(huán)境 (Distributed Computing Enviroment,DCE)規(guī)范的描述遠(yuǎn)程調(diào)用接口描述語言 (Interface Description Language,IDL)的基礎(chǔ)上,進(jìn)行擴(kuò)展形成了COM接口的描述語言。接口描述語言提供了一種不依賴于任何語言的接口描述方法,因此,它可以成為組件程序和客戶程序之間的共同語言
13、。 (2)OPC對象與接口對象與接口定制接口(custom interface)自動化接口(automation interface) OPC規(guī)范描述了OPC服務(wù)器需要實現(xiàn)的COM 對象及其接口,定義了:圖4.3 OPC自動化接口和定制接口 (1)圖4.4 OPC自動化接口和定制接口 (2)2、OPC數(shù)據(jù)存取規(guī)范(OPC DA) OPC數(shù)據(jù)存取規(guī)范是OPC基金會最初制定的1 個工業(yè)標(biāo)準(zhǔn),其重點是對現(xiàn)場設(shè)備的在線數(shù)據(jù)進(jìn)行存取。該規(guī)范也分為定制接口規(guī)范和自動化接口規(guī)范二部分,2種接口完成的功能類似,下面主要介紹定制接口規(guī)范中基本的對象和接口功能。 OPC數(shù)據(jù)存取服務(wù)器主要由以下幾個對象組成:即服務(wù)
14、器對象、組對象和項對象。OPC服務(wù)器對象維護(hù)有關(guān)服務(wù)器的信息并作為OPC 組對象的包容器,可動態(tài)地創(chuàng)建或釋放組對象;而OPC 組對象除了維護(hù)有關(guān)其自身的信息,還提供了包容OPC項的機(jī)制,邏輯上管理OPC項;OPC項則表示了與OPC 服務(wù)器中數(shù)據(jù)的連接。圖4.5 OPC數(shù)據(jù)訪問對象的分層結(jié)構(gòu) 從定制接口的角度來看,OPC項并不是可以由OPC客戶直接操作的對象,因此OPC項沒有定義外部接口,所有對OPC 項的操作都是通過包容該項的OPC組對象進(jìn)行的。而OPC 服務(wù)器對象和組對象是聚合關(guān)系,即OPC 服務(wù)器對象創(chuàng)建OPC 組后,將組對象的指針傳遞給客戶,由客戶直接操縱組對象。這樣既提高了數(shù)據(jù)存取的速
15、度也易于功能擴(kuò)展,體現(xiàn)了組件軟件的重用性。(1)OPC服務(wù)器對象服務(wù)器對象 OPC 服務(wù)器對象是OPC 服務(wù)器程序暴露的主要對象,客戶程序首先創(chuàng)建該對象再通過其接口完成所需功能。圖4.6 標(biāo)準(zhǔn)OPC服務(wù)器對象 A:IUnknown接口 COM對象必須實現(xiàn)的接口,主要負(fù)責(zé)對象的接口查詢和生存期管理,包括QueryIntertface()、AddRef()和Release()函數(shù)??蛻舫绦蚩梢酝ㄟ^QueryInterfac()查詢需要訪問的接口。因此,客戶程序只要得到對象的任何一個接口,就可以訪問對象的所有接口。 B:IOPCCommon接口: OPC規(guī)范如DataAccess,Historica
16、l DataAccess,Alarms andEvents等的OPC Server對象的公共接口,通過該接口的函數(shù),可以設(shè)置或查詢組件應(yīng)用程序的位置標(biāo)識Local ID,從而實現(xiàn)客戶應(yīng)用程序與服務(wù)器的有效會話,且客戶程序間不受干擾。C:IOPCServcr接口: 是Server對象的主要接口,主要完成Group對象的添加、刪除、獲取Server對象的狀態(tài)、創(chuàng)建組對象枚舉器等。 IOPCServer 是OPC Server的主接口,通過它實現(xiàn)OPC Server在操作系統(tǒng)中的安裝和注冊。此接口是必須要實現(xiàn)的,其所有方法也必須實現(xiàn)。在IOPCServer接口中共有六個函數(shù):IOPCServer:A
17、ddGroup HRESULT AddGroup( LPCWSTR szName,BOOL bActive, DWORD dwRequestedUpdateRate, OPCHANDLE hClientGroup, LONG *pTimeBias, FLOAT * pPercentDeadband, DWORD dwLCID, OPCHANDLE * phServerGroup, DWORD *pRevisedUpdateRate, REFIID riid, LPUNKNOWN * ppUnk );此方法是在OPC Server上建立一個組 IOPCServer:GetErrorString
18、HRESULT GetErrorString( HRESULT dwError,LCID dwLocale, LPWSTR *ppString );為Server的錯誤代碼返回相應(yīng)的錯誤字符串 IOPCServer:GetGroupByName HRESULT GetGroupByName( LPCWSTR szName, REFIID riid,PUNKNOWN * ppUnk );通過指定的組名(由同一客戶端建立的)找到該組接口指針 IOPCServer:GetStatus HRESULT GetStatus(OPCSERVERSTATUS * ppServerStatus ); 返回當(dāng)前
19、Server的狀態(tài)信息 IOPCServer:RemoveGroup HRESULT RemoveGroup( OPCHANDLE hServerGroup,BOOL bForce ); 從服務(wù)器中刪除指定組在組列表中找到指定的組,并將其刪除。 IOPCServer:CreateGroupEnumerator HRESULT CreateGroupEnumerator( OPCENUMSCOPE dwScope,REFIID riid,LPUNKNOWN* ppUnk ); 為Server上所提供的組建立不同的列舉器。D:IConnectionPointContainer接口: 是COM標(biāo)準(zhǔn)接
20、口,支持可連接點對象。包含兩個成員函數(shù)EnumConnectionPoints()和FindConnectionPointo()函數(shù)返回連接點枚舉器,客戶可以利用此枚舉器訪問COM對象的所有連接點。FindCormectionPoint()函數(shù)根據(jù)給定接口引用標(biāo)識LiD,返回相應(yīng)接口的連接點。當(dāng)OPC服務(wù)器關(guān)閉時需要通知所有的客戶程序釋放OPC組對象和其中的OPC組員,此時可利用該接口調(diào)用客戶程序方的IOPCShutdown接口實現(xiàn)服務(wù)器的正常關(guān)閉。 E:IOPCServerPublicGroups、IPersistFile和IOPCBrowseServerAddressSpace為可選接口,
21、OPC服務(wù)器提供商可根據(jù)需要選擇是否需要實現(xiàn)。其中 IOPCServerPublicGroups接口用于對公共組進(jìn)行管理; IPersistFile接口允許用戶裝載和保存服務(wù)器的設(shè)置,這些設(shè)置包括服務(wù)器通信的波特率、現(xiàn)場設(shè)備的地址和名稱等。這樣用戶就可以知道服務(wù)器啟動和配置的改變而不需要啟動其它的程序。 IOPCBrowseServerAddressSpace主要供客戶程序來查看服務(wù)器中有用項的信息。(2)OPC組對象組對象 OPC 組提供了一種讓客戶組織數(shù)據(jù)的方法,用戶可以將邏輯相關(guān)的一組數(shù)據(jù)作為OPC項添加到同一個組當(dāng)中,例如同一個反應(yīng)器的各點溫度等??蛻舫绦蚩蓜?chuàng)建多個組對象,并分別設(shè)置其
22、屬性??蛻舫绦?qū)Ψ?wù)器進(jìn)行數(shù)據(jù)存取時是以組對象為單位進(jìn)行的,即客戶程序?qū)M內(nèi)感興趣的OPC項進(jìn)行統(tǒng)一的讀寫操作,這樣無疑提高了數(shù)據(jù)通信的效率。圖4.7 標(biāo)準(zhǔn)OPC組對象 A:IOPCItemMgt接口及其成員函數(shù)的功能是允許OPC客戶程序添加和刪除項對象并可控制項對象的行為。 B:IOPCGroupStateMgt接口及其成員函數(shù)允許客戶程序管理組對象的所有狀態(tài),最基本的功能是改變組對象的更新速率和活動狀態(tài)。 C:IOPCPublicGroupStateMgt為可選接口,用于將私有組對象轉(zhuǎn)換成公共組對象,因為當(dāng)客戶創(chuàng)建一個組對象時,被初始化為私有組對象。D:lOPCSyncIO接口允許客戶對服
23、務(wù)器執(zhí)行同步讀寫操作,操作將一直運(yùn)行到完成才返回。E:IOPCAsyncIO2接口允許客戶對服務(wù)器執(zhí)行異步讀寫操作,操作被“排隊等候”,函數(shù)立即返回。每項操作被看作一個“事務(wù)”,并被分配一個事務(wù)ID,當(dāng)操作完成時,客戶IOPCDataCallback接口的回調(diào)將執(zhí)行?;卣{(diào)中的信息指出了事務(wù)ID和操作結(jié)果。F:IConnectionPointContainer接口:組對象必須實現(xiàn)此接口,與服務(wù)器對象的此接口的唯一區(qū)別是管理的出接口不一樣,組對象管理的出接口是IOPCDataCallback接口,可使客戶與服務(wù)器連接并進(jìn)行最有效的數(shù)據(jù)傳送。G:IOPCAsyncIO(old)接口是數(shù)據(jù)存取規(guī)范1.
24、0必須實現(xiàn)的接口之一,按照程序兼容規(guī)則,符合規(guī)范2.0的服務(wù)器也應(yīng)該實現(xiàn)規(guī)范1.0的必選接口。H:IDataObject(old)接口是OPC規(guī)范1.0需要服務(wù)器實現(xiàn)的接口,這允許使用OPC數(shù)據(jù)流格式創(chuàng)建客戶與組對象之間的Advise接,用于進(jìn)行高效的數(shù)據(jù)交換。(3)OPC項項 OPC 項表示了與OPC 服務(wù)器中數(shù)據(jù)的連接,包括值(value)、品質(zhì)(quality)、時間戳(time stamp)三個基本屬性。值的數(shù)據(jù)類型為VARIANT,表示實際的數(shù)值;品質(zhì)則標(biāo)識數(shù)值是否有效;時間戳則反映了從設(shè)備讀取數(shù)據(jù)的時間或者服務(wù)器刷新其數(shù)據(jù)存儲區(qū)的時間。 OPC 項并不是實際的數(shù)據(jù)源,只是表示與數(shù)據(jù)
25、源的連接。OPC 規(guī)范中定義了兩種數(shù)據(jù)源,即內(nèi)存數(shù)據(jù)(cache data)和設(shè)備數(shù)據(jù)(device data)。每個OPC 服務(wù)器都有數(shù)據(jù)存儲區(qū),存放著值、品質(zhì)、時間戳以及相關(guān)設(shè)備信息,這些數(shù)據(jù)稱為內(nèi)存數(shù)據(jù)。而現(xiàn)場設(shè)備中的數(shù)據(jù)則是設(shè)備數(shù)據(jù)。OPC服務(wù)器總是按照一定的刷新頻率通過相應(yīng)驅(qū)動程序訪問各個硬件設(shè)備,將現(xiàn)場數(shù)據(jù)送入數(shù)據(jù)存儲區(qū)。三、三、OPC數(shù)據(jù)訪問數(shù)據(jù)訪問1、同步訪問同步訪問:OPC服務(wù)器把按照OPC應(yīng)用程序的要求得到的數(shù)據(jù)訪問結(jié)果作為方法的參數(shù)返回給OPC應(yīng)用程序,OPC應(yīng)用程序在結(jié)果被返回之前必須處于等待狀態(tài)。圖4.8 同步數(shù)據(jù)訪問處理2、異步訪問 OPC服務(wù)器接到OPC應(yīng)用程序的
26、要求后,幾乎立即將方法返回。OPC應(yīng)用程序隨后可以進(jìn)行其他處理。當(dāng)OPC服務(wù)器完成數(shù)據(jù)訪問時,觸發(fā)OPC應(yīng)用程序的異步訪問完成事件,將數(shù)據(jù)訪問結(jié)果傳送給OPC應(yīng)用程序。OPC應(yīng)用程序在VB的事件處理程序中接受從OPC服務(wù)器傳送來的數(shù)據(jù)。圖4.9 異步數(shù)據(jù)訪問處理3、訂閱方式數(shù)據(jù)采集 服務(wù)器用一定的周期檢查過程數(shù)據(jù),如發(fā)現(xiàn)數(shù)據(jù)變化超過一定的幅度時,則更新數(shù)據(jù)緩沖器,并自動通知OPC應(yīng)用程序。 該方式并不需要OPC應(yīng)用程序向OPC服務(wù)器要求,就可以自動接到從OPC服務(wù)器送來的變化通知。圖4.10 訂閱方式數(shù)據(jù)采集4、刷新 讀取所有活動的OPC標(biāo)簽對應(yīng)的過程數(shù)據(jù)。應(yīng)用程序發(fā)出更新要求后立即返回,更新
27、完成時發(fā)生數(shù)據(jù)變化事件,OPC應(yīng)用程序被調(diào)出。同步和異步數(shù)據(jù)訪問的特征比較特征同步訪問異步訪問訪問性能因為在訪問完成之前應(yīng)用程序必須一直在等待,尤其大量數(shù)據(jù)的訪問或直接向設(shè)備的訪問對訪問性能的影響很大。因為在訪問完成之前應(yīng)用程序不必等待,可以并行處理,對訪問性能的影響不大。程序開發(fā)處理程序比較簡單,開發(fā)容易。因為發(fā)出要求和訪問完成事件處理是分別進(jìn)行的,所以必須有事務(wù)識別功能,開發(fā)比較難。遠(yuǎn)程連接的分布式COM設(shè)置只要分布式COM啟動權(quán)限和訪問權(quán)限就可以運(yùn)行,設(shè)置比較簡單。除了分布式COM啟動權(quán)限和訪問權(quán)限以外,還必須設(shè)置身份標(biāo)志,設(shè)置比較復(fù)雜。四、其它四、其它OPC規(guī)范規(guī)范 1、 OPC報警與
28、事件(Alarm and Event)規(guī)范 OPC報警與事件接口規(guī)范提供了一種機(jī)制,通過這種機(jī)制,當(dāng)IO設(shè)備中有指定的事件或報警條件發(fā)生時,OPC客戶程序可以得到通知。通過這個接口,OPC客戶程序還可以知道OPC服務(wù)器支持哪些事件和條件,并能得到其當(dāng)前狀態(tài)。這里使用了過程控制中常用的報警和事件的概念,在不嚴(yán)格的場合,報警和事件也可以互換,兩者意義上的差別不是非常明顯。 在OPC中,一個報警是一種非正常情況,因此是一種特殊的情況。一個情況是OPC事件服務(wù)器(Event Server)或其所包含的對象中命名了的一個狀態(tài),而這個狀態(tài)一般來說是對OPC客戶程序有意義的。例如,標(biāo)簽FC101可以有以下幾
29、種相關(guān)的情況:上限報警、上上限報警、正常、下限報警、下下限報警。 另一方面,一個事件是對OPC服務(wù)器、其所表示的IO設(shè)備或OPC客戶重要的某種可感覺到的變化。一個事件可以是和某種情況相關(guān)的,也可能與任何情況無關(guān)。例如,數(shù)據(jù)從正常變化到上限報警或從報警變化到正常狀態(tài),這是和某種情況有關(guān)的事件。而操作人員的動作(如對系統(tǒng)配置的更改)、系統(tǒng)故障則是與情況無關(guān)聯(lián)的事件。 OPC事件服務(wù)器接口類IOPCEventServer通過其方法使得OPC客戶程序能夠完成以下功能:決定OPC服務(wù)器支持的事件的類型;對某些特定的事件進(jìn)行登記,以便當(dāng)這些事件發(fā)生時,OPC客戶程序能得到通知,也可以采用過濾器定義這些事件
30、的一個子集;對OPC服務(wù)器實現(xiàn)的情況進(jìn)行存取或處理。 2、OPC歷史數(shù)據(jù)存取 歷史數(shù)據(jù)引擎可以向感興趣的用戶或客戶程序提供關(guān)于原始數(shù)據(jù)的額外信息。目前大部分歷史數(shù)據(jù)系統(tǒng)采用自己專用的接口分發(fā)數(shù)據(jù),這種方式不能提供即插即用的功能,從而限制了其應(yīng)用范圍和功能。 為了將歷史數(shù)據(jù)和各種不同的應(yīng)用系統(tǒng)進(jìn)行集成,可以將歷史信息認(rèn)為是某種數(shù)據(jù)類型的數(shù)據(jù)。目前的OPC規(guī)范支持以下幾種歷史數(shù)據(jù)服務(wù)器 (1)簡單趨勢數(shù)據(jù)服務(wù)器:這種服務(wù)器只是提供原始數(shù)據(jù)和簡單存儲功能,數(shù)據(jù)一般以O(shè)PC數(shù)據(jù)存取服務(wù)器提供的類型存儲,即取數(shù)值,品質(zhì)元組的形式。(2)復(fù)合數(shù)據(jù)壓縮和分析服務(wù)器:這種服務(wù)器可以提供數(shù)據(jù)壓縮功能,還可以提供
31、數(shù)據(jù)匯總和數(shù)據(jù)分析功能,如取平均值、最大值、最小值等。支持?jǐn)?shù)據(jù)刷新及刷新歷史記錄,此外,保存歷史數(shù)據(jù)的同時還可以記錄對數(shù)據(jù)的注釋信息。3、OPC批量服務(wù)器 OPC批量服務(wù)器主要用于訪問批量控制過程的各類數(shù)據(jù)源。用于批量控制過程的OPC服務(wù)器可以是單純的OPC批量服務(wù)器,也可以是位于現(xiàn)有專用批量過程數(shù)據(jù)源之上的一套OPC接口。OPC批量服務(wù)器的數(shù)據(jù)源可以是普通的OPC數(shù)據(jù)訪問服務(wù)器,也可以是制造商特定的批量過程應(yīng)用程序。 訪問OPC批量服務(wù)器的客戶應(yīng)用程序可以通過OPC批量服務(wù)器提供的OPC接口訪問批量過程數(shù)據(jù),也可以借助OPC批量服務(wù)器訪問OPC數(shù)據(jù)訪問服務(wù)器,還可以直接訪問OPC數(shù)據(jù)訪問服務(wù)
32、器。OPC批量服務(wù)器不直接與現(xiàn)場設(shè)備通信,一般由OPC數(shù)據(jù)訪問服務(wù)器或現(xiàn)有專用批量數(shù)據(jù)的物理接口訪問現(xiàn)場設(shè)備的I/O。 五、五、OPC服務(wù)器與客戶程序設(shè)計服務(wù)器與客戶程序設(shè)計1、OPC服務(wù)器的設(shè)計 OPC 數(shù)據(jù)服務(wù)器可按圖4.11的系統(tǒng)結(jié)構(gòu)設(shè)計。它主要由服務(wù)器對象與接口、數(shù)據(jù)存儲區(qū)、硬件驅(qū)動程序和服務(wù)器界面與設(shè)置等部分組成。各個部分功能相對獨(dú)立又相互協(xié)作,形成一個統(tǒng)一的整體。圖4.11 OPC服務(wù)器系統(tǒng)結(jié)構(gòu) OPC對象部分是OPC服務(wù)器程序與客戶程序進(jìn)行交互的部分。OPC 對象包括服務(wù)器對象、組對象、項對象,其中前兩個對象是真正的COM對象,能夠?qū)⒏髯缘慕涌诒┞督o客戶程序。OPC 服務(wù)器對象和
33、組對象之間是聚合關(guān)系,即OPC服務(wù)器對象創(chuàng)建OPC 組后,將組對象的指針傳遞給客戶,由客戶直接操縱組對象。而組對象只是簡單地包容OPC項對象,客戶程序通過組對象管理OPC 項。 數(shù)據(jù)存儲區(qū)中存放著OPC服務(wù)器中定義的數(shù)據(jù)項。數(shù)據(jù)項包括值、品質(zhì)、時間戳三個基本屬性以及與硬件相關(guān)的屬性,例如設(shè)備號、板卡號、通道號等。數(shù)據(jù)項的基本屬性與OPC規(guī)范中定義的OPC項屬性一致??蛻舫绦蛲ㄟ^組對象添加OPC 項時,將OPC項與數(shù)據(jù)項關(guān)聯(lián)起來,讀取數(shù)據(jù)時返回其基本屬性。數(shù)據(jù)存儲區(qū)是服務(wù)器的中心部分,需要動態(tài)地管理和維護(hù)數(shù)據(jù)項,并與其它部分進(jìn)行數(shù)據(jù)交互。 服務(wù)器界面與設(shè)置部分為用戶提供了友善的界面,使用戶可以管理數(shù)據(jù)存儲區(qū)中數(shù)據(jù)項并設(shè)置其屬性。同時該部分負(fù)責(zé)對硬件的初始設(shè)置以及在程序運(yùn)行期間對硬件的監(jiān)控和診斷,保證與現(xiàn)場設(shè)備的正常通信。該部分還負(fù)責(zé)保存這些設(shè)置,在OPC服務(wù)器程序每次運(yùn)行時能夠自動完成設(shè)置。 硬件驅(qū)動程序是OPC服務(wù)器對硬件進(jìn)行設(shè)置和讀寫操作的部分,不同的硬件均需要
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 20991-2024足部防護(hù)鞋的測試方法
- RNF5-agonist-1-生命科學(xué)試劑-MCE-3083
- Acremine-F-生命科學(xué)試劑-MCE-8674
- 二零二五年度船舶船員勞動合同及船舶航行風(fēng)險承擔(dān)合同
- 2025年度汽車美容店員工勞動合同簽訂與解除流程合同
- 2025年度航空設(shè)施面積差額補(bǔ)充合同
- 2025年度汽車銷售合同和購車售后服務(wù)質(zhì)量監(jiān)控協(xié)議
- 施工日志填寫中的質(zhì)量和安全事故記錄方法
- 運(yùn)動與心理健康如何通過鍛煉提升幸福感
- 教育科技下的道德與法治教育融合探討
- (完整版)4.19天體運(yùn)動綜合習(xí)題(帶答案)
- 工法培訓(xùn)課件
- 液壓式隨鉆震擊器設(shè)計
- 空氣能熱泵系統(tǒng)設(shè)計與安裝融資計劃書
- 2021中考地理真題試卷 山東省煙臺地理含答案
- 非法捕撈水產(chǎn)品罪
- 新概念第一冊單詞匯總帶音標(biāo)EXCEL版
- 作用于血液及造血器官的藥 作用于血液系統(tǒng)藥物
- 心肺復(fù)蘇(最全版)完整版
- 春節(jié)節(jié)后施工復(fù)工安全培訓(xùn)
- GB/T 3478.1-1995圓柱直齒漸開線花鍵模數(shù)基本齒廓公差
評論
0/150
提交評論