【正文】
GetStatus(); //得到 Server 的信息,如:?jiǎn)?dòng)時(shí)間,上一次更新時(shí)間,組個(gè)數(shù) }。下面介紹這個(gè) 4 個(gè)重要類,具體實(shí)現(xiàn)看附錄 C, D。接著實(shí)現(xiàn) Level1 類, Level1 類即是二級(jí)控制系統(tǒng),客戶端的所有操作都通過調(diào)用 Level1 類中的成員函數(shù)來實(shí)現(xiàn) 。服務(wù)器對(duì)象中可添加組對(duì)象,組對(duì)象中可添加項(xiàng)對(duì)象。卸卷小車把卷取機(jī)上的卷先運(yùn)至打捆位,由門型吊車把卷運(yùn)走入庫(kù)。 鞍山科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 第 22 頁 冷軋清洗線控制系統(tǒng)設(shè)計(jì) —— 用 C++和 OPC 設(shè)計(jì)二級(jí)控制系統(tǒng) 圖 冷軋清洗線工藝流程圖 工藝段:從堿洗槽入口壓輥到 2導(dǎo)向夾送輥整個(gè)清洗的過程。 冷軋清洗線工藝流程如圖 。 為設(shè)定計(jì)算提供正確的帶鋼數(shù)據(jù)以及為人機(jī)界面提供數(shù)據(jù)及畫面顯示提供操作人員及維護(hù)人員正確掌握生產(chǎn)狀態(tài)。在高速下要達(dá)到清洗得干凈,這就成為極大的問題,既要有好的清洗方法,又要對(duì)帶鋼進(jìn)行有效的跟蹤。接口的 ShutdownRequest 方法在服務(wù)器需要切斷連接時(shí)調(diào)用,客戶應(yīng)該用 UnAdvise 取消所有連接,移除所有組,并釋放所有接口。 OnWriteComplete;當(dāng) IOPCAsyncIO2 接口異步寫完成時(shí)服務(wù)器調(diào)用此方法通知客戶進(jìn)行數(shù)據(jù)處理??蛻粝蚍?wù)器 IConnectionPoint 的 Advise 方法傳遞 IUnknown 接口建立連接,然后服務(wù)器調(diào)用其 QueryInterface 方法獲得 IOPCDataCallback 接口指針。時(shí)間戳表明服務(wù)器最近一次從設(shè)備讀取數(shù)據(jù)的時(shí)間。 OPC 規(guī)范的制定使不同設(shè)備之間的交互遵循同樣一個(gè)標(biāo)準(zhǔn),因而可以極大地縮短工期和節(jié)約資金。 OPC 客戶端 及其 接口 OPC 客戶 端概述 OPC 標(biāo)準(zhǔn)包括服務(wù)器和客戶端兩部分 [9]。 IOPCAsyncIO (old) 它是數(shù)據(jù)訪問規(guī)范 必須實(shí)現(xiàn)的接口之一,按照程序兼容規(guī)則,符合規(guī)范 的服務(wù)器也應(yīng)該實(shí)現(xiàn)規(guī)范 的必選接口。 IConnectionPointContainer 數(shù)據(jù)訪問規(guī)范 組對(duì)象必須實(shí)現(xiàn)此接口,與服務(wù)器對(duì)象的此接口的唯一區(qū)別是 鞍山科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 第 18 頁 冷軋清洗線控制系統(tǒng)設(shè)計(jì) —— 用 C++和 OPC 設(shè)計(jì)二級(jí)控制系統(tǒng) 管理得出接口不一樣,組對(duì)象管理的出接口是 IOPCDataCallback 接口,可使客戶與服務(wù)器連接并進(jìn)行最有效的數(shù)據(jù)傳送。只有組對(duì)象和項(xiàng)對(duì)象都處于激活狀態(tài)時(shí),才可從內(nèi)存內(nèi)讀取數(shù)據(jù)。 IOPCSyncIO 此接口允許客戶對(duì)服務(wù)器執(zhí)行同步讀寫操作。 CloneGroup;使用唯一組名建立某一組對(duì)象的另一個(gè)副本。最基本的是改變組對(duì)象的更新率和活動(dòng)狀態(tài)。一般來講,客戶程序在添加項(xiàng)對(duì)象時(shí)就設(shè)置了客戶句柄,在以后不會(huì)改變它。 圖 標(biāo)準(zhǔn) OPC 組對(duì)象 RemoveItems;從組對(duì)象中刪除項(xiàng)對(duì)象。 OPC 組對(duì)象接口 OPC 組對(duì)象接口的行為如下 [8](圖 ): IOPCItemMgt 此接口的功能是允許客戶添加和刪除項(xiàng)對(duì)象并可控制項(xiàng)對(duì)象的行為。 IOPCBrowseServerAddressSpace(可選) 此接口為 OPC 客戶提供了一個(gè)有效訪問 OPC 服務(wù)器數(shù)據(jù)的方式,能夠?yàn)橛脩籼峁┫鄳?yīng)的 ITEMID 列表。當(dāng)由客戶程序創(chuàng)建時(shí),首先創(chuàng)建私有組對(duì)象,然后通過MoveToPublic 轉(zhuǎn)換成公共組對(duì)象。 IOPCItemProperties 此接口用于瀏覽與 ITEMID(用于標(biāo)識(shí)一個(gè)特定的項(xiàng))相關(guān)的屬性,也可讀取這些屬性當(dāng)前的值。 IConnectionPointContainer 服務(wù)器對(duì)象上的此接口主要提供了相對(duì)于 IOPCShutdown 出接口連接點(diǎn)的訪問支持。但它不能用于公共組對(duì)象。 GetStatus;返回服務(wù)器對(duì)象當(dāng)前狀態(tài)信息,如服務(wù)器運(yùn)行狀態(tài),組對(duì)象的數(shù)目,版本號(hào),廠商信息,以及當(dāng)前時(shí)間和前次數(shù)據(jù)刷新時(shí)間等等。 AddGroup;創(chuàng)建一個(gè)組對(duì)象,并返回客戶請(qǐng)求的接口指針,其參數(shù)反映了組對(duì)象創(chuàng)建時(shí)的狀態(tài)。 IOPCCommon 此接口被應(yīng)用于各種類型的服務(wù)器,它們共享這個(gè)接 口設(shè)計(jì)。服務(wù)器按一定的更新周期( Update Rate)更新 OPC 服務(wù)器的數(shù)據(jù)緩沖器的數(shù)值時(shí),如果發(fā)現(xiàn)數(shù)值有變化時(shí),就會(huì)以數(shù)據(jù)變化事件( Data Change)通知 OPC 鞍山科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 第 14 頁 冷軋清洗線控制系統(tǒng)設(shè)計(jì) —— 用 C++和 OPC 設(shè)計(jì)二級(jí)控制系統(tǒng) 圖 訂閱方式數(shù)據(jù)采集 應(yīng)用程序。 OPC 應(yīng)用程序隨后可以進(jìn)行其他處理。 OPC 體系結(jié)構(gòu)是客戶 /服務(wù)器模式, OPC 服務(wù)器組件提供 OPC 對(duì)象接口并管理這些接口。其中,數(shù)據(jù)的組織結(jié)構(gòu)和數(shù)據(jù)源屬性與具體數(shù)據(jù)源有關(guān),需要從用戶處獲取信息。在 OPC 規(guī)范中,使用項(xiàng)對(duì)象描述實(shí)時(shí)數(shù)據(jù)。 OPC 數(shù)據(jù)訪問服務(wù)器所定義的三個(gè)對(duì)象中只有兩個(gè)標(biāo)準(zhǔn)的 COM 對(duì)象,即 OPC Server 和 OPC Group 對(duì)象。一組也可以提供一種方法允許客戶 “ 訂閱 (Subscription)” 項(xiàng)目列表,以便在數(shù)據(jù)項(xiàng)變化時(shí)它能得到通知。 OPC 組對(duì)象可以增加或刪除 OPC 項(xiàng)對(duì)象,OPC 項(xiàng)對(duì)象包含在 OPC 組對(duì)象中,一個(gè)組對(duì)象可以 包含多個(gè)項(xiàng)對(duì)象,同樣由客戶端定義和維護(hù)。其 OPC 客戶與 OPC 服務(wù)器的關(guān)系見圖 , 這是 COM 中典型的客戶 /服務(wù) 器模型。 OPC 數(shù)據(jù)訪問規(guī)范 OPC 規(guī)范定義了兩套接口標(biāo)準(zhǔn),包括自動(dòng)化標(biāo)準(zhǔn) (Automation Interface Standard)和自定義接口標(biāo)準(zhǔn) (Custom Interface Standard)。不必開發(fā)特別的接口,使得 圖 利用 COM 和分布式 COM 達(dá)成的組件間的互相連接 設(shè)備接口的開發(fā)更為簡(jiǎn)單易行。這樣的工業(yè)標(biāo)準(zhǔn)的提供,乃是 OPC 的目的所在。 作為 COM 技術(shù)擴(kuò)展的分布式 COM( Distributed Component Object Model, 分布式 COM)技術(shù),更可以使 COM 組件分布在不同的計(jì)算機(jī)上,并通過網(wǎng)絡(luò)互相連接并互相交換數(shù)據(jù)。 COM 是一種軟件組件間相互數(shù)據(jù)交換的有效方法。 3 OPC技術(shù) 介紹 COM技術(shù)的 OPC OPC 是以 OLE/COM 機(jī)制作為應(yīng)用程序的通訊標(biāo)準(zhǔn)。對(duì)于客戶程序而言,組件程序所處的位置是透明 的,我們不必編寫任何處理遠(yuǎn)程調(diào)用的代碼,因此, DCOM 也是 COM 的無縫擴(kuò)展。 IUnknown 引入了 “ 引用計(jì)數(shù) ” 方法,可以有效地控制對(duì)象的 生存周期。并且 COM 對(duì)象的重用是動(dòng)態(tài)的,即被包容或被聚合對(duì)象的版本更新或功能增強(qiáng)后,包容或聚合對(duì)象根本不需要重新編譯或者重新設(shè)置。 類似于 C++語言中類( Class)的概念, COM 對(duì)象也包含屬性(也稱狀態(tài))和方法(也稱操作),對(duì)象的狀態(tài)反映了對(duì)象的存在,也是區(qū)別于其它對(duì)象的要素;而對(duì)象所提供的方法就是對(duì)象提供給外界的接口,客戶必須通過接口才能獲得對(duì)象的服務(wù)。 Events 數(shù)據(jù)訪問標(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ù)訪問標(biāo)準(zhǔn) OPC Security OPC XMLDA 安全性標(biāo)準(zhǔn) XML 數(shù)據(jù)訪問標(biāo)準(zhǔn) OPC Commands 命令標(biāo)準(zhǔn) OPC Complex Data 復(fù)雜數(shù)據(jù)訪問標(biāo)準(zhǔn) 鞍山科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 第 6 頁 冷軋清洗線控制系統(tǒng)設(shè)計(jì) —— 用 C++和 OPC 設(shè)計(jì)二級(jí)控制系統(tǒng) 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)境。 OPC 的現(xiàn)狀和發(fā)展 OPC 技術(shù)的發(fā)展,源于 OPC 基金會(huì)及其 300多家公司成員的共同努力。 OPC 技術(shù)是 OPC 基金會(huì)組織制定的工業(yè)控制軟件互操作性規(guī)范,也是微軟為了把WINDOWS 應(yīng)用于控制系統(tǒng)和控制界共同推出的一項(xiàng)技術(shù)。 OPC 規(guī)范定義了一個(gè)工業(yè)標(biāo)準(zhǔn)接口,這個(gè)標(biāo)準(zhǔn)使得 COM 技術(shù)適用于過程控制和制造自動(dòng)化等應(yīng)用領(lǐng)域。該基金會(huì)的會(huì)員單位在世界范圍內(nèi)超過 220個(gè),包括了世界上幾乎全部的控制系統(tǒng)、儀器儀表和過程控制系統(tǒng)的主要供應(yīng)商。這樣可以靈活而有效地在應(yīng)用和過程控制設(shè)備之間讀寫數(shù)據(jù)。 基于 OPC 標(biāo)準(zhǔn)的數(shù)據(jù)訪問方式如圖 。 鞍山科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 第 3 頁 冷軋清洗線控制系統(tǒng)設(shè)計(jì) —— 用 C++和 OPC 設(shè)計(jì)二級(jí)控制系統(tǒng) 圖 傳統(tǒng)控制系統(tǒng)結(jié)構(gòu) 為了解決上述問題,硬件制造商 們一直試圖開發(fā)出一種可以被任何客戶使用的超級(jí)“ I/O 驅(qū)動(dòng) ” 程序。 為了有效地完成信息集成,關(guān)鍵是制訂一種集中于數(shù) 據(jù)訪問而不是數(shù)據(jù)類型的開放的、有效的通信標(biāo)準(zhǔn)。所有這些信息必須以一致的方式提供給客戶應(yīng)用程序。但由于系統(tǒng)各個(gè)計(jì)算機(jī)的通信協(xié)議依賴于某個(gè)廠家,沒有形成統(tǒng)一的標(biāo)準(zhǔn),不同廠家之間的軟件與硬件的集成難于實(shí)現(xiàn)。隨著計(jì)算機(jī)軟件的發(fā)展,這種情況有所改觀,高級(jí)語言中庫(kù)函數(shù)的采用,實(shí)現(xiàn)了一定程度上資源的共享,尤其是面向?qū)ο蟮姆椒ǖ膽?yīng)用,使得我們可以利用面向?qū)ο蟮睦^承等方法大量重用源代碼。采用可重復(fù)使用的軟件組件以及利用這些軟件組件所具有的柔性構(gòu)成整個(gè)系統(tǒng),成為發(fā)展的必然趨勢(shì),因而通信接口不兼容的問題急需解決。不同廠家的產(chǎn)品之間接口的復(fù)雜性限制了用戶的選擇,不能根據(jù)系統(tǒng)的要求選擇最佳的系統(tǒng)集成方案。 關(guān)鍵詞 : OPC, 組件對(duì)象模型 , 客戶端 鞍山科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 第 II 頁 冷軋清洗線控制系統(tǒng)設(shè)計(jì) —— 用 C++和 OPC 設(shè)計(jì)二級(jí)控制系統(tǒng) Cold Rolling Cleaning Line Control System Design ——Design Second Level Control System with C++ and OPC Abstract There 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 eme