【正文】
同時(shí),為一種語(yǔ)言開(kāi)發(fā)的類庫(kù)以及函數(shù)庫(kù)都不能夠?yàn)槠渌Z(yǔ)言所用,也大大限制了軟件的重用。隨著計(jì)算機(jī)軟件的發(fā)展,這種情況有所改觀,高級(jí)語(yǔ)言中庫(kù)函數(shù)的采用,實(shí)現(xiàn)了一定程度上資源的共享,尤其是面向?qū)ο蟮姆椒ǖ膽?yīng)用,使得我們可以利用面向?qū)ο蟮睦^承等方法大量重用源代碼。當(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)用軟件順利集成。采用可重復(fù)使用的軟件組件以及利用這些軟件組件所具有的柔性構(gòu)成整個(gè)系統(tǒng),成為發(fā)展的必然趨勢(shì),因而通信接口不兼容的問(wèn)題急需解決。無(wú)論項(xiàng)目是否涉及到操作、可視化、數(shù)據(jù)存檔或控制,向純粹的、基于 PC的軟件解決方案的發(fā)展趨勢(shì)是不可阻擋的。不同廠家的產(chǎn)品之間接口的復(fù)雜性限制了用戶的選擇,不能根據(jù)系統(tǒng)的要求選擇最佳的系統(tǒng)集成方案。不同廠家的產(chǎn)品如果要集成在一起,必須為它們開(kāi)發(fā)專用的接口。關(guān)鍵詞:OPC,組件對(duì)象模型,客戶端Cold Rolling Cleaning Line Control System Design——Design 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 puters with different hardware and software, people must develop respective munication 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 current the industry control system. OPC (OLE for Process Control, used in process control OLE) technique’s 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, 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 automation. 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 munication between 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 side 目 錄摘 要 IAbstract II1 緒 論 1 研究背景 1 OPC的基礎(chǔ)知識(shí) 1 OPC產(chǎn)生的背景 1 OPC的歷史 3 OPC的現(xiàn)狀和發(fā)展 42 OPC技術(shù)的基礎(chǔ)—COM技術(shù) 6 COM技術(shù)簡(jiǎn)介 6 COM概念 6 COM對(duì)象 6 COM接口——IUnknown 接口 6 COM擴(kuò)展——分布式 COM(DCOM) 73 OPC技術(shù)介紹 8 8 OPC數(shù)據(jù)訪問(wèn)規(guī)范 9 OPC 數(shù)據(jù)訪問(wèn)服務(wù)器的對(duì)象 9 OPC數(shù)據(jù)訪問(wèn)方法 11 OPC服務(wù)器對(duì)象及其組對(duì)象接口 13 OPC服務(wù)器接口 13 OPC組對(duì)象接口 15 OPC客戶端及其接口 18 OPC 客戶端概述 18 OPC 客戶端的數(shù)據(jù)來(lái)源 18 OPC客戶端接口 184 OPC技術(shù)在冷軋清洗線中的應(yīng)用 20 20 工程背景 20 工程工藝 20 OPC服務(wù)器與現(xiàn)場(chǎng)設(shè)備的連接 21 OPC服務(wù)器與客戶端的連接 22 OPC服務(wù)器客戶端程序的主線程 26總 結(jié) 28致 謝 29參考文獻(xiàn) 30附 錄A (OPC——the standard for real time munication) 31附 錄B (OPC——實(shí)時(shí)通信標(biāo)準(zhǔn)) 35附 錄C 38附 錄D 47附 錄E 55冷軋清洗線控制系統(tǒng)設(shè)計(jì) —— 用C++和OPC設(shè)計(jì)二級(jí)控制系統(tǒng)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)。然后重點(diǎn)介紹了 OPC數(shù)據(jù)訪問(wèn)規(guī)范及訪問(wèn)方法,OPC服務(wù)器對(duì)象和客戶端對(duì)象接口及OPC客戶端與服務(wù)器的通信。 OPC是過(guò)程控制工業(yè)中的新興標(biāo)準(zhǔn),基于Microsoft的COM/DCOM技術(shù),它包括一整套用于過(guò)程控制自動(dòng)化接口和方法的標(biāo)準(zhǔn)集。OPC(OLE for Process Control,用于過(guò)程控制的 OLE)技術(shù)的出現(xiàn)提供了解決方法。 鞍山科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 第 62 頁(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使不同供應(yīng)廠商的設(shè)備和應(yīng)用程序之間可以相互間數(shù)據(jù)交換,把硬件供應(yīng)商和軟件開(kāi)發(fā)商分離開(kāi)來(lái),在設(shè)備和數(shù)據(jù)庫(kù)等數(shù)據(jù)源和客戶之間架起一座橋梁。本文介紹了OPC技術(shù)產(chǎn)生的背景,以及它的主要特點(diǎn)與發(fā)展?fàn)顩r,并剖析了其核心COM/DCOM技術(shù)。最后介紹OPC技術(shù)在冷軋清洗線中的應(yīng)用,OPC服務(wù)器與現(xiàn)場(chǎng)設(shè)備和客戶端的連接。但是目前工業(yè)自動(dòng)化系統(tǒng)絕大多數(shù)是封閉的系統(tǒng),缺乏統(tǒng)一、標(biāo)準(zhǔn)的開(kāi)放式接口。隨著工業(yè)自動(dòng)化系統(tǒng)功能要求越來(lái)越復(fù)雜,完全用一個(gè)廠家的產(chǎn)品來(lái)構(gòu)成整個(gè)系統(tǒng)是很困難的。同時(shí),軟件在自動(dòng)化領(lǐng)域內(nèi)使用的重要性與日俱增。這些軟件解決方案不再是開(kāi)發(fā)單個(gè)的模塊,而是由專用的軟件組件組成。OPC(OLE for Process Control,用于過(guò)程控制的OLE)技術(shù)的出現(xiàn)提供了解決方法。 OPC的基礎(chǔ)知識(shí) 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)。但這些重用只是對(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í)時(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)用。因此也沒(méi)有真正實(shí)現(xiàn)不同廠家的軟件共享?,F(xiàn)場(chǎng)控制層:智能現(xiàn)場(chǎng)設(shè)備的出現(xiàn),可以提供過(guò)去不能提供的大量豐富的有關(guān)此現(xiàn)場(chǎng)設(shè)備的信息。過(guò)程管理層:DCS(集散控制系統(tǒng))和SCADA必須以統(tǒng)一的方式為操作員和工程師等決策者提供數(shù)據(jù)。而向客戶應(yīng)用程序以統(tǒng)一的方式提供信息,可最小化企業(yè)在信息綜合上的精力。定義OPC的目的就是為應(yīng)用程序訪問(wèn)工廠前臺(tái)提供共同的方法,允許兼容的應(yīng)用程序無(wú)縫的訪問(wèn)生產(chǎn)環(huán)境中的數(shù)據(jù)。任何一種HMI(Human Machine Interface,人機(jī)接口)等上位監(jiān)控軟件或其它應(yīng)用軟件(如趨勢(shì)圖軟件、數(shù)據(jù)報(bào)表與分析等)在使用某種硬件設(shè)備時(shí)都需要開(kāi)發(fā)專用的驅(qū)動(dòng)程序,[1]。但是由于客戶協(xié)議的不一致,這項(xiàng)工作至今沒(méi)有取得成功,OPC和現(xiàn)場(chǎng)總線標(biāo)準(zhǔn)的制定正好為上述問(wèn)題的解決開(kāi)辟了新的道路。由于硬件開(kāi)發(fā)商對(duì)自己的硬件特征了如指掌,從而能夠最大限度地挖掘硬件的潛力,提高驅(qū)動(dòng)程序的性能。采用OPC標(biāo)準(zhǔn)后,由硬件開(kāi)發(fā)商提供統(tǒng)一的OPC接口程序,從而避免了開(kāi)發(fā)重復(fù)性,使開(kāi)發(fā)費(fèi)用大大降低。硬件供應(yīng)商無(wú)需考慮應(yīng)用程序的多種需求和傳輸協(xié)議,軟件開(kāi)發(fā)商也無(wú)需了解硬件的實(shí)質(zhì)和操作過(guò)程。 采用OPC后控制系統(tǒng)結(jié)構(gòu) OPC的歷史OPC (OLE for Process Control——用于過(guò)程控制的 OLE)是一個(gè)工業(yè)標(biāo)準(zhǔn),它是許多世界領(lǐng)先的自動(dòng)化和軟、硬件公司與微軟公司合作的結(jié)晶。管理該標(biāo)準(zhǔn)的組織是OPC基金會(huì)。OPC基金會(huì)的先驅(qū)(由 FisherRosemount、Rockwell 軟件公司、Opto 2Intellution和IntuitiveTechnology公司組成的“特別工作組”)在經(jīng)過(guò)一年工作后,開(kāi)發(fā)出一個(gè)基本的、可運(yùn)行的OPC規(guī)范。OPC是基于Microsoft公司的DistributedinterNetApplication(DNA)構(gòu)架和 Component Object Model(COM)技術(shù)的,根據(jù)易于擴(kuò)展性而設(shè)計(jì)的。OPC是以O(shè)LE/COM機(jī)制作為應(yīng)用程序的通訊標(biāo)準(zhǔn)。OPC規(guī)范了接口函數(shù),不管現(xiàn)場(chǎng)設(shè)備以何種形式存在,客戶都以統(tǒng)一的方式去訪問(wèn),從而保證軟件對(duì)客戶的透明性,使得用戶完全從底層的開(kāi)發(fā)中脫離出來(lái)[2]。它以微軟的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)用不應(yīng)該局限于應(yīng)用程序與現(xiàn)場(chǎng)設(shè)備的接口,應(yīng)該認(rèn)為它是一種Windows應(yīng)用程序相互交換數(shù)據(jù)的通用規(guī)范。世界領(lǐng)先的工業(yè)自動(dòng)化軟硬件廠商,作為OPC基金會(huì)的成員,為OPC技術(shù)的發(fā)展做出著重要的貢獻(xiàn)。 Events數(shù)據(jù)訪問(wèn)標(biāo)準(zhǔn)報(bào)警和事件標(biāo)準(zhǔn)OPC Batch批處理標(biāo)準(zhǔn)OPC Data Exchange服務(wù)器間數(shù)據(jù)交換標(biāo)準(zhǔn)OPC Historical Data Access歷史數(shù)據(jù)訪問(wèn)標(biāo)準(zhǔn)OPC SecurityOPC XMLDA安全性標(biāo)準(zhǔn)XML數(shù)據(jù)訪問(wèn)標(biāo)準(zhǔn)OPC Commands命令標(biāo)準(zhǔn)OPC Complex Data復(fù)雜數(shù)據(jù)訪問(wèn)標(biāo)準(zhǔn) 2 OPC技術(shù)的基礎(chǔ)—COM技術(shù) COM技術(shù)簡(jiǎn)介 COM概念COM(Component Object Model,組件對(duì)象模型)是由Microsoft提出的組件標(biāo)準(zhǔn),是OLE、ActiveX、DCOM技術(shù)的基礎(chǔ),它不僅定義了組件程序之間進(jìn)行交互的標(biāo)準(zhǔn),并且也提供了組件程序運(yùn)行所需的環(huán)境。 COM對(duì)象COM提供的是面向?qū)ο蟮慕M件模型,COM組件提供給客戶的是以對(duì)象形式封裝起來(lái)的實(shí)體。類似于C++語(yǔ)言中類(Class)的概念,COM對(duì)象也包含屬性(也稱狀態(tài))和方法(也稱操作),對(duì)象的狀態(tài)反映了對(duì)象的存在,也是區(qū)別于其它對(duì)象的要素;而對(duì)象所提供的方法就是對(duì)象提供給外界的接口,客戶必須通過(guò)接口才能獲得對(duì)象的服務(wù)。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)的,這一特性使用