關(guān)于opc服務(wù)器與opc客戶端,何謂OPC服務(wù)器這個(gè)問題很多朋友還不知道,今天小六來為大家解答以上的問題,現(xiàn)在讓我們一起來看看吧!
1、是這樣的,它不是純粹的硬件,也不是純粹的軟件,是一種標(biāo)準(zhǔn)與規(guī)范,OPC服務(wù)器的功能就是與下位機(jī)進(jìn)行數(shù)據(jù)的交換,其中包含了大量的通訊程序和數(shù)據(jù)存貯程序。
2、然后提供標(biāo)準(zhǔn)的OPC接口,供其它軟件使用。
3、程序標(biāo)準(zhǔn)化以后,其他的軟件商只需開發(fā)面對(duì)服務(wù)器的程序即可,不用對(duì)不同的硬件設(shè)備開發(fā)不同的硬件驅(qū)動(dòng)程序。
4、減小了工作量,也方便了使用。
5、下面是對(duì)OPC的標(biāo)準(zhǔn)描述,長(zhǎng)了點(diǎn),但是對(duì)了解OPC非常有幫助: OPC是OLE for Process Control的縮寫,即把OLE應(yīng)用于工業(yè)控制領(lǐng)域。
6、OLE原意是對(duì)象鏈接和嵌入,隨著OLE 2的發(fā)行,其范圍已遠(yuǎn)遠(yuǎn)超出了這個(gè)概念。
7、現(xiàn)在的OLE包容了許多新的特征,如統(tǒng)一數(shù)據(jù)傳輸、結(jié)構(gòu)化存儲(chǔ)和自動(dòng)化,已經(jīng)成為獨(dú)立于計(jì)算機(jī)語言、操作系統(tǒng)甚至硬件平臺(tái)的一種規(guī)范,是面向?qū)ο蟪绦蛟O(shè)計(jì)概念的進(jìn)一步推廣。
8、OPC建立OLE規(guī)范之上,它為工業(yè)控制領(lǐng)域提供了一種標(biāo)準(zhǔn)的數(shù)據(jù)訪問機(jī)制。
9、 工業(yè)控制領(lǐng)域用到大量的現(xiàn)場(chǎng)設(shè)備,在OPC出現(xiàn)以前,軟件開發(fā)商需要開發(fā)大量的驅(qū)動(dòng)程序來連接這些設(shè)備。
10、即使硬件供應(yīng)商在硬件上做了一些小小改動(dòng),應(yīng)用程序就可能需要重寫;同時(shí),由于不同設(shè)備甚至同一設(shè)備不同單元的驅(qū)動(dòng)程序也有可能不同,軟件開發(fā)商很難同時(shí)對(duì)這些設(shè)備進(jìn)行訪問以優(yōu)化操作。
11、硬件供應(yīng)商也在嘗試解決這個(gè)問題,然而由于不同客戶有著不同的需要,同時(shí)也存在著不同的數(shù)據(jù)傳輸協(xié)議,因此也一直沒有完整的解決方案。
12、 自O(shè)PC提出以后,這個(gè)問題終于得到解決。
13、OPC規(guī)范包括OPC服務(wù)器和OPC客戶兩個(gè)部分,其實(shí)質(zhì)是在硬件供應(yīng)商和軟件開發(fā)商之間建立了一套完整的“規(guī)則”,只要遵循這套規(guī)則,數(shù)據(jù)交互對(duì)兩者來說都是透明的,硬件供應(yīng)商無需考慮應(yīng)用程序的多種需求和傳輸協(xié)議,軟件開發(fā)商也無需了解硬件的實(shí)質(zhì)和操作過程。
14、 OPC的優(yōu)越性是顯而易見的: l 硬件供應(yīng)商只需提供一套符合OPC Server規(guī)范的程序組,無需考慮工程人員需求。
15、 l 軟件開發(fā)商無需重寫大量的設(shè)備驅(qū)動(dòng)程序。
16、 l 工程人員在設(shè)備選型上有了更多的選擇。
17、 l OPC擴(kuò)展了設(shè)備的概念。
18、只要符合OPC服務(wù)器的規(guī)范,OPC客戶都可與之進(jìn)行數(shù)據(jù)交互,而無需了解設(shè)備究竟是PLC還是儀表,甚至在數(shù)據(jù)庫系統(tǒng)上建立了OPC規(guī)范,OPC客戶也可與之方便地實(shí)現(xiàn)數(shù)據(jù)交互。
19、 OPC的適用范圍 OPC設(shè)計(jì)者們最終目標(biāo)是在工業(yè)領(lǐng)域建立一套數(shù)據(jù)傳輸規(guī)范,并為之制定了一系列的發(fā)展計(jì)劃。
20、現(xiàn)有的OPC規(guī)范涉及如下領(lǐng)域: 在線數(shù)據(jù)監(jiān)測(cè)。
21、實(shí)現(xiàn)了應(yīng)用程序和工業(yè)控制設(shè)備之間高效、靈活的數(shù)據(jù)讀寫。
22、 報(bào)警和事件處理。
23、提供了OPC服務(wù)器發(fā)生異常時(shí),以及OPC服務(wù)器設(shè)定事件到來時(shí)向OPC客戶發(fā)送通知的一種機(jī)制。
24、 歷史數(shù)據(jù)訪問。
25、實(shí)現(xiàn)了讀取、操作、編輯歷史數(shù)據(jù)庫的方法。
26、 遠(yuǎn)程數(shù)據(jù)訪問。
27、借助Microsoft的DCOM技術(shù),OPC實(shí)現(xiàn)了高性能的遠(yuǎn)程數(shù)據(jù)訪問能力。
28、 OPC近期將實(shí)現(xiàn)的功能還包括安全性、批處理、歷史報(bào)警事件數(shù)據(jù)訪問等。
29、 OPC的設(shè)計(jì)者在設(shè)計(jì)OPC時(shí)遵循如下原則: 易于實(shí)現(xiàn)。
30、 靈活滿足多種客戶需求。
31、 強(qiáng)大的功能。
32、 高效的操作。
33、 OPC的基本概念 1. 服務(wù)器、組、數(shù)據(jù)項(xiàng) OPC服務(wù)器由三類對(duì)象組成:服務(wù)器(Server)、組(Group)、數(shù)據(jù)項(xiàng)(Item)。
34、服務(wù)器對(duì)象(Server)擁有服務(wù)器的所有信息,同時(shí)也是組對(duì)象(Group)的容器。
35、組對(duì)象(Group)擁有本組的所有信息,同時(shí)包容并邏輯組織OPC數(shù)據(jù)項(xiàng)(Item)。
36、 OPC組對(duì)象(Group)提供了客戶組織數(shù)據(jù)的一種方法。
37、客戶可對(duì)之進(jìn)行讀寫,還可設(shè)置客戶端的數(shù)據(jù)更新速率。
38、當(dāng)服務(wù)器緩沖區(qū)內(nèi)數(shù)據(jù)發(fā)生改變時(shí),OPC將向客戶發(fā)出通知,客戶得到通知后再進(jìn)行必要的處理,而無需浪費(fèi)大量的時(shí)間進(jìn)行查詢。
39、OPC規(guī)范定義了兩種組對(duì)象:公共組和局部組(私有組)。
40、公共組由多個(gè)客戶共有,局部組只隸屬于一個(gè)OPC客戶。
41、一般說來,客戶和服務(wù)器的一對(duì)連接只需要定義一個(gè)組對(duì)象。
42、 在每個(gè)組對(duì)象中,客戶可以加入多個(gè)OPC數(shù)據(jù)項(xiàng)(Item)。
43、如下圖所示: OPC數(shù)據(jù)項(xiàng)是服務(wù)器端定義的對(duì)象,通常指向設(shè)備的一個(gè)寄存器單元。
44、OPC客戶對(duì)設(shè)備寄存器的操作都是通過其數(shù)據(jù)項(xiàng)來完成的,通過定義數(shù)據(jù)項(xiàng),OPC規(guī)范盡可能的隱藏了設(shè)備的特殊信息,也使OPC服務(wù)器的通用性大大增強(qiáng)。
45、OPC數(shù)據(jù)項(xiàng)并不提供對(duì)外接口,客戶不能直接對(duì)之進(jìn)行操作,所有操作都是通過組對(duì)象進(jìn)行的。
46、 客戶操作數(shù)據(jù)項(xiàng)的一般步驟為: 通過服務(wù)器對(duì)象接口枚舉服務(wù)器端定義的所有數(shù)據(jù)項(xiàng),如果客戶對(duì)服務(wù)器所定義的數(shù)據(jù)項(xiàng)非常熟悉,此步可以忽略。
47、 將要操作的數(shù)據(jù)項(xiàng)加入客戶定義的組對(duì)象中。
48、 通過組對(duì)象對(duì)數(shù)據(jù)項(xiàng)進(jìn)行讀寫等操作。
49、 每個(gè)數(shù)據(jù)項(xiàng)的數(shù)據(jù)結(jié)構(gòu)包括三個(gè)成員變量:即數(shù)據(jù)值、數(shù)據(jù)質(zhì)量和時(shí)間戳。
50、數(shù)據(jù)值是以VARIANT形式表示的。
51、應(yīng)當(dāng)注意,數(shù)據(jù)項(xiàng)表示同數(shù)據(jù)源的連接而不等同于數(shù)據(jù)源,無論客戶是否定義數(shù)據(jù)項(xiàng),數(shù)據(jù)源都是客觀存在的。
52、可以把數(shù)據(jù)項(xiàng)看作數(shù)據(jù)源的地址,即數(shù)據(jù)源的引用,而不應(yīng)看作數(shù)據(jù)源本身。
53、 2. 報(bào)警(Alarm)和事件(Event) 報(bào)警和事件處理機(jī)制增強(qiáng)了OPC客戶處理異常的能力。
54、服務(wù)器在工作過程中可能出現(xiàn)異常,此時(shí),OPC客戶可通過報(bào)警和事件處理接口得到通知,并能通過該接口獲得服務(wù)器的當(dāng)前狀態(tài)。
55、 在很多場(chǎng)合,報(bào)警(Alarm)和事件(Event)的含義并不加以區(qū)分,兩者也經(jīng)?;Q使用。
56、從嚴(yán)格意義上講,兩者含義略有差別。
57、 依據(jù)OPC規(guī)范,報(bào)警是一種異常狀態(tài),是OPC服務(wù)器或服務(wù)器的一個(gè)對(duì)象可能出現(xiàn)的所有狀態(tài)中的一種特殊情況。
58、例如,服務(wù)器上標(biāo)記為FC101的一個(gè)單元可能有如下狀態(tài):高出警戒,嚴(yán)重高出警戒,正常,低于警戒,嚴(yán)重低于警戒。
59、除了正常狀態(tài)外,其他狀態(tài)都視為報(bào)警狀態(tài)。
60、 事件則是一種可以檢測(cè)到的出現(xiàn)的情況,這種情況或來自O(shè)PC客戶,或來自O(shè)PC服務(wù)器,也可能來自O(shè)PC服務(wù)器所代表的設(shè)備,通常都有一定的物理意義。
61、事件可能與服務(wù)器或服務(wù)器的一個(gè)對(duì)象的狀態(tài)有關(guān),也可能毫無關(guān)系。
62、如高出警戒和正常狀態(tài)的轉(zhuǎn)換事件和服務(wù)器的某個(gè)對(duì)象的狀態(tài)有關(guān),而操作設(shè)備,改變系統(tǒng)配置以及出現(xiàn)系統(tǒng)錯(cuò)誤等事件和對(duì)象狀態(tài)就無任何關(guān)系。
63、 3. OPC體系結(jié)構(gòu) OPC規(guī)范提供了兩套接口方案,即COM接口和自動(dòng)化。
64、COM接口效率高,通過該接口,客戶能夠發(fā)揮OPC服務(wù)器的最佳性能,采用C++語言的客戶一般采用COM接口方案;自動(dòng)化接口使解釋性語言和宏語言訪問OPC服務(wù)器成為可能,采用VB語言的客戶一般采用自動(dòng)化接口。
65、自動(dòng)化接口使解釋性語言和宏語言編寫客戶應(yīng)用程序變得簡(jiǎn)單,然而自動(dòng)化客戶運(yùn)行時(shí)需進(jìn)行類型檢查,這一點(diǎn)則大大犧牲了程序的運(yùn)行速度。
66、 OPC服務(wù)器必須實(shí)現(xiàn)COM接口,是否實(shí)現(xiàn)自動(dòng)化接口則取決于供應(yīng)商的主觀意愿。
67、 4. 服務(wù)器緩沖區(qū)數(shù)據(jù)和設(shè)備數(shù)據(jù) OPC服務(wù)器本身就是一個(gè)可執(zhí)行程序,該程序以設(shè)定的速率不斷地同物理設(shè)備進(jìn)行數(shù)據(jù)交互。
68、服務(wù)器內(nèi)有一個(gè)數(shù)據(jù)緩沖區(qū),其中存有最新的數(shù)據(jù)值,數(shù)據(jù)質(zhì)量戳和時(shí)間戳。
69、時(shí)間戳表明服務(wù)器最近一次從設(shè)備讀取數(shù)據(jù)的時(shí)間。
70、服務(wù)器對(duì)設(shè)備寄存器的讀取是不斷進(jìn)行的,時(shí)間戳也在不斷更新。
71、即使數(shù)據(jù)值和質(zhì)量戳都沒有發(fā)生變化,時(shí)間戳也會(huì)進(jìn)行更新。
72、客戶既可從服務(wù)器緩沖區(qū)讀取數(shù)據(jù),也可直接從設(shè)備讀取數(shù)據(jù),從設(shè)備直接讀取數(shù)據(jù)速度會(huì)慢一些,一般只有在故障診斷或極特殊的情況下才會(huì)采用。
73、 5. 同步和異步 OPC客戶和OPC服務(wù)器進(jìn)行數(shù)據(jù)交互可以有兩種不同方式,即同步方式和異步方式。
74、同步方式實(shí)現(xiàn)較為簡(jiǎn)單,當(dāng)客戶數(shù)目較少而且同服務(wù)器交互的數(shù)據(jù)量也比較少的時(shí)候可以采用這種方式;異步方式實(shí)現(xiàn)較為復(fù)雜,需要在客戶程序中實(shí)現(xiàn)服務(wù)器回調(diào)函數(shù)。
75、然而當(dāng)有大量客戶和大量數(shù)據(jù)交互時(shí),異步方式能提供高效的性能,盡量避免阻塞客戶數(shù)據(jù)請(qǐng)求,并最大可能地節(jié)省CPU和網(wǎng)絡(luò)資。
本文分享完畢,希望對(duì)大家有所幫助。
標(biāo)簽:
免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請(qǐng)聯(lián)系刪除!