




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Good is good, but better carries it.精益求精,善益求善。冷軋清洗線控制系統(tǒng)設(shè)計(jì)用C和OPC設(shè)計(jì)二級(jí)控制系統(tǒng)鞍山科技大學(xué)畢業(yè)論文冷軋清洗線控制系統(tǒng)設(shè)計(jì) 用C+和OPC設(shè)計(jì)二級(jí)控制系統(tǒng)摘 要傳統(tǒng)工控系統(tǒng)的驅(qū)動(dòng)和與其連接的應(yīng)用程序之間的接口沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),為了實(shí)現(xiàn)不同的硬件和軟件所構(gòu)成的計(jì)算機(jī)之間的數(shù)據(jù)交換和傳輸,必須開(kāi)發(fā)各自的通訊程序。 這樣一來(lái), 導(dǎo)致了開(kāi)發(fā)成本高、重復(fù)性勞動(dòng)、驅(qū)動(dòng)程序不一致和存在訪問(wèn)沖突等問(wèn)題 , 很難適應(yīng)當(dāng)今工控系統(tǒng)的開(kāi)放性要求。OPC(OLE for Process Control,用于過(guò)程控制的 OLE)技術(shù)的出現(xiàn)提供了解決方法。OPC
2、使不同供應(yīng)廠商的設(shè)備和應(yīng)用程序之間可以相互間數(shù)據(jù)交換,把硬件供應(yīng)商和軟件開(kāi)發(fā)商分離開(kāi)來(lái),在設(shè)備和數(shù)據(jù)庫(kù)等數(shù)據(jù)源和客戶之間架起一座橋梁。 OPC是過(guò)程控制工業(yè)中的新興標(biāo)準(zhǔn),基于Microsoft的COM/DCOM技術(shù),它包括一整套用于過(guò)程控制自動(dòng)化接口和方法的標(biāo)準(zhǔn)集。本文介紹了OPC技術(shù)產(chǎn)生的背景,以及它的主要特點(diǎn)與發(fā)展?fàn)顩r,并剖析了其核心COM/DCOM技術(shù)。然后重點(diǎn)介紹了 OPC數(shù)據(jù)訪問(wèn)規(guī)范及訪問(wèn)方法,OPC服務(wù)器對(duì)象和客戶端對(duì)象接口及OPC客戶端與服務(wù)器的通信。最后介紹OPC技術(shù)在冷軋清洗線中的應(yīng)用,OPC服務(wù)器與現(xiàn)場(chǎng)設(shè)備和客戶端的連接。關(guān)鍵詞:OPC,組件對(duì)象模型,客戶端Cold Rol
3、ling Cleaning Line Control System DesignDesign Second Level Control System with C+ and OPCAbstractThere is no universal standard between the driver of traditional industry control system and application program. In order to realize the data exchange and the transmission among the computers with diff
4、erent hardware and software, people must develop respective communication program. As the matter stands, there exist many problems including the high development cost, the duplicated work, inconsistent driver program and visit conflict and so on .It is very difficult to meet the open needs of curren
5、t the industry control system. OPC (OLE for Process Control, used in process control OLE) techniques appearance provide the solution. OPC makes the different supply merchant of equipment and the application program exchange data mutually and separate the hardware supplier from the software developer
6、, which puts up a bridge between customers and data resource such as equipment and database etc.OPC is an emerging standard in the process control industry, based on Microsoft COM and DCOM technology. It includes the whole standard collection with interface and method used in the process control aut
7、omation. This paper introduces the background of OPC technology, as well as its main characteristic and the development condition, and analyzes its core COM and DCOM technology. Then it introduces the OPC data access standard and access method with emphasis, the interface and the communication betwe
8、en OPC server object and client object. In the end, it introduces the application of OPC technology in the cold rolling cleaning line,the connection in the cold rolling cleaning line between OPC server and the field device and that between OPC server and the client side.Keywords: OPC, COM, client si
9、de 目 錄摘 要IAbstractII1 緒 論11.1 研究背景11.2 OPC的基礎(chǔ)知識(shí)11.2.1 OPC產(chǎn)生的背景11.2.2 OPC的歷史41.2.3 OPC的現(xiàn)狀和發(fā)展52 OPC技術(shù)的基礎(chǔ)COM技術(shù)62.1 COM技術(shù)簡(jiǎn)介62.1.1 COM概念62.1.2 COM對(duì)象72.2 COM接口IUnknown 接口72.3 COM擴(kuò)展分布式COM(DCOM)83 OPC技術(shù)介紹83.1基于COM技術(shù)的OPC83.2 OPC數(shù)據(jù)訪問(wèn)規(guī)范103.3 OPC數(shù)據(jù)訪問(wèn)服務(wù)器的對(duì)象103. 4 OPC數(shù)據(jù)訪問(wèn)方法123.5 OPC服務(wù)器對(duì)象及其組對(duì)象接口143.5.1 OPC服務(wù)器接口143
10、.5.2 OPC組對(duì)象接口163.6 OPC客戶端及其接口183.6.1 OPC客戶端概述183.6.2 OPC客戶端的數(shù)據(jù)來(lái)源193.6.3 OPC客戶端接口194 OPC技術(shù)在冷軋清洗線中的應(yīng)用204.1工程背景及工藝204.1.1 工程背景204.1.2 工程工藝214.2 OPC服務(wù)器與現(xiàn)場(chǎng)設(shè)備的連接224.3 OPC服務(wù)器與客戶端的連接234.4 OPC服務(wù)器客戶端程序的主線程28總 結(jié)29致 謝30參考文獻(xiàn)31附 錄A (OPCthe standard for real time communication)32附 錄B (OPC實(shí)時(shí)通信標(biāo)準(zhǔn))36附 錄C39附 錄D52附 錄E6
11、067冷軋清洗線控制系統(tǒng)設(shè)計(jì)用C+和OPC設(shè)計(jì)二級(jí)控制系統(tǒng)冷軋清洗線控制系統(tǒng)設(shè)計(jì) 用C+和OPC設(shè)計(jì)二級(jí)控制系統(tǒng)1 緒 論1.1 研究背景現(xiàn)在,工業(yè)自動(dòng)化系統(tǒng)的應(yīng)用已經(jīng)非常普及,DCS(Distributed Control System,集散控制系統(tǒng))得到了廣泛應(yīng)用,現(xiàn)場(chǎng)總線技術(shù)正在逐步完善、成熟起來(lái)。但是目前工業(yè)自動(dòng)化系統(tǒng)絕大多數(shù)是封閉的系統(tǒng),缺乏統(tǒng)一、標(biāo)準(zhǔn)的開(kāi)放式接口。不同廠家的產(chǎn)品如果要集成在一起,必須為它們開(kāi)發(fā)專用的接口。隨著工業(yè)自動(dòng)化系統(tǒng)功能要求越來(lái)越復(fù)雜,完全用一個(gè)廠家的產(chǎn)品來(lái)構(gòu)成整個(gè)系統(tǒng)是很困難的。不同廠家的產(chǎn)品之間接口的復(fù)雜性限制了用戶的選擇,不能根據(jù)系統(tǒng)的要求選擇最佳的系統(tǒng)
12、集成方案。同時(shí),軟件在自動(dòng)化領(lǐng)域內(nèi)使用的重要性與日俱增。無(wú)論項(xiàng)目是否涉及到操作、可視化、數(shù)據(jù)存檔或控制,向純粹的、基于 PC的軟件解決方案的發(fā)展趨勢(shì)是不可阻擋的。這些軟件解決方案不再是開(kāi)發(fā)單個(gè)的模塊,而是由專用的軟件組件組成。采用可重復(fù)使用的軟件組件以及利用這些軟件組件所具有的柔性構(gòu)成整個(gè)系統(tǒng),成為發(fā)展的必然趨勢(shì),因而通信接口不兼容的問(wèn)題急需解決。OPC(OLE for Process Control,用于過(guò)程控制的OLE)技術(shù)的出現(xiàn)提供了解決方法。當(dāng)現(xiàn)場(chǎng)設(shè)備、應(yīng)用軟件都具備標(biāo)準(zhǔn)的OPC接口時(shí),便可集成來(lái)自不同數(shù)據(jù)源的數(shù)據(jù),使運(yùn)行在不用平臺(tái)上、用不同語(yǔ)言編寫(xiě)的各種應(yīng)用軟件順利集成。1.2 OP
13、C的基礎(chǔ)知識(shí)1.2.1 OPC產(chǎn)生的背景傳統(tǒng)的SCADA(監(jiān)控與數(shù)據(jù)采集系統(tǒng))開(kāi)發(fā)中出現(xiàn)的一個(gè)主要問(wèn)題是軟件的重復(fù)開(kāi)發(fā),軟件不能夠重用,資源不能共享,造成大量人力與物力資源的浪費(fèi)。隨著計(jì)算機(jī)軟件的發(fā)展,這種情況有所改觀,高級(jí)語(yǔ)言中庫(kù)函數(shù)的采用,實(shí)現(xiàn)了一定程度上資源的共享,尤其是面向?qū)ο蟮姆椒ǖ膽?yīng)用,使得我們可以利用面向?qū)ο蟮睦^承等方法大量重用源代碼。但這些重用只是對(duì)源代碼級(jí)的重用而不是對(duì)可執(zhí)行文件級(jí)的重用,對(duì)每一類庫(kù)都要重新編譯,所以并沒(méi)有真正實(shí)現(xiàn)資源共享,并且對(duì)某個(gè)模塊中某個(gè)類庫(kù)的修改將“觸一發(fā)而動(dòng)全身”,引起所有引用該類庫(kù)的模塊的修改,因此非常難以實(shí)現(xiàn)某個(gè)模塊的升級(jí)。同時(shí),為一種語(yǔ)言開(kāi)發(fā)的
14、類庫(kù)以及函數(shù)庫(kù)都不能夠?yàn)槠渌Z(yǔ)言所用,也大大限制了軟件的重用。一般實(shí)時(shí)監(jiān)控系統(tǒng)為分布式的結(jié)構(gòu),實(shí)現(xiàn)了人機(jī)接口、通信、數(shù)據(jù)處理等功能在網(wǎng)絡(luò)上的分布,同時(shí)將一個(gè)系統(tǒng)劃分為各個(gè)子系統(tǒng),降低了系統(tǒng)的復(fù)雜程度,改善了系統(tǒng)性能,便于整個(gè)系統(tǒng)的開(kāi)發(fā),減少了開(kāi)發(fā)周期與維護(hù)費(fèi)用。但由于系統(tǒng)各個(gè)計(jì)算機(jī)的通信協(xié)議依賴于某個(gè)廠家,沒(méi)有形成統(tǒng)一的標(biāo)準(zhǔn),不同廠家之間的軟件與硬件的集成難于實(shí)現(xiàn)。因此也沒(méi)有真正實(shí)現(xiàn)不同廠家的軟件共享。從更廣泛的意義上看,新的過(guò)程控制信息體系的各層都有著各自的要求,他們都要求信息的一致性?,F(xiàn)場(chǎng)控制層:智能現(xiàn)場(chǎng)設(shè)備的出現(xiàn),可以提供過(guò)去不能提供的大量豐富的有關(guān)此現(xiàn)場(chǎng)設(shè)備的信息。所有這些信息必須以一
15、致的方式提供給客戶應(yīng)用程序。過(guò)程管理層:DCS(集散控制系統(tǒng))和SCADA必須以統(tǒng)一的方式為操作員和工程師等決策者提供數(shù)據(jù)。經(jīng)營(yíng)決策層:對(duì)生產(chǎn)過(guò)程信息的綜合,有助于企業(yè)最優(yōu)生產(chǎn),節(jié)省財(cái)政開(kāi)支。而向客戶應(yīng)用程序以統(tǒng)一的方式提供信息,可最小化企業(yè)在信息綜合上的精力。為了有效地完成信息集成,關(guān)鍵是制訂一種集中于數(shù)據(jù)訪問(wèn)而不是數(shù)據(jù)類型的開(kāi)放的、有效的通信標(biāo)準(zhǔn)。定義OPC的目的就是為應(yīng)用程序訪問(wèn)工廠前臺(tái)提供共同的方法,允許兼容的應(yīng)用程序無(wú)縫的訪問(wèn)生產(chǎn)環(huán)境中的數(shù)據(jù)。在傳統(tǒng)的控制系統(tǒng)中,智能設(shè)備之間及智能設(shè)備與控制系統(tǒng)軟件之間的信息共享是通過(guò)驅(qū)動(dòng)程序來(lái)實(shí)現(xiàn)的。任何一種HMI(Human Machine In
16、terface,人機(jī)接口)等上位監(jiān)控軟件或其它應(yīng)用軟件(如趨勢(shì)圖軟件、數(shù)據(jù)報(bào)表與分析等)在使用某種硬件設(shè)備時(shí)都需要開(kāi)發(fā)專用的驅(qū)動(dòng)程序,如圖1.1所示1。圖1.1 傳統(tǒng)控制系統(tǒng)結(jié)構(gòu)為了解決上述問(wèn)題,硬件制造商們一直試圖開(kāi)發(fā)出一種可以被任何客戶使用的超級(jí)“I/O驅(qū)動(dòng)”程序。但是由于客戶協(xié)議的不一致,這項(xiàng)工作至今沒(méi)有取得成功,OPC和現(xiàn)場(chǎng)總線標(biāo)準(zhǔn)的制定正好為上述問(wèn)題的解決開(kāi)辟了新的道路。采用OPC標(biāo)準(zhǔn)后,針對(duì)硬件的驅(qū)動(dòng)程序不再由軟件開(kāi)發(fā)商開(kāi)發(fā),而是由硬件開(kāi)發(fā)商根據(jù)硬件的特征提供統(tǒng)一的OPC接口程序。由于硬件開(kāi)發(fā)商對(duì)自己的硬件特征了如指掌,從而能夠最大限度地挖掘硬件的潛力,提高驅(qū)動(dòng)程序的性能?;贠P
17、C標(biāo)準(zhǔn)的數(shù)據(jù)訪問(wèn)方式如圖1.2所示。采用OPC標(biāo)準(zhǔn)后,由硬件開(kāi)發(fā)商提供統(tǒng)一的OPC接口程序,從而避免了開(kāi)發(fā)重復(fù)性,使開(kāi)發(fā)費(fèi)用大大降低。OPC 規(guī)范采用客戶/服務(wù)器模型,其實(shí)質(zhì)是在硬件供應(yīng)商和軟件供應(yīng)商之間建立一套“游戲規(guī)則”,只要遵循這套規(guī)則,數(shù)據(jù)交互對(duì)兩者來(lái)說(shuō)都是透明的。硬件供應(yīng)商無(wú)需考慮應(yīng)用程序的多種需求和傳輸協(xié)議,軟件開(kāi)發(fā)商也無(wú)需了解硬件的實(shí)質(zhì)和操作過(guò)程。這樣可以靈活而有效地在應(yīng)用和過(guò)程控制設(shè)備之間讀寫(xiě)數(shù)據(jù)。 圖1.2 采用OPC后控制系統(tǒng)結(jié)構(gòu)1.2.2 OPC的歷史OPC (OLE for Process Control用于過(guò)程控制的 OLE)是一個(gè)工業(yè)標(biāo)準(zhǔn),它是許多世界領(lǐng)先的自動(dòng)化和
18、軟、硬件公司與微軟公司合作的結(jié)晶。這個(gè)標(biāo)準(zhǔn)定義了應(yīng)用Microsoft操作系統(tǒng)在基于 PC 的客戶機(jī)之間交換自動(dòng)化實(shí)時(shí)數(shù)據(jù)的方法。管理該標(biāo)準(zhǔn)的組織是OPC基金會(huì)。該基金會(huì)的會(huì)員單位在世界范圍內(nèi)超過(guò)220個(gè),包括了世界上幾乎全部的控制系統(tǒng)、儀器儀表和過(guò)程控制系統(tǒng)的主要供應(yīng)商。OPC基金會(huì)的先驅(qū)(由 Fisher-Rosemount、Rockwell 軟件公司、Opto 22、Intellution和IntuitiveTechnology公司組成的“特別工作組”)在經(jīng)過(guò)一年工作后,開(kāi)發(fā)出一個(gè)基本的、可運(yùn)行的OPC規(guī)范。隨著1997年2月Microsoft公司推出Windows95支持的DCOM技術(shù)
19、,1997年9月新成立的OPC Foundation對(duì)OPC規(guī)范進(jìn)行修改,增加了數(shù)據(jù)訪問(wèn)等一些標(biāo)準(zhǔn),OPC 規(guī)范得到了進(jìn)一步的完善。OPC是基于Microsoft公司的DistributedinterNetApplication(DNA)構(gòu)架和 Component Object Model(COM)技術(shù)的,根據(jù)易于擴(kuò)展性而設(shè)計(jì)的。OPC規(guī)范定義了一個(gè)工業(yè)標(biāo)準(zhǔn)接口,這個(gè)標(biāo)準(zhǔn)使得COM技術(shù)適用于過(guò)程控制和制造自動(dòng)化等應(yīng)用領(lǐng)域。OPC是以O(shè)LE/COM機(jī)制作為應(yīng)用程序的通訊標(biāo)準(zhǔn)。OLE/COM是一種客戶/服務(wù)器模式,具有語(yǔ)言無(wú)關(guān)性、代碼重用性、易于集成性等優(yōu)點(diǎn)。OPC規(guī)范了接口函數(shù),不管現(xiàn)場(chǎng)設(shè)備以何
20、種形式存在,客戶都以統(tǒng)一的方式去訪問(wèn),從而保證軟件對(duì)客戶的透明性,使得用戶完全從底層的開(kāi)發(fā)中脫離出來(lái)2。OPC技術(shù)是OPC基金會(huì)組織制定的工業(yè)控制軟件互操作性規(guī)范,也是微軟為了把WINDOWS應(yīng)用于控制系統(tǒng)和控制界共同推出的一項(xiàng)技術(shù)。它以微軟的COM/DCOM(組件對(duì)象模型和分布式組件對(duì)象模型)技術(shù)為基礎(chǔ),為工業(yè)控制軟件定義了一套標(biāo)準(zhǔn)的對(duì)象、接口和屬性,通過(guò)這些對(duì)象接口,應(yīng)用軟件之間能夠無(wú)縫地集成在一起,實(shí)現(xiàn)了應(yīng)用程序之間數(shù)據(jù)交換方式的標(biāo)準(zhǔn)化,極大的提高了自動(dòng)化系統(tǒng),現(xiàn)場(chǎng)設(shè)備系統(tǒng),商業(yè)辦公系統(tǒng)之間的互操作性。OPC接口既可以用于應(yīng)用程序的最低級(jí),即通過(guò)該接口將現(xiàn)場(chǎng)實(shí)時(shí)數(shù)據(jù)采集到DCS或SCAD
21、A中來(lái),又可用于應(yīng)用程序的中級(jí)環(huán)節(jié),即通過(guò)該接口將數(shù)據(jù)從DCS或SCADA系統(tǒng)采集到上位機(jī)應(yīng)用程序中來(lái),還可將OPC應(yīng)用于網(wǎng)絡(luò)計(jì)算機(jī)來(lái)采集數(shù)據(jù),設(shè)計(jì)一個(gè)OPC服務(wù)器,允許客戶應(yīng)用程序從該服務(wù)器或網(wǎng)上運(yùn)行OPC服務(wù)器的其它節(jié)點(diǎn)計(jì)算機(jī)上采集數(shù)據(jù)??傊琌PC應(yīng)用不應(yīng)該局限于應(yīng)用程序與現(xiàn)場(chǎng)設(shè)備的接口,應(yīng)該認(rèn)為它是一種Windows應(yīng)用程序相互交換數(shù)據(jù)的通用規(guī)范。1.2.3 OPC的現(xiàn)狀和發(fā)展OPC技術(shù)的發(fā)展,源于OPC基金會(huì)及其300多家公司成員的共同努力。世界領(lǐng)先的工業(yè)自動(dòng)化軟硬件廠商,作為OPC基金會(huì)的成員,為OPC技術(shù)的發(fā)展做出著重要的貢獻(xiàn)。目前現(xiàn)存的和正在開(kāi)發(fā)的OPC標(biāo)準(zhǔn)如表1.1所示。表1
22、.1 OPC標(biāo)準(zhǔn)標(biāo)準(zhǔn)最新版本內(nèi)容OPC Data AccessOPC Alarms & Events3.001.10數(shù)據(jù)訪問(wèn)標(biāo)準(zhǔn)報(bào)警和事件標(biāo)準(zhǔn)OPC Batch2.00批處理標(biāo)準(zhǔn)OPC Data Exchange1.00服務(wù)器間數(shù)據(jù)交換標(biāo)準(zhǔn)OPC Historical Data Access1.20歷史數(shù)據(jù)訪問(wèn)標(biāo)準(zhǔn)OPC SecurityOPC XML-DA1.001.01安全性標(biāo)準(zhǔn)XML數(shù)據(jù)訪問(wèn)標(biāo)準(zhǔn)OPC Commands1.00命令標(biāo)準(zhǔn)OPC Complex Data1.00復(fù)雜數(shù)據(jù)訪問(wèn)標(biāo)準(zhǔn) 2 OPC技術(shù)的基礎(chǔ)COM技術(shù)2.1 COM技術(shù)簡(jiǎn)介2.1.1 COM概念COM(Comp
23、onent Object Model,組件對(duì)象模型)是由Microsoft提出的組件標(biāo)準(zhǔn),是OLE、ActiveX、DCOM技術(shù)的基礎(chǔ),它不僅定義了組件程序之間進(jìn)行交互的標(biāo)準(zhǔn),并且也提供了組件程序運(yùn)行所需的環(huán)境。該模型的定義是為了實(shí)現(xiàn)語(yǔ)言無(wú)關(guān)、廠商無(wú)關(guān)、位置透明以及減少版本問(wèn)題,從而使得來(lái)自不同廠商的、不同語(yǔ)言編寫(xiě)和運(yùn)行在不同平臺(tái)上的COM對(duì)象能夠彼此協(xié)調(diào)地運(yùn)行,共同實(shí)現(xiàn)某一任務(wù)3。2.1.2 COM對(duì)象COM提供的是面向?qū)ο蟮慕M件模型,COM組件提供給客戶的是以對(duì)象形式封裝起來(lái)的實(shí)體??蛻舫绦蚺cCOM組件程序進(jìn)行交互的實(shí)體是COM對(duì)象,它并不關(guān)心組件模塊的名稱和位置(位置透明性),但必須知道
24、自己在與哪個(gè)COM對(duì)象交互。類似于C+語(yǔ)言中類(Class)的概念,COM對(duì)象也包含屬性(也稱狀態(tài))和方法(也稱操作),對(duì)象的狀態(tài)反映了對(duì)象的存在,也是區(qū)別于其它對(duì)象的要素;而對(duì)象所提供的方法就是對(duì)象提供給外界的接口,客戶必須通過(guò)接口才能獲得對(duì)象的服務(wù)。對(duì)于COM對(duì)象來(lái)說(shuō),接口是它與外界進(jìn)行交互的唯一途徑,因此,封裝特性是COM對(duì)象的基本特征。COM對(duì)象不同于像C+等面向?qū)ο笳Z(yǔ)言中對(duì)象的概念,COM對(duì)象是建立在二進(jìn)制可執(zhí)行代碼級(jí)的基礎(chǔ)上,而C+等語(yǔ)言中的對(duì)象是建立在源代碼級(jí)基礎(chǔ)上的,因此COM對(duì)象是語(yǔ)言無(wú)關(guān)的,這一特性使用不同編程語(yǔ)言開(kāi)發(fā)組件對(duì)象進(jìn)行成為可能。COM對(duì)象也具有可重用性,它表現(xiàn)在
25、COM對(duì)象的包容和聚合,一個(gè)對(duì)象可以完全使用另一個(gè)對(duì)象的所有功能。并且COM對(duì)象的重用是動(dòng)態(tài)的,即被包容或被聚合對(duì)象的版本更新或功能增強(qiáng)后,包容或聚合對(duì)象根本不需要重新編譯或者重新設(shè)置。2.2 COM接口IUnknown 接口COM定義的每一個(gè)接口都必須從IUnknown繼承過(guò)來(lái),其原因在于IUnknown接口提供了兩個(gè)非常重要的特性:生存期控制和接口查詢??蛻舫绦蛑荒芡ㄟ^(guò)接口與COM 對(duì)象進(jìn)行通信,雖然客戶程序可以不管對(duì)象內(nèi)部的實(shí)現(xiàn)細(xì)節(jié),但它要控制對(duì)象的存在與否。如果客戶還要繼續(xù)對(duì)對(duì)象進(jìn)行操作,則它必須保證對(duì)象能一直存在于內(nèi)存中;如果客戶對(duì)對(duì)象的操作已經(jīng)完成,以后也不再需要該對(duì)象了則它必須及
26、時(shí)地把對(duì)象釋放掉,以提高資源的利用率。IUnknown 引入了“引用計(jì)數(shù)”方法,可以有效地控制對(duì)象的生存周期。IUnknown包含了三個(gè)成員函數(shù):QueryInterface、AddRef、Release。函數(shù) QueryInterface用于供客戶端查詢對(duì)象是否支持某個(gè)特定的接口,函數(shù)AddRef 和 Release用于完成對(duì)象的生存期控制。2.3 COM擴(kuò)展分布式COM(DCOM)DCOM是COM的擴(kuò)展,它可以支持不同計(jì)算機(jī)上組件對(duì)象與客戶程序之間或者組件對(duì)象之間的相互通信,這些計(jì)算機(jī)可以在局域網(wǎng)內(nèi)也可以在廣域網(wǎng)上,甚至通過(guò)Internet進(jìn)行連接。對(duì)于客戶程序而言,組件程序所處的位置是透
27、明的,我們不必編寫(xiě)任何處理遠(yuǎn)程調(diào)用的代碼,因此,DCOM 也是 COM 的無(wú)縫擴(kuò)展。由于COM是一項(xiàng)應(yīng)用廣泛、成熟的組件技術(shù),所以我們可以充分利用基于COM的應(yīng)用、組件、開(kāi)發(fā)工具以及知識(shí),并把它們轉(zhuǎn)移到分布式計(jì)算的應(yīng)用領(lǐng)域中來(lái)。因?yàn)镈COM已經(jīng)為我們處理了底層網(wǎng)絡(luò)協(xié)議的所有細(xì)節(jié),所以我們可把重點(diǎn)放在應(yīng)用的業(yè)務(wù)邏輯上,而不必再為底層處理費(fèi)時(shí)費(fèi)力。典型的分布式應(yīng)用系統(tǒng)是,在各個(gè)服務(wù)器上運(yùn)行一些DCOM組件對(duì)象,客戶程序調(diào)用這些組件對(duì)象,由它們完成實(shí)際的功能操作,比如訪問(wèn)數(shù)據(jù)庫(kù)或進(jìn)行一些復(fù)雜的數(shù)據(jù)處理,客戶程序只負(fù)責(zé)接受用戶的輸入并把服務(wù)器的響應(yīng)結(jié)果反饋給用戶。3 OPC技術(shù)介紹3.1基于COM技術(shù)
28、的OPCOPC是以O(shè)LE/COM機(jī)制作為應(yīng)用程序的通訊標(biāo)準(zhǔn)。OLE/COM是一種客戶/服務(wù)器模式,具有語(yǔ)言無(wú)關(guān)性、代碼重用性、易于集成性等優(yōu)點(diǎn)。OPC規(guī)范了接口函數(shù),不管現(xiàn)場(chǎng)設(shè)備以何種形式存在,客戶都以統(tǒng)一的方式去訪問(wèn),從而保證軟件對(duì)客戶的透明性,使得用戶完全從低層的開(kāi)發(fā)中脫離出來(lái)4。微軟公司為了提供商業(yè)應(yīng)用程序和特定用途的軟件包間的相互連接性,開(kāi)發(fā)了所謂的組件對(duì)象模型(Component Object Model, COM)技術(shù)。COM是一種軟件組件間相互數(shù)據(jù)交換的有效方法。COM技術(shù)具有以下特長(zhǎng)5:1、所謂COM并不是一種計(jì)算機(jī)語(yǔ)言,而是于運(yùn)行的機(jī)器(只要互相連接),機(jī)器的操作系統(tǒng)(只要支
29、持COM),以及軟件開(kāi)發(fā)的語(yǔ)言無(wú)關(guān),任意的兩個(gè)軟件組件之間都可以相互通信的二進(jìn)制和網(wǎng)絡(luò)的標(biāo)準(zhǔn)。2、COM客戶程序和COM服務(wù)器可以用完全不同的語(yǔ)言開(kāi)發(fā)。這樣使利用C+,Visual Basic,以及Excel中作為宏使用的應(yīng)用程序的Visual Basic等不同語(yǔ)言所開(kāi)發(fā)的程序可以相互連接。3、作為COM技術(shù)擴(kuò)展的分布式COM(Distributed Component Object Model, 分布式COM)技術(shù),更可以使COM組件分布在不同的計(jì)算機(jī)上,并通過(guò)網(wǎng)絡(luò)互相連接并互相交換數(shù)據(jù)。所以對(duì)于COM客戶程序來(lái)說(shuō),同樣像連接本地計(jì)算機(jī)上的COM服務(wù)器一樣,去連接遠(yuǎn)程計(jì)算機(jī)上的COM服務(wù)器,
30、當(dāng)然通信的速度不太一樣,但是重要的是不必對(duì)服務(wù)器程序進(jìn)行修正就可以在網(wǎng)絡(luò)上自由構(gòu)成(圖3.1)。COM技術(shù)的出現(xiàn)使簡(jiǎn)單地實(shí)現(xiàn)控制設(shè)備和控制管理系統(tǒng)之間的數(shù)據(jù)交換提供了技術(shù)基礎(chǔ)。但是如果不提供一個(gè)工業(yè)標(biāo)準(zhǔn)化的COM接口,各個(gè)控制設(shè)備廠家開(kāi)發(fā)的COM組件之間的相互連接仍然是不可能的。這樣的工業(yè)標(biāo)準(zhǔn)的提供,乃是OPC的目的所在??偠灾琌PC是作為工業(yè)標(biāo)準(zhǔn)定義的特殊的COM接口。OPC是以提供移植容易并具有可以滿足大多數(shù)設(shè)備廠家要求的靈活性和高水平的機(jī)能性為目標(biāo)而開(kāi)發(fā)的,對(duì)于制造廠商和用戶來(lái)說(shuō),分別可以從OPC得到以下的實(shí)惠:1、設(shè)備開(kāi)發(fā)者:可以使設(shè)備驅(qū)動(dòng)器開(kāi)發(fā)的單一化成為可能。2、應(yīng)用程序軟件開(kāi)
31、發(fā)者:可以使用通用的開(kāi)發(fā)工具。不必開(kāi)發(fā)特別的接口,使得 圖3.1 利用COM和分布式COM達(dá)成的組件間的互相連接設(shè)備接口的開(kāi)發(fā)更為簡(jiǎn)單易行。3、用戶:可以選用各種各樣的商業(yè)軟件包,使得系統(tǒng)構(gòu)成的成本大為降低。同時(shí)可以更加容易地實(shí)現(xiàn)由不同供應(yīng)廠商提供的設(shè)備所混合構(gòu)成的工業(yè)控制系統(tǒng)。隨著基于OPC標(biāo)準(zhǔn)的控制組件的推廣和普及,不僅使控制系統(tǒng)的增設(shè)和組件的置換更加簡(jiǎn)單,而且使過(guò)程數(shù)據(jù)的訪問(wèn)也變得容易。3.2 OPC數(shù)據(jù)訪問(wèn)規(guī)范OPC規(guī)范定義了兩套接口標(biāo)準(zhǔn),包括自動(dòng)化標(biāo)準(zhǔn)(Automation Interface Standard)和自定義接口標(biāo)準(zhǔn)(Custom Interface Standard)。
32、自動(dòng)化接口是為了向VB之類的腳本語(yǔ)言編寫(xiě)的客戶程序提供服務(wù),而自定義接口適用于C和C+應(yīng)用程序,它比自動(dòng)化接口更高效,功能更強(qiáng)大(圖3.2)6。OPC數(shù)據(jù)訪問(wèn)規(guī)范描述了由OPC服務(wù)器實(shí)現(xiàn)的OPC /COM 對(duì)象及相應(yīng)接口。規(guī)范指出一個(gè)OPC客戶程序可以連接到一個(gè)或多個(gè)由不同廠家提供的OPC服務(wù)器程序,而多個(gè)OPC客戶程序也可以連接到一個(gè)OPC服務(wù)器程序上,服務(wù)器所要訪問(wèn)的設(shè)備、數(shù)據(jù)源、數(shù)據(jù)名及服務(wù)器程序如何進(jìn)行數(shù)據(jù)的訪問(wèn)由廠商提供的代碼決定。其OPC客戶與OPC服務(wù)器的關(guān)系見(jiàn)圖3.3,這是COM中典型的客戶/服務(wù)器模型。3.3 OPC數(shù)據(jù)訪問(wèn)服務(wù)器的對(duì)象OPC數(shù)據(jù)訪問(wèn)服務(wù)器在COM基礎(chǔ)上建立了
33、符合OPC規(guī)范的COM接口和對(duì)象7。圖3.2 OPC服務(wù)器與不同類型的OPC客戶連接圖3.3 OPC客戶與OPC服務(wù)器的關(guān)系OPC邏輯對(duì)象模型包括三類對(duì)象:OPC服務(wù)器對(duì)象、OPC組對(duì)象、OPC項(xiàng)對(duì)象,每類對(duì)象都包括一系列接口。OPC 組對(duì)象包含在OPC服務(wù)器對(duì)象中,并由客戶端定義和維護(hù),每個(gè)服務(wù)器可以包含多個(gè)組對(duì)象。OPC組對(duì)象可以增加或刪除OPC項(xiàng)對(duì)象,OPC項(xiàng)對(duì)象包含在OPC組對(duì)象中,一個(gè)組對(duì)象可以包含多個(gè)項(xiàng)對(duì)象,同樣由客戶端定義和維護(hù)。OPC客戶端與OPC服務(wù)器連接并通過(guò)接口與OPC服務(wù)器通信,OPC服務(wù)器對(duì)象向OPC客戶端提供創(chuàng)建和操作 OPC 組對(duì)象的功能。這些組允許OPC客戶對(duì)它
34、們要訪問(wèn)的數(shù)據(jù)進(jìn)行組織。一組可以作為一個(gè)單元被激活或失活。一組也可以提供一種方法允許客戶“訂閱(Subscription)”項(xiàng)目列表,以便在數(shù)據(jù)項(xiàng)變化時(shí)它能得到通知。每個(gè)數(shù)據(jù)項(xiàng)對(duì)象包含一個(gè)ID標(biāo)識(shí)(即用字符串表示的數(shù)據(jù)位號(hào))、一個(gè)數(shù)值、一個(gè)質(zhì)量值(表示數(shù)據(jù)的可信度)、一個(gè)時(shí)間標(biāo)簽(表示最新數(shù)據(jù)變動(dòng)時(shí)間)。對(duì)數(shù)據(jù)項(xiàng)可進(jìn)行讀寫(xiě)操作并可根據(jù)需要使其激活或失活。數(shù)據(jù)項(xiàng)不能被OPC客戶作為對(duì)象進(jìn)行操作,所有對(duì)OPC數(shù)據(jù)項(xiàng)的操作都是通過(guò)組對(duì)象來(lái)進(jìn)行的。OPC 數(shù)據(jù)訪問(wèn)服務(wù)器所定義的三個(gè)對(duì)象中只有兩個(gè)標(biāo)準(zhǔn)的COM 對(duì)象,即 OPC Server和OPC Group對(duì)象。OPC Server對(duì)象是客戶端與服務(wù)
35、器交互的首要對(duì)象。客戶端訪問(wèn)OPC Server 對(duì)象的接口函數(shù)組織管理OPC Group對(duì)象。OPC Group對(duì)象用于組織管理服務(wù)器內(nèi)部的實(shí)時(shí)數(shù)據(jù)信息。在OPC規(guī)范中,使用項(xiàng)對(duì)象描述實(shí)時(shí)數(shù)據(jù)。項(xiàng)對(duì)象是非COM對(duì)象,也是客戶端不可見(jiàn)的對(duì)象。OPC Server對(duì)象功能主要表現(xiàn)為:創(chuàng)建和管理OPC Group對(duì)象;管理服務(wù)器內(nèi)部的狀態(tài)信息;瀏覽服務(wù)器內(nèi)部地址空間的數(shù)據(jù)組織結(jié)構(gòu)。從OPC Server對(duì)象的功能可以看出,OPC Server對(duì)象面向OPC服務(wù)器的技術(shù)細(xì)節(jié),基本獨(dú)立于實(shí)時(shí)數(shù)據(jù)源,可以統(tǒng)一實(shí)現(xiàn)。其中,數(shù)據(jù)的組織結(jié)構(gòu)和數(shù)據(jù)源屬性與具體數(shù)據(jù)源有關(guān),需要從用戶處獲取信息。OPC Group
36、對(duì)象的主要功能表現(xiàn)為:管理OPC Group對(duì)象的內(nèi)部狀態(tài)信息;創(chuàng)建和管理項(xiàng)對(duì)象;OPC服務(wù)器內(nèi)部的實(shí)時(shí)數(shù)據(jù)存取服務(wù)(同步與異步方式)。從OPC Group對(duì)象的功能可以看出,該對(duì)象面向OPC服務(wù)器中的數(shù)據(jù)存取信息,對(duì)實(shí)時(shí)數(shù)據(jù)源依賴性很強(qiáng),需要從用戶數(shù)據(jù)源處獲取信息。OPC規(guī)范只規(guī)定了COM接口的名稱和接口向 OPC 客戶程序提供的行為,但沒(méi)有規(guī)定如何去實(shí)現(xiàn)它。OPC體系結(jié)構(gòu)是客戶/服務(wù)器模式,OPC服務(wù)器組件提供OPC對(duì)象接口并管理這些接口。3. 4 OPC數(shù)據(jù)訪問(wèn)方法OPC數(shù)據(jù)傳輸機(jī)制主要有同步訪問(wèn),異步訪問(wèn)和數(shù)據(jù)訂閱三種方式。對(duì)于如圖3.4所示的同步訪問(wèn),OPC服務(wù)器把按照OPC應(yīng)用程序
37、的要求得到的數(shù)據(jù)訪問(wèn)結(jié)果作為方法的參數(shù)返回給OPC應(yīng)用程序,OPC應(yīng)用程序在結(jié)果被返回之前必須處于等待狀態(tài)。 圖3.4 同步數(shù)據(jù)訪問(wèn)處理與此相對(duì),如圖3.5所示的異步訪問(wèn),OPC服務(wù)器接到OPC應(yīng)用程序的要求后,幾乎立即將方法返回。OPC應(yīng)用程序隨后可以進(jìn)行其他處理。當(dāng)OPC服務(wù)器完成數(shù)據(jù)訪問(wèn)時(shí),觸發(fā)OPC應(yīng)用程序的異步訪問(wèn)完成事件,將數(shù)據(jù)訪問(wèn)結(jié)果傳送給OPC應(yīng)用程序。OPC應(yīng)用程序在VB的事件處理程序中接受從OPC服務(wù)器傳送來(lái)的數(shù)據(jù)。 圖3.5 異步數(shù)據(jù)訪問(wèn)處理除了上述的同步和異步數(shù)據(jù)訪問(wèn)以外,還有如圖3.6所示的并不需要OPC應(yīng)用程序向OPC服務(wù)器要求,就可以自動(dòng)接到從OPC服務(wù)器送來(lái)的變
38、化通知的訂閱方式數(shù)據(jù)采集(Subscription)。服務(wù)器按一定的更新周期(Update Rate)更新OPC服務(wù)器的數(shù)據(jù)緩沖器的數(shù)值時(shí),如果發(fā)現(xiàn)數(shù)值有變化時(shí),就會(huì)以數(shù)據(jù)變化事件(Data Change)通知OPC 圖3.6 訂閱方式數(shù)據(jù)采集應(yīng)用程序。如果OPC服務(wù)器支持不敏感帶(Dead Band),而OPC標(biāo)簽的數(shù)據(jù)類型是模擬量的情況,只有當(dāng)前值與前次值的差的絕對(duì)值超過(guò)一定限度時(shí),才更新緩沖器數(shù)據(jù)并通知OPC應(yīng)用程序。由此可以無(wú)視模擬值的微小變化,從而減輕OPC服務(wù)器和OPC應(yīng)用程序的負(fù)荷。3.5 OPC服務(wù)器對(duì)象及其組對(duì)象接口3.5.1 OPC服務(wù)器接口圖3.7 標(biāo)準(zhǔn) OPC 服務(wù)器對(duì)
39、象OPC服務(wù)器對(duì)象接口的行為8(圖3.7):1、IUnknown所有COM對(duì)象必須實(shí)現(xiàn)的最基本接口,包括AddRef,Release 和QueryInterface,所有COM對(duì)象都必須實(shí)現(xiàn)這個(gè)接口。2、IOPCCommon此接口被應(yīng)用于各種類型的服務(wù)器,它們共享這個(gè)接口設(shè)計(jì)。它提供設(shè)置和查詢LocaleID(本地語(yǔ)言標(biāo)識(shí))的功能,對(duì)特定的客戶/服務(wù)器交互有效,也就是說(shuō),一個(gè)客戶的行為不會(huì)影響其它客戶。3、IOPCServer這是OPC服務(wù)器對(duì)象的主接口,它可完成組對(duì)象的動(dòng)態(tài)創(chuàng)建以及對(duì)其進(jìn)行管理。服務(wù)器對(duì)象必須提供此接口。AddGroup;創(chuàng)建一個(gè)組對(duì)象,并返回客戶請(qǐng)求的接口指針,其參數(shù)反映了
40、組對(duì)象創(chuàng)建時(shí)的狀態(tài)。這是組對(duì)象暴露給客戶程序的唯一途徑。GetGroupByName;通過(guò)組名獲得一個(gè)已有私有組對(duì)象的接口指針,從而與之建立連接。它主要用于當(dāng)相應(yīng)組對(duì)象的接口指針都被釋放后重新與之建立連接(當(dāng)然如果此組對(duì)象已從內(nèi)存中刪除除外)。GetStatus;返回服務(wù)器對(duì)象當(dāng)前狀態(tài)信息,如服務(wù)器運(yùn)行狀態(tài),組對(duì)象的數(shù)目,版本號(hào),廠商信息,以及當(dāng)前時(shí)間和前次數(shù)據(jù)刷新時(shí)間等等??蛻艨蓪?duì) GetStatus方法進(jìn)行周期性調(diào)用來(lái)確定服務(wù)器是否連接和可用。RemoveGroup;刪除不再使用的組對(duì)象。當(dāng)所有的組對(duì)象接口都釋放后客戶再調(diào)用此函數(shù),使相應(yīng)組對(duì)象在內(nèi)存中徹底刪除。但它不能用于公共組對(duì)象。Cr
41、eateGroupEnumerator;創(chuàng)建一個(gè)可列舉當(dāng)前服務(wù)器對(duì)象內(nèi)的組對(duì)象的枚舉器??梢粤信e組對(duì)象的名稱,也可以列舉指向組對(duì)象的IUnknown 接口的指針。枚舉器也是一個(gè)COM對(duì)象,它實(shí)現(xiàn)了相應(yīng)類型枚舉接口,如IEnumString和 IEnumUnknown接口,OPC服務(wù)器對(duì)它的實(shí)現(xiàn)進(jìn)行了簡(jiǎn)化,由相應(yīng)接口函數(shù)來(lái)創(chuàng)建它的對(duì)象,由客戶程序來(lái)釋放它。4、IConnectionPointContainer服務(wù)器對(duì)象上的此接口主要提供了相對(duì)于IOPCShutdown出接口連接點(diǎn)的訪問(wèn)支持。IOPCShutdown出接口用于當(dāng)服務(wù)器主動(dòng)與客戶程序斷開(kāi)連接時(shí)對(duì)客戶程序進(jìn)行通知。OPC2.0服務(wù)器必
42、須支持此接口。它的實(shí)現(xiàn)與一般連接點(diǎn)對(duì)象的實(shí)現(xiàn)相同。5、IOPCItemProperties此接口用于瀏覽與ITEMID(用于標(biāo)識(shí)一個(gè)特定的項(xiàng))相關(guān)的屬性,也可讀取這些屬性當(dāng)前的值。之所以設(shè)計(jì)本接口是因?yàn)樵S多ITEMID與其它像代表工程單位范圍或?qū)ο竺枋龌驁?bào)警狀態(tài)的ITEMID相關(guān)聯(lián)。使用此接口可以方便的瀏覽、定位和讀取與特定ITEMID相關(guān)的信息,可以在不創(chuàng)建OPC組對(duì)象的情況下讀取。6、IOPCServerPublicGroups(可選)公共組對(duì)象為客戶和服務(wù)器提供了共享數(shù)據(jù)的一種機(jī)制,可被多個(gè)客戶程序訪問(wèn),它可由服務(wù)器或客戶程序創(chuàng)建。當(dāng)由客戶程序創(chuàng)建時(shí),首先創(chuàng)建私有組對(duì)象,然后通過(guò)Move
43、ToPublic轉(zhuǎn)換成公共組對(duì)象。一個(gè)客戶程序可通過(guò)CreateGroupEnumerator 枚舉可用的公共組對(duì)象,然后用GetPublicGroupByName連接到公共組對(duì)象,再通過(guò)IEnumOPCItemAttributes 檢查組對(duì)象的內(nèi)容,最后通過(guò)使用各種IOPCItemMgt函數(shù)分配客戶句柄和數(shù)據(jù)類型。GetPublicGroupByName;通過(guò)公共組對(duì)象的名字獲取指向組對(duì)象的指針,從而連接到公共組對(duì)象。RemovePublicGroup;刪除一個(gè)公共組對(duì)象。7、IOPCBrowseServerAddressSpace(可選)此接口為OPC客戶提供了一個(gè)有效訪問(wèn)OPC服務(wù)器數(shù)據(jù)
44、的方式,能夠?yàn)橛脩籼峁┫鄳?yīng)的ITEMID列表。服務(wù)器數(shù)據(jù)的地址空間可以以平面(flat)結(jié)構(gòu)或分層(hierarchical)結(jié)構(gòu)來(lái)實(shí)現(xiàn),此接口使客戶從廠商定義的ITEMID的語(yǔ)法中分離出來(lái)。8、IPersistFile (可選)這是一個(gè)標(biāo)準(zhǔn)IPersistFile接口的實(shí)現(xiàn)。此可選接口允許客戶裝載和存儲(chǔ)OPC服務(wù)器的配置,但不能存儲(chǔ)任何客戶定義的信息像組對(duì)象和項(xiàng)對(duì)象的定義。3.5.2 OPC組對(duì)象接口OPC組對(duì)象接口的行為如下8(圖3.8):1、IOPCItemMgt此接口的功能是允許客戶添加和刪除項(xiàng)對(duì)象并可控制項(xiàng)對(duì)象的行為。AddItems;向組對(duì)象中添加一個(gè)或多個(gè)項(xiàng)對(duì)象??商砑酉嗤臄?shù)據(jù)
45、項(xiàng)兩次,但每一個(gè)項(xiàng)對(duì)象的ServerHandle(項(xiàng)服務(wù)器句柄)唯一。ValidateItems;判斷數(shù)據(jù)項(xiàng)能否被合法的添加,不會(huì)對(duì)組對(duì)象造成任何影響。圖3.8 標(biāo)準(zhǔn) OPC組對(duì)象RemoveItems;從組對(duì)象中刪除項(xiàng)對(duì)象。從組對(duì)象中添加和刪除項(xiàng)對(duì)象并不影響服務(wù)器和物理設(shè)備地址空間的數(shù)據(jù)項(xiàng),它僅說(shuō)明了客戶是否關(guān)心那些數(shù)據(jù)項(xiàng)。SetActiveState;設(shè)置項(xiàng)對(duì)象的激活標(biāo)志。SetClientHandles;改變項(xiàng)對(duì)象的客戶句柄。一般來(lái)講,客戶程序在添加項(xiàng)對(duì)象時(shí)就設(shè)置了客戶句柄,在以后不會(huì)改變它。SetDatatypes;改變項(xiàng)對(duì)象要求的數(shù)據(jù)類型。CreateEnumerator;在組對(duì)象內(nèi)
46、創(chuàng)建一個(gè)可以列舉項(xiàng)對(duì)象的枚舉器。2、IOPCGroupStateMgt此接口允許客戶程序管理組對(duì)象的所有狀態(tài)。最基本的是改變組對(duì)象的更新率和活動(dòng)狀態(tài)。GetState;獲得組對(duì)象的當(dāng)前屬性狀態(tài),如更新率,激活狀態(tài),組名,時(shí)區(qū),死區(qū),語(yǔ)言標(biāo)識(shí),客戶句柄和服務(wù)器句柄等。SetState;客戶可設(shè)置組對(duì)象不同屬性的狀態(tài),可改變的屬性可從其參數(shù)知道。SetName;設(shè)置私有組對(duì)象的名稱,名字必須唯一。CloneGroup;使用唯一組名建立某一組對(duì)象的另一個(gè)副本。新的組對(duì)象為私有的。組對(duì)象和項(xiàng)對(duì)象的幾乎所有屬性被復(fù)制,但新組完全獨(dú)立于舊的組對(duì)象。3、IOPCPublicGroupStateMgt(可選)
47、此接口用于將私有組對(duì)象轉(zhuǎn)換成公共組對(duì)象,因?yàn)楫?dāng)客戶創(chuàng)建一個(gè)組對(duì)象時(shí),被初始化為私有組對(duì)象。4、IOPCSyncIO此接口允許客戶對(duì)服務(wù)器執(zhí)行同步讀寫(xiě)操作。操作將一直運(yùn)行到完成才返回。Read;同步讀取組對(duì)象內(nèi)的項(xiàng)的值、品質(zhì)和時(shí)間郵戳等信息。可以從內(nèi)存(CHCHE)中讀取,也可以從設(shè)備內(nèi)直接讀取。只有組對(duì)象和項(xiàng)對(duì)象都處于激活狀態(tài)時(shí),才可從內(nèi)存內(nèi)讀取數(shù)據(jù)。5、IOPCAsyncIO2此接口允許客戶對(duì)服務(wù)器執(zhí)行異步讀寫(xiě)操作,操作被排隊(duì)等候,函數(shù)立即返回。每項(xiàng)操作被看作一個(gè)事務(wù),并被分配一個(gè)事務(wù) ID,當(dāng)操作完成時(shí),客戶IOPCDataCallback接口的回調(diào)將執(zhí)行?;卣{(diào)中的信息指出了事務(wù) ID 和
48、操作結(jié)果。6、IConnectionPointContainer數(shù)據(jù)訪問(wèn)規(guī)范 2.0 組對(duì)象必須實(shí)現(xiàn)此接口,與服務(wù)器對(duì)象的此接口的唯一區(qū)別是管理得出接口不一樣,組對(duì)象管理的出接口是IOPCDataCallback 接口,可使客戶與服務(wù)器連接并進(jìn)行最有效的數(shù)據(jù)傳送。其接口方法的行為只是將服務(wù)器對(duì)象的IOPCShutdown接口換成IOPCDataCallback接口即可,可參考服務(wù)器對(duì)象的實(shí)現(xiàn)。7、IEnumOPCItemAttributesIEnumOPCItemAttributes 接口允許客戶找出組對(duì)象內(nèi)的項(xiàng)以及項(xiàng)的相關(guān)屬性(以項(xiàng)屬性結(jié)構(gòu)作為枚舉對(duì)象),它不是組對(duì)象實(shí)現(xiàn)的一個(gè)接口,只能通過(guò)
49、IOPCItemMgt:CreateEnumerator 方法創(chuàng)建相應(yīng)枚舉器的實(shí)例,不可通過(guò)接口查詢獲得。其接口方法與普通枚舉接口方法功能相同。8、IOPCAsyncIO (old)它是數(shù)據(jù)訪問(wèn)規(guī)范 1.0 必須實(shí)現(xiàn)的接口之一,按照程序兼容規(guī)則,符合規(guī)范 2.0的服務(wù)器也應(yīng)該實(shí)現(xiàn)規(guī)范 1.0 的必選接口。IOPCAsyncIO接口允許客戶對(duì)服務(wù)器執(zhí)行異步讀寫(xiě)操作,其行為與IOPCAsyncIO2 類似,可參考 IOPCAsyncIO2,只是操作完成后結(jié)果是由IAdviseSink的回調(diào)返回給客戶。9、IDataObject (old)OPC規(guī)范1.0需要服務(wù)器實(shí)現(xiàn)的接口,這允許使用OPC數(shù)據(jù)流
50、格式創(chuàng)建客戶與組對(duì)象之間的Advise連接,用于進(jìn)行高效的數(shù)據(jù)交換。此接口處理的是流而不是單個(gè)的項(xiàng),所以如下方法可只返回 E_NOTIMPL。3.6 OPC客戶端及其接口3.6.1 OPC客戶端概述OPC標(biāo)準(zhǔn)包括服務(wù)器和客戶端兩部分9。OPC服務(wù)端的作用是使不同的設(shè)備都能夠提供標(biāo)準(zhǔn)的符合OPC規(guī)范的接口,它一般都是由控制設(shè)備的生產(chǎn)廠商提供的。OPC客戶端一般由應(yīng)用軟件的開(kāi)發(fā)者自己開(kāi)發(fā),完成與OPC服務(wù)器數(shù)據(jù)交互等工作。由于OPC服務(wù)端和客戶端之間的接口是標(biāo)準(zhǔn)的,所以就可以開(kāi)發(fā)出通用的OPC客戶端,使不同的應(yīng)用程序訪問(wèn)同一臺(tái)設(shè)備或者使同一個(gè)應(yīng)用程序訪問(wèn)不同的設(shè)備。OPC規(guī)范的制定使不同設(shè)備之間的
51、交互遵循同樣一個(gè)標(biāo)準(zhǔn),因而可以極大地縮短工期和節(jié)約資金。3.6.2 OPC客戶端的數(shù)據(jù)來(lái)源OPC客戶端的數(shù)據(jù)來(lái)源可以分為服務(wù)器緩沖區(qū)數(shù)據(jù)(OPCCache)和設(shè)備數(shù)據(jù)(Device)。OPC服務(wù)器本身就是一個(gè)可執(zhí)行程序,該程序以設(shè)定的速率不斷地同物理設(shè)備進(jìn)行數(shù)據(jù)交互10。服務(wù)器內(nèi)有一個(gè)數(shù)據(jù)緩沖區(qū),其中存有最新的數(shù)據(jù)值、數(shù)據(jù)質(zhì)量戳和時(shí)間戳。時(shí)間戳表明服務(wù)器最近一次從設(shè)備讀取數(shù)據(jù)的時(shí)間。服務(wù)器對(duì)設(shè)備寄存器的讀取是不斷進(jìn)行的,時(shí)間戳也在不斷更新??蛻舳思瓤梢詮姆?wù)器緩沖區(qū)讀取數(shù)據(jù),也可以直接從設(shè)備讀取數(shù)據(jù),但是從設(shè)備直接讀取數(shù)據(jù)速度會(huì)慢一些,一般只用在故障診斷等特殊情況下。3.6.3 OPC客戶端接
52、口1、IOPCDataCallback為支持此連接點(diǎn),客戶必須創(chuàng)建一個(gè)既支持 IUnknown 又支持 IOPCDataCall-back的接受器對(duì)象??蛻粝蚍?wù)器IConnectionPoint的Advise方法傳遞IUnknown接口建立連接,然后服務(wù)器調(diào)用其QueryInterface 方法獲得IOPCDataCallback接口指針。接口指針可在組對(duì)象的數(shù)據(jù)變化時(shí)或 IOPCAsyncIO2接口被調(diào)用時(shí)用到。OnDataChange;當(dāng)組對(duì)象的數(shù)據(jù)改變時(shí)和Refresh方法調(diào)用時(shí)服務(wù)器調(diào)用此方法通知客戶進(jìn)行數(shù)據(jù)處理。OnReadComplete;當(dāng)IOPCAsyncIO2接口異步讀完成
53、時(shí)服務(wù)器調(diào)用此方法通知客戶進(jìn)行數(shù)據(jù)處理。OnWriteComplete;當(dāng)IOPCAsyncIO2接口異步寫(xiě)完成時(shí)服務(wù)器調(diào)用此方法通知客戶進(jìn)行數(shù)據(jù)處理。OnCancelComplete;當(dāng)IOPCAsyncIO2接口異步取消操作完成時(shí)服務(wù)器調(diào)用此方法通知客戶進(jìn)行相關(guān)處理。2、IOPCShutdown為支持此連接點(diǎn),客戶必須創(chuàng)建一個(gè)既支持IUnknown又支持IOPCShutdown的接受器對(duì)象。服務(wù)器獲得IOPCShutdown 接口指針的方法 IOPCDataCallback出接口相同。接口的ShutdownRequest方法在服務(wù)器需要切斷連接時(shí)調(diào)用,客戶應(yīng)該用UnAdvise取消所有連接
54、,移除所有組,并釋放所有接口。當(dāng)一個(gè)客戶程序與多個(gè)OPC服務(wù)器相連時(shí)應(yīng)該保存相對(duì)于每個(gè)對(duì)象的獨(dú)立的ShutdownRequest回調(diào),這樣每個(gè)服務(wù)器可以獨(dú)立的切斷服務(wù)11。4 OPC技術(shù)在冷軋清洗線中的應(yīng)用4.1工程背景及工藝4.1.1 工程背景在冷軋帶鋼的表面上附著許多軋制油,機(jī)油鐵末和灰塵等異物,清除附著在帶鋼表面這些污物是清洗線作業(yè)的目的,當(dāng)清洗不凈時(shí),退火后這些污垢成為碳化物殘留著,既有損外觀,也是后步工序產(chǎn)生事故的原因,特別是進(jìn)行表面涂、鍍層等處理的鋼板,產(chǎn)生表面層不均,往往使耐蝕性變壞。近來(lái)清洗作業(yè)為提高生產(chǎn)能力,有高速化,大型化,和自動(dòng)化的傾向。在高速下要達(dá)到清洗得干凈,這就成為
55、極大的問(wèn)題,既要有好的清洗方法,又要對(duì)帶鋼進(jìn)行有效的跟蹤。跟蹤是清洗過(guò)程計(jì)算機(jī)控制的基本功能,只有正確的跟蹤才能做到各功能程序的正確啟動(dòng)。隨著計(jì)算機(jī)在帶鋼連續(xù)生產(chǎn)線應(yīng)用的發(fā)展,帶鋼生產(chǎn)線的自動(dòng)化程度也就越來(lái)越高。同時(shí),也要求對(duì)帶鋼的帶鋼跟蹤更為精確,要在生產(chǎn)線的全程對(duì)帶鋼進(jìn)行有效地跟蹤。為設(shè)定計(jì)算提供正確的帶鋼數(shù)據(jù)以及為人機(jī)界面提供數(shù)據(jù)及畫(huà)面顯示提供操作人員及維護(hù)人員正確掌握生產(chǎn)狀態(tài)。這樣就需要有在線即時(shí)的數(shù)據(jù)存儲(chǔ)器,OPC服務(wù)器就包括這種功能,它能全天侯的對(duì)現(xiàn)場(chǎng)設(shè)備進(jìn)行即時(shí)跟蹤,將現(xiàn)場(chǎng)設(shè)備的即時(shí)數(shù)據(jù)反映在管理主機(jī)上,使工藝調(diào)整做出最快、最準(zhǔn)確的修正,實(shí)現(xiàn)了動(dòng)態(tài)管理。4.1.2 工程工藝?yán)滠埱?/p>
56、洗線是冷軋后的工藝流程,它的目的是洗去帶鋼表面的油污及乳化液。冷軋清洗線工藝分為五部分:上料段、入口段、工藝段、出口段、卸料段。冷軋清洗線工藝流程如圖4.1。上料段:入口小車將鋼卷從1#或2#鞍座位送到開(kāi)卷機(jī)上的過(guò)程,在此過(guò)程中開(kāi)卷機(jī)上的一些輔助設(shè)備配合進(jìn)行相應(yīng)的動(dòng)作;然后開(kāi)卷機(jī)與磁力皮帶反轉(zhuǎn)90度,將帶頭甩至鋼卷上方以便穿帶。入口段:從開(kāi)卷到挖邊以及到1#導(dǎo)向夾送輥的過(guò)程。首先穿帶;接著入口剪切頭;然后焊接;最后挖邊,通過(guò)挖邊機(jī)挖一個(gè)圓角,以利于帶鋼順利通過(guò)。 圖4.1 冷軋清洗線工藝流程圖工藝段:從堿洗槽入口壓輥到2#導(dǎo)向夾送輥整個(gè)清洗的過(guò)程。首先經(jīng)過(guò)堿洗槽;接著經(jīng)過(guò)電解槽,然后經(jīng)過(guò)熱水刷洗;最后進(jìn)入漂洗槽漂洗、擠干機(jī)擠干、再由烘干機(jī)烘干。出口段:從3#導(dǎo)向夾送輥到卷曲的過(guò)程。卸料段:出口小車將鋼卷從卷取機(jī)運(yùn)到1#或2#鞍座位的過(guò)程。卸卷小車把卷取機(jī)上的卷先運(yùn)至打捆位,由門(mén)型吊車把卷運(yùn)走入庫(kù)。而此時(shí),卷取機(jī)進(jìn)行下一卷的卷曲準(zhǔn)備,出口的輔助設(shè)備進(jìn)行相應(yīng)的動(dòng)作準(zhǔn)備。4.2 OPC服務(wù)器與現(xiàn)場(chǎng)設(shè)備的連接OPC服務(wù)器與現(xiàn)場(chǎng)設(shè)備的連接就是OPC服務(wù)器與PLC的連接,在軟件S7- 400中建立2級(jí)組態(tài)軟件LEVEL2,在L
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)鋁擠壓行業(yè)市場(chǎng)運(yùn)營(yíng)狀況及發(fā)展趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)金屬波紋補(bǔ)償器市場(chǎng)發(fā)展?fàn)顩r及前景趨勢(shì)分析報(bào)告
- 2025天津市安全員《B證》考試題庫(kù)及答案
- 2025-2030年中國(guó)聚對(duì)苯二甲酸丁行業(yè)投資戰(zhàn)略決策研究報(bào)告
- 2025-2030年中國(guó)紡織機(jī)械制造產(chǎn)業(yè)十三五規(guī)劃及投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國(guó)石斑魚(yú)市場(chǎng)運(yùn)行狀況與十三五規(guī)劃研究報(bào)告
- 2025-2030年中國(guó)電熱水器行業(yè)競(jìng)爭(zhēng)格局及投資戰(zhàn)略研究報(bào)告
- 2025年江西省建筑安全員A證考試題庫(kù)附答案
- 欽州幼兒師范高等專科學(xué)?!缎履茉雌嚱Y(jié)構(gòu)與原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025浙江省安全員考試題庫(kù)
- 集裝箱七點(diǎn)檢查表
- 7S管理標(biāo)準(zhǔn)目視化管理標(biāo)準(zhǔn)
- 籃球場(chǎng)改造工程投標(biāo)方案(技術(shù)方案)
- 茉莉花的生長(zhǎng)習(xí)性及栽培管理辦法
- 蛤蟆先生去看心理醫(yī)生
- 懸挑式卸料平臺(tái)安拆作業(yè)安全技術(shù)交底
- 疾病診斷編碼庫(kù)ICD-10
- 腦血管造影病人的護(hù)理-課件
- 阿里巴巴管理精髓管理者必修的24招
- 西漢-北京大學(xué)歷史學(xué)系教學(xué)課件
- DB3202-T 1026-2022 無(wú)錫市安全生產(chǎn)技術(shù)服務(wù)單位等級(jí)評(píng)定規(guī)范
評(píng)論
0/150
提交評(píng)論