freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

畢業(yè)設計-opcda客戶端的研究-資料下載頁

2024-12-03 20:01本頁面

【導讀】現控制系統(tǒng)開放性的中間件技術。OPC技術采用Client/Server模式,規(guī)定了OPCClient與OPCServer之間遵循標準。OPC服務端一般由控制設備的生產廠商,將硬件設備驅動程序和通信程序封裝。成獨立的OPC服務器,向OPC客戶端實時地提供數據。據的靈活配置和多種系統(tǒng)的真正集成。了其核心COM/DCOM技術。然后重點分析了OPC數據訪問規(guī)范及OPC客戶端與服務。器的通信機制,介紹了如何用VC++開發(fā)客戶端程序。

  

【正文】 Windows 系統(tǒng)提供實用工具 對其進行注冊,只要進程內組件提供了相應的入口函數 DllRegisterServer和 DllUnRegisterServer 就可完成對組件的注冊與注銷工作。 進程外組件是一個可執(zhí)行程序,它不能提供入口函數供其它程序調用,因此 COM規(guī)范規(guī)定支持自注冊的進程外組件必須支持兩個命令行參數 /RegServer 和 /UnregServer以便完成注冊和注銷工作。 對于非自注冊的組件程序 其注冊過程與組件程序本身沒有直接關系,必須單獨進行注冊信息的配置,如可編寫一個注冊表文件,然后在 RegEdit 中引入。 類廠 因為 COM 對象可以位于客戶程序進程空間之外,并且必須要能被不同的語言訪問,所以我們需要一種與語言無關的方法來實例化一個組件。 COM 提供了一個標準接口IClassFactory-類廠,該接口是一個特殊的、必須實現的構造器組件,客戶使用它才能創(chuàng)建自己的組件實例。 類廠本身也是一個 COM 對象,它的唯一功能是簡化其它 COM 對象的創(chuàng)建方法。對應每一個 COM 類,都有一個專門類廠用于該 COM 類的對象創(chuàng)建操作。類廠的創(chuàng)建工作是由 COM 庫來完成,但組件程序必須提供 DllGetClassObject 引出函數。 COM 庫在接到對象創(chuàng)建指令后,它調用進程內組件的 DllGetClassObject 函數,由該函數創(chuàng)建類廠對象,并返回類廠對象接口指針,繼而可創(chuàng)建相應的 COM 對象。 COM 擴展 可連接對象 在客戶與組件程序的交互過程中,如果客戶是主動的,而組件是被動的,通過自身暴露給客戶的接口監(jiān)聽客戶的請求,一旦組件接收到客戶的請求便作出反應,我們把這樣的接口稱為入接口( ininginterface);與之對應,如果組件對象要主動與客戶進行通信,對象也可提供出接口( outgoinginterface)來實現。出接口不由對象來實現,而是**大學學士學位論文 17 由客戶程序來實現,客戶實現這些接口,并把接口指針告訴對象,以后對象利用此接口指針與客戶進行通信。在客戶程序方,實現這些出接口的對象被稱為接受器( sink),接受器本身也是一個 COM 對象,但它往往比較簡單,只用于監(jiān)聽并處理組件對象的通知或請求。注意入接口和出接口是一個相對的概念,它們只用于通信的一個方向。 如果一個 COM 對象支持一個或多個出接口,則我們稱這樣的 對象為可連接對象( connectableobject),有時也稱為源對象( source)??蛻襞c可連接對象之間的通信是雙向的。客戶、可連接對象和接受器之間的關系可由圖 簡單描述。 圖 簡單客戶與可連接對象的模型圖 客戶方除了要實現接收器對象之外,還必須建立接收器與連接點對象之間的連接關系。接收器對象是客戶程序的內部對象,它不必通過類廠創(chuàng)建,也不需要 CLSID。其連接關系的建立由客戶方控制,客戶首先詢問對象是否為可連接對象,它只需調用對象的QueryInterface 成員函數請求 IConnectionPointContainer 接口,如果請求成功,則表明為可連接對象,并返回 IConnectionPointContainer 接口指針。客戶得到了 IConnectionPointC ontainer 接口指針后,調用其成員函數獲取相應出接 口的連接點對象,如果對象支持此接口,則可得到連接點對象,然后調用連接點對象的 IConnectionPoint 接口的成員函數建立連接。一旦建立了連接,當可連接對象激發(fā)事件或發(fā)出請求時,接收器的成員函數就會被調用。 分布式 COM( DCOM) DCOM 是 COM 的擴展, 它可以支持不同計算機上組件對象與客戶程序之間或者組件對象之間的相互通信,這些計算機可以在局域網、廣域網、甚至 Inter 進行連接。對于客戶程序而言,組件程序所處的位置是透明的,我們不必編寫任何處理遠程調用的代碼,因此, DCOM 也是 COM 的無縫擴展。由于 COM 是一項應用廣泛、成熟的組件**大學學士學位論文 18 技術,所以我們可以充分利用基于 COM 的應用、組件、開發(fā)工具以及知識,并把它們轉移到分布式計算的應用領域中來。 DCOM 協(xié)議也被稱為 ORPC( object remote procedure call),它建立在 DCERPC 協(xié) 議的基礎上,可用于各種基于組件的分布式系統(tǒng)。 ORPC 建立了一套面向對象的遠程調用規(guī)范,指定了如何在網絡上進行調用、對對象的引用如何表示和如何維護。 ORPC同時也適用于 Inter和 Intra網絡環(huán)境中組件之間的通信。典型的分布式應用系統(tǒng)是,在各個服務器上運行一些 DCOM 組件對象,客戶程序調用這些組件對象,由它們完成實際的功能操作,比如訪問數據庫或進行一些復雜的數據處理,客戶程序只負責接受用戶的輸入并把服務器的響應結果反饋給用戶。 自動化對象 自動化( Automation)是一項基于 COM 的技術,一方面,自動化繼承了 COM 的很多優(yōu)點,比如語言無關、進程透明等特性,另一方面,自動化簡化了 COM 的一些底層細節(jié),比如屬性和方法的處理、一組專門用于自動化的數據類型等,它為一些弱類型的高級語言(如 Visual Basic)提供了一種相互通信的路徑。 自動化的核心是 IDispatch 接口,每一個自動化對象都必須實現 IDispatch 接口。自動化對象的兩個基本特征是方法( method)和屬性( property),方法指自動化對象所提供的功能服務,屬性是指自動化對象的數據特征。客戶可通過 IDispatch 接 口的成員函數 GetTypeInfoCount 和 GetTypeInfo 處理對象的類型信息, GetIDsOfNames 成員函數返回方法或屬性成員及其參數名字的 DIPID(分發(fā) ID,一個整數, 0 或負數有特殊含義,IDispatch 用分發(fā) ID 管理屬性和方法)。 IDispatch 接口的 Invoke 函數是個關鍵函數,客戶程序必須通過 Invoke 函數才能訪問屬性或方法,可以說 Invoke 函數是自動化對象的命令翻譯器,它還提供了管理屬性和方法的分發(fā) ID 機制以及一套描述參數和返回值的方法,使得運行時可動態(tài)綁定屬性和方法并進行 參數類型檢查成為可能。雖然 IDispatch接口的運行效率比直接通過 Vtable 進行調用要低一些,但其強大的功能以及靈活性足以彌補效率上的不足。 本章 小結 本章主要對 OPC 技術的基礎- COM/DCOM 技術進行了比較系統(tǒng)的分析,介紹了COM 的概念, COM 的對象和接口, COM 的結構, COM 的實現,以及連接點、 DCOM**大學學士學位論文 19 和自動化的一些知識。對 COM/DCOM 技術的理解是對 OPC 技術理解的關鍵所在,更是 OPC 應用程序開發(fā)所必須掌握的知識。當然,本章對 COM 知識的介紹并不全面,如結構化存儲技術,命名和綁定技術,統(tǒng) 一數據傳輸技術,以及 COM+等等沒有介紹,但這并不妨礙我們對 OPC 技術的理解。 OPC 技術還有著它本身的獨特性,理解了 COM技術只是理解 OPC 技術的第一步,我們還應對 OPC 規(guī)范進行剖析,才能完成 OPC 應用程序的設計。 **大學學士學位論文 20 3 OPC 數據訪問規(guī)范的研究 OPC 規(guī)范簡介 OPC 規(guī)范由世界領先的自動化設備制造商與微軟協(xié)商制定,它把硬件供應商和軟件開發(fā)商分離開來,在設備、數據庫等數據源和客戶之間架起一座橋梁,為解決統(tǒng)一標準問題提供了方案。 OPC 規(guī)范定義了特定的 COM 接口,但是并沒有說明如何實現這些接口,它規(guī)定服務器提供給客戶應用程序的接口所應該具有的行為特征,而把實現方法交給 OPC 服務器提供者來制定。目前已經推出的 OPC 規(guī)范有: (1)OPC 數據訪問 (Data Access)規(guī)范 、 、 ; (2)OPC 報警與事件 (Alarm and Events)規(guī)范 、 、 ; (3)OPC 歷史數據訪問 (Historical Data Access)規(guī)范 、 ; (4)OPC 批處理 (Batch)規(guī)范 、 ; (5)OPC 安全性 (Security)規(guī)范 ; (6)OPC 過程數據的 XML( XML DA)規(guī)范 ; (7)OPC 服務器數據交換 (Data eXchange)規(guī)范 ; (8)OPC 數據訪問標準的測試工具( 。 盡管 OPC 技術在不斷發(fā)展,但是層層剖析,可以看到 OPC 規(guī)范建立的核心是數據訪問 (OPC DA) 規(guī)范,它提供給用戶訪問實時過程數據的方法。對高度敏感的實時數據分離,可以得到報警 /事件概念,制定報警 /事件規(guī)范;對面向趨勢顯示、歷史分析、報表的 數據, OPC 制定了歷史數據訪問規(guī)范。所以對于開發(fā)者來說, OPC DA 是實現的重點,其它都是在 OPC DA 的基礎上添加接口或外加包文件而成。而且在實際項目中, OPC DA 應用場合最廣泛,也正是基于此,本課題最終的著眼點放在 OPC DA 客戶端的實現上,并建立一個穩(wěn)定的基礎架構,為其它應用的擴展打下良好的基礎。 OPC 數據訪問規(guī)范基礎 OPC 數據訪問規(guī)范分為自動化接口規(guī)范和定制接口規(guī)范兩部分,它們分別為不同的編程語言環(huán)境提供訪問機制。自動化接口( Automation interface) 是為基于腳本編程語言而定義的標準接口,可以使用 Visual Basic、 Delphi、 PowerBuilder 等編程語言開發(fā) OPC 服務器的客戶應用,實現方法簡單,但速度慢,功能少。定 制接口( Custom interface)是專門為 C++等高級編程語言而制定的標準接口,實現方法復雜,但速度快,通過該接**大學學士學位論文 21 口能夠發(fā)揮 OPC 服務器的最佳性能。 本論文只研究 OPC 數據存取定制接口規(guī)范 (依據 版 ),因為定制接口是 OPC服務器必須實現的部分,而自動化接口是其可選實現部分,可通過 OPC 基金會提供 的標準的自動化接口包對定制接口包裝獲得,此接口包可以被用于任何廠商定義的的服務器定制接口。典型的 OPC 數據訪問規(guī)范體系結構如圖 所示。 圖 典型的 OPC 體系結構 OPC 數據訪問規(guī)范描述了由 OPC 服務器實現的 OPC COM 對象及相應接口。 OPC邏輯對象模型包括三類對象:服務器 (Server)對象、組 (Group)對象、數據項 (Item)對象,每類對象都包括一系列接口。服務器對象用于指出特定的 OPC 服務器應用程序名,并向 OPC 客戶端提供創(chuàng)建和操作 OPC 組對象的功能。組 對象存儲由若干 Item 組成的 Group 信息并邏輯組織數據項,一組可以作為一個單元被激活或失活。一組也可以提供一種方法允許客戶“訂閱 (Subscription)”項目列表,以便在數據項變化時它能得到通知;數據項對象存儲具體的 Item 的定義、數據值、狀態(tài)值及與硬件相關的屬性,例如設備號、廠家信息、通道號等。一個 Item 就代表一個具體的過程變量。每個數據項的數據結構包括三個成員變量:即數據值、數據質量和時間戳。數據值是以 VARIANT 形式表示的。通過定義數據項, OPC 技術盡可能地隱藏了設備的特 殊信息,也使 OPC 服務器的通用性大大增強。 OPC 數據存取服務器所定義的三個對象中只有兩個標準的 COM 對象,即服務器和組對象。 OPC 數據項并不提供對外接口,客戶不能直接對之進行操作,所有對數據項的操作都是通過組對象來進行。 OPC 數據訪問規(guī)范指出一個 OPC 客戶程序可以連接到一個或多個由不同廠家提供的 OPC 服務器程序,而多個 OPC 客戶程序也可以連接到一個 OPC 服務器程序上,服務器所要訪問的設備、數據源、數據名及服務器程序如何進行數據的訪問由廠商**大學學士學位論文 22 提供的代碼決定。其 OPC 客戶與 OPC 服務器的關系見圖 ,這是 COM 中典型的客戶 /服務器模型。 圖 OPC 客戶與 OPC 服務器的關系 OPC 數據訪問對象與接口 OPC 數據訪問規(guī)范規(guī)定 OPC 服務器必須實現兩個 COM 對象:服務器對象和組對象。通過對這兩種標準的 COM 對象及相應接口的操作,我們可以完成 OPC 數據訪問客戶端的開發(fā)。圖 和圖 分別是 OPC 數據訪問規(guī)范 版本服務器對象和組對象的接口 (帶 *的為 新增的接口) 。 圖 OPC 服務器對象必選接口 **大學學士學位論文 23 圖 OPC 組對象必選接口 OPC 服務 器對象是客戶端與服務器交互的首要對象。客戶端通過訪問服務器對象的接口函數與之交互。一個服務器對象里可以設置一個以上的組對象。 OPC 服務器對象的主要功能為:創(chuàng)建和管理組對象;管理服務器內部的狀態(tài)信息;將服務器的錯誤代碼翻譯成描述性語句;瀏覽服務器內部的數據組織結構;同步讀寫數據等。 組對象用于組織管理服務器內部的實時數據信息,它是 OPC 項對象的集合。正因為有了組對象, OPC 應用程序就可以成批地對所需要的數據進行訪問,也可以以組為單位啟動或停止數據訪問。其主要功能為:管理組對象內部的狀態(tài)信息;創(chuàng)建和管理項對象; 進行數據訪問 (同步與異步方式 )。 OPC 服務器對象及其接口 OPC 服務器對象是 OPC 服務器向外暴露的基本對象,在 版本中,服務器對象主要定義了 5 個接口。下面簡單的說明一下 OPC 數據訪問 版本規(guī)范中定義的服務器對象每個接口的功能: 1. IOPCServer 這是 OPC 服務器對象的主接口,它可完成組對象的動態(tài)創(chuàng)建以及對其進行管理,以及管理服務器內部的狀態(tài)信息。服務器對象必須提供此接口。 其他 OPC 服務器像報警和事件服務器共享這個接口設計。它提供設置和查詢**大學學士學位論文 24 LocaleID 的功能,對特定的 client/server 交互有效,也就是說,一個客戶的行為不會影響其他客戶。 這是 版本新增的接口,為瀏覽服務器地址空間和獲得項屬性提供改進的方法。該接口里的方法原意是用來影射 XML- DA 接口里相應的方法。 此接口提供了相對于 IOPCShutdown 出接口連接點的訪問支持。 這是 版本新增的接口,目的是為簡單的應用程序訪問 OPC 數據提供一個非常容易的途徑,即不用通過建 立一個組對象就能對數據項進行操作;另外一個目的是,提供一個把時間郵戳和品質信息寫進支持該功能的服務器的方法。 OPC 組對象及其接口 OPC 組對象是 OPC 服務器用來管理項集合的對象,具有某些一般的屬性和行為,可影響接口和方法的操作,在介紹組對象的接口功能前,先看一下組對象的相關屬性。 每一個組對象擁有一個名字 , 在同屬于一個客戶程序的其它組對象中該名字是唯一的。客戶程序可以改變一個組的名字。組名字大小寫敏感,如 Groupl 與 groupl 是不同的。 (Cached)數據 組對象的許多 接口方法允許客戶明確說明其操作的數據源,“緩存 (CACHE)”或“設備 (DEVICE)。數據源不同,方法的行為也不同,其實現細節(jié)由開發(fā)者決定。多數情況下 , 服務器訪問緩存要快于訪問設備,但緩存數據受組對象和項對象激活狀態(tài)的影響,而設備數據不受此激活狀態(tài)的影響。 (Active) 組對象和其內部的項對象都有一個激活標志。組對象的激活狀態(tài)和項對象的激活狀態(tài)相互獨立。組對象狀態(tài)的改變不會改變項對象的狀態(tài)。 在實際中,多數服務器將使用這個標志來最優(yōu)化通信和 CPU 資源。非激活狀態(tài)的項對象和組對象不必要在緩 存內保持。 **大學學士學位論文 25 客戶程序可為每一個組對象指定一個“更新率”。這確定了項對象值的異常限(exception limit)被檢測的時間。如果超出了異常限,緩存中的值將被更新。服務器應該盡最大可能保持緩存內數據為最新。更新率也會影響發(fā)送到客戶端的回調的通知的最大速率。服務器永遠不會以比客戶要求的更快的速率向客戶程序送數據。 (時差 ) 在某些情況下數據收集的設備所在的時區(qū)與客戶程序所在的時區(qū)不同,所以,客戶程序知道數據被收集時的設備時間很有必要。 OPC 組對象提供了一個用于存儲時區(qū)的地方,可被客戶程 序設置和讀取,其默認值是主機的時區(qū)。 OPC 服務器不會用此值,這只是為了客戶程序的方便。 死區(qū)的范圍從 %到 100%,它適用于組對象內具有 dwEUType(工程單位類型)的模擬數據項,項的 EU 低限和 EU 高限可用來計算項值的范圍。這個范圍與百分比死區(qū)相乘將產生一個異常限。一個異常的產生可由下式確定: 異常產生 if(絕對值 (上次內存值-當前值 )(死區(qū)值 /) (EU 高限- EU 低限 )) 百分比死區(qū)可在調用 AddGroup 時設置,一個特定的組對象內的所有項對象允許使用相同的百分比死區(qū)。然 而在 OPC 中,允許設置項對象每一個基本元素的百分比死區(qū)。這意味著每個項對象都有可能潛在的越過其駐留的組對象設置的百分比死區(qū)。 如果值超出了異常限,緩存中的最近值被新值更新,并且服務器會向客戶端的回調(如果有 )發(fā)一個通知。百分比死區(qū)是服務器的一個可選行為。如果客戶程序在支持該行為的服務器上不指定百分比死區(qū)的值,則服務器假定為默認值“ 0,所有值的變化都將更新緩存。注意,無論緩存的值是否被更新,時間郵戳都將被更新。 組對象的更新率 (UpdateRate)或者項對象的采樣率如果被設置,將確定一個值被檢測以查看其是否超出異常限的時間間隔。百分比死區(qū)用來避免噪聲信號使客戶程序進行沒必要的更新。 在任何的回調中將會返回這個句柄。這將使客戶程序可以標識數據項所屬的組對象??蛻舫绦蛉绻胍褂?OPC 接口的任何異步函數
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1