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

正文內(nèi)容

基于modbus通信協(xié)議的智能儀表opc服務(wù)器的開(kāi)發(fā)_畢業(yè)論文(文件)

 

【正文】 讀函數(shù)引起所有的請(qǐng)求數(shù)據(jù)返回 , 這個(gè)函數(shù)是獨(dú)立于變化驅(qū)動(dòng)通知的。品質(zhì)是 OPC 數(shù)據(jù)必要的選項(xiàng) , 服務(wù)器用品質(zhì)來(lái)表示數(shù)據(jù)不可靠或壞的。 OPC 客戶通過(guò)這種風(fēng)格來(lái)分配句柄 使自 己工作更有效率。 服務(wù)器與客戶端傳送機(jī)制 OPC 規(guī)范發(fā)展到目前為止,針對(duì)服務(wù)器與客戶端的數(shù)據(jù)傳送共提出了兩種方法,分別是異步數(shù)據(jù)通報(bào)和連接點(diǎn)方式。 IAdviseSink 接口和 IDataObject 接口都由 COM 庫(kù)定義。 IDataObject 接口它用于處理數(shù)據(jù)變化通報(bào) , 因而只實(shí)現(xiàn)了 IDataObject的 DAdvise 方法和 DUnadvise 方法。具體的連接流程 : ( 1) OPC 客戶調(diào)用 CoCreateInstance 函數(shù)創(chuàng)建服務(wù)器對(duì)象 , 獲得其接口指針 , 客戶就可以利用該指針直接調(diào)用接口成員函數(shù)。這樣的結(jié)構(gòu)常常不能滿足實(shí)際的要求,組 件對(duì)象也要主動(dòng)的與客戶進(jìn)行通 信 ,所以這就要求對(duì)象能夠提供出接口。圖 43 就是連接點(diǎn)機(jī)制的具體描述: 圖 43 連接點(diǎn)機(jī)制結(jié)構(gòu)描述 如果客戶要使用連接點(diǎn),接收器對(duì)象中就必須實(shí)現(xiàn) IUnknown 接口和服務(wù)器的輸出接口。 客戶 可連接對(duì)象 接收器 ( 客戶 ) 客戶端把接收器的接口指針傳給對(duì)象 可連接對(duì)象調(diào)用接收器的接口成員 IUnknown 滁州學(xué)院本科畢業(yè)設(shè)計(jì) 15 OPC 對(duì)象和接口 OPC 對(duì)象是 OPC 服務(wù)器程序與客戶程序進(jìn)行交互的部分 , 需要與數(shù)據(jù)存儲(chǔ)區(qū)和硬件驅(qū)動(dòng)部分相聯(lián)系 , 以便獲取數(shù)據(jù)區(qū)中的數(shù)據(jù)或直接訪問(wèn)硬件設(shè)備。 OPC 項(xiàng)表示了與數(shù)據(jù)源的連接 , 數(shù)據(jù)源可以是程序數(shù)據(jù)區(qū)中的數(shù)據(jù)項(xiàng) , 也可以是某個(gè)硬件設(shè)備中的數(shù)據(jù)。類標(biāo)識(shí)可用 VC 程序自動(dòng)產(chǎn)生 , 這樣能夠保證生成的類標(biāo)識(shí)是唯一的。接著在應(yīng)用程序類的初始化函數(shù)中完成 COM 庫(kù)初始化、類廠注冊(cè)等功能。主窗口是所有界面元素的組織容器,主要包含設(shè)備地址、設(shè)備樹(shù)形列表、 標(biāo)簽列表。 圖 54 添加組 ( 5) 標(biāo)簽屬性 , 在圖 55 所示設(shè)定指定標(biāo)簽的名稱、描述、地址、寄存器及數(shù)據(jù)類型等相關(guān)操作。 通過(guò)本次畢業(yè)設(shè)計(jì),我感到自己應(yīng)用基礎(chǔ)知 識(shí)及專業(yè)知識(shí)解決問(wèn)題的能力有了很大的提高,并且這次畢業(yè)設(shè)計(jì)的選題,是一個(gè) 很 實(shí)際的 課題 ,因此,在我即將工作之前,它是一次重要演練。 extern CREATESERVER CreateServer。 extern ACTIVECODE ActiveCode。 extern REGTAG RegTag。 extern ADDTAGPROPERTY AddTagProperty。 extern UPDATETAG UpdateTag。 extern SETREADCALLBACKEX SetReadCallbackEx。 extern SETTAGNOTIFY SetTagNotify。 //初始化和反初始化設(shè)置函數(shù)聲明 extern BOOL InitOPCDef()。 ( const LPCSTR OPCClsID ={6E75197172F1439FA6BE0586D0F86860}。) 在程序文件 中,添加代碼定義如下函數(shù):讀寫(xiě)回調(diào)函數(shù) void __stdcall ReadCallback(DWORD handle,VARIANT* pNew Value,WORD* Quality, FILETIME* ft, DWORD* pDeviceError) { long I。I++) { if(TagList[I].hHWND==handle) { *pNewValue= TagList[I].vValue。 break。 GetSystemTimeAsFileTime(amp。I++) { if(TagList[I].hHWND==handle) { TagList[I].vValue=pNewValue。 m_WNDSendMessage(1088)。 } else return true。 m_WNDDestroyWindow()。 同時(shí)也要感謝 機(jī)電學(xué)院 S512 實(shí)驗(yàn)室的實(shí)驗(yàn)員老師,盡最大的努力為我們的實(shí)驗(yàn)提供了必要器材。 感謝我的同學(xué)和朋友,在我寫(xiě)論文的過(guò)程中給予我了很多 理論 素材,還在論文的撰寫(xiě)和排版 的過(guò)程中提供熱情的幫助。 感謝這篇論文所涉及到的各位學(xué)者。尤其要強(qiáng)烈感謝我的論文指導(dǎo)老師 汪先兵 老師, 他 對(duì)我進(jìn)行了無(wú)私的指導(dǎo)和幫助,不厭其煩的幫助進(jìn)行論文的修改和改進(jìn)。 } else ServerCount。 滁州學(xué)院本科畢業(yè)設(shè)計(jì) 21 break。 TagList[I].ft= ft。 for(I=0。 FILETIME ft。 *ft=TagList[I].ft。 for(I=0。//定義 OPC 服務(wù)器的名稱 const LPCSTR OPCDescr = Agilewill 。 服務(wù)器通知函數(shù)聲明 extern void __stdcall ServerNotify(DWORD handle, WORD wOperate)。 //讀寫(xiě)回調(diào)函數(shù)類型的聲明 extern void __stdcall ReadCallback(DWORD handle,VARIANT* pNewValue,WORD* Quality, FILETIME* ft, DWORD* pDeviceError)。 extern SETGROUPNOTIFY SetGroupNotify。 extern SETWRITECALLBACKEX SetWriteCallbackEx。 extern SETTAGPROPERTY SetTagProperty。 extern UNREGTAG UnregTag。 extern REGSERVER RegServer。 extern SETSERVERSTATE SetServerState。我對(duì)自己充滿信心 。 但測(cè)試中發(fā)現(xiàn)以下幾個(gè) 問(wèn)題 : ( 1)頻繁的啟動(dòng)停止服務(wù)器時(shí),偶爾出現(xiàn)不能打開(kāi)的情況; ( 2)在數(shù)據(jù)量過(guò)大時(shí)候轉(zhuǎn)換不出模擬量; ( 3) 時(shí)間戳部分偶爾出現(xiàn)時(shí)間錯(cuò)誤。 圖 52 服務(wù)器界面 ( 3) 設(shè)備屬性,可以設(shè)置 具體到一臺(tái)設(shè)備的 相關(guān)參數(shù) ,如 IP 地址、端口號(hào)、設(shè)備號(hào)、網(wǎng)關(guān)設(shè)備、超時(shí)時(shí)間、消息周期等等 ,如圖 53 所示。 5 OPC 服務(wù)器的實(shí)驗(yàn)測(cè)試 ( 1) 同步實(shí)例界面,實(shí)現(xiàn)了啟動(dòng)、停止服務(wù)器,同步讀寫(xiě)操作 ,并回復(fù)操作結(jié)果,如圖 51 所示。在 COM 規(guī)范中 , 客戶程序是通過(guò)類廠創(chuàng)建 COM 對(duì)象并返回其接口指針的 , 因此需要為 CMyServer 類設(shè)計(jì)相應(yīng)的類廠。 OPC 客戶程序?qū)⑼ㄟ^(guò) OPC 組對(duì)象的接口函數(shù)來(lái)間接調(diào)用 OPC 項(xiàng)的這些成員函數(shù) ; ( 2) 定義 OPC 數(shù)據(jù)服 務(wù)器的名稱和類標(biāo)識(shí)。首先從 OPC 基金會(huì)定義的組對(duì)象接口派生出新的接口類并實(shí)現(xiàn)其成員函數(shù)的功能 , 然后增加指針成員變量指向這些接口類。服務(wù)器接著獲得輸出接口的指針。可連接對(duì)象管理所有的出接口。服務(wù)器在 OPCGroup 對(duì)象中保存客戶的 IAdviseSink 對(duì)象和數(shù)據(jù)格式 ; ( 6) 客戶調(diào)用服務(wù)器 IOPCASyncIO 發(fā)出讀 /寫(xiě)操作 , 服務(wù)器給相應(yīng) 組和項(xiàng)做異步讀 /寫(xiě) 標(biāo)記 ; ( 7) 服務(wù)器向通道發(fā)送命令 , 等待命令返回 ; ( 8) 服務(wù)器接收通道的讀 /寫(xiě)結(jié)果 , 給與通道對(duì)應(yīng)的 OPC 項(xiàng) 置讀 /寫(xiě)完成標(biāo)記 ; ( 9) 服務(wù)器中建有定時(shí)器 , 該定時(shí)器定時(shí)掃描 OPC 項(xiàng)的異步操作標(biāo)記當(dāng)發(fā)現(xiàn)標(biāo)記為完成時(shí) ,調(diào)用 IOPCDataObject 中保存的客戶的 IAdviseSink 對(duì)象的 OnDataChange 函數(shù) , 把項(xiàng)的數(shù)據(jù)傳輸給客戶 , 然后給項(xiàng)的標(biāo)記復(fù)位客戶在 OnDataChange 函數(shù)中 , 按照約定的數(shù)據(jù)格式 , 獲得異步操作的結(jié)果。 下面簡(jiǎn)單介紹下一步操作流程:在 OPC 中 , 數(shù)據(jù)傳輸是以組為單位進(jìn)行的在實(shí)現(xiàn)異 步操作前 ,客戶和服務(wù)器之間必須以組為單位建立連接 , 這個(gè)連接是由客戶調(diào)用服務(wù)器的 IDataObject 接口中的 DAdvise 函數(shù)建立的。異步報(bào)有 3 種類型 : 復(fù)合文檔、數(shù)據(jù)變化和視區(qū)變化IAdviseSink 的實(shí)現(xiàn)者可以根據(jù)實(shí)際需要讓 IAdvieSink 接收一種或多種類型的異步通報(bào) , IAdvieSink的每一種方法是對(duì)應(yīng)于一種特 定通報(bào)的回函數(shù)。 OPC 服務(wù)器與客戶端數(shù)據(jù)傳送機(jī)制是整個(gè) OPC服務(wù)器開(kāi)發(fā)過(guò)程中的關(guān)鍵技術(shù) ,下面對(duì)這兩種數(shù)據(jù)傳遞方式分別進(jìn)行討論。 OPC 客戶在任何操作中 , 通過(guò)傳送句柄來(lái)向服務(wù)器表示項(xiàng)。組和項(xiàng)都有客戶句柄和服務(wù)器句柄 , 客戶句柄被 OPC 客戶分配與一個(gè)對(duì)象關(guān)聯(lián) , 服務(wù)器在相關(guān)操作中返回這個(gè)句柄 , 通過(guò)句柄來(lái)識(shí)別這個(gè)對(duì)象。異步刷新函數(shù)僅僅影響變化驅(qū)動(dòng)通知 , 刷新函數(shù)本質(zhì)上強(qiáng)行更新指定項(xiàng) , 而不管最近的改變是否通知了 OPC客戶。像同步讀寫(xiě)函數(shù)一樣 , 異步讀寫(xiě)函數(shù)也可以操作多個(gè)項(xiàng)不同的是異步函數(shù)請(qǐng)求動(dòng)作 , 并且立即返回。因?yàn)檫@種方法較慢 , 它通常作診斷用。同步函數(shù)在執(zhí)行 I/O 操作時(shí) , 會(huì)阻塞當(dāng)前進(jìn)程。可以設(shè)計(jì)類似 Windows 中資源管理器的用戶界面 , 將各數(shù)據(jù)項(xiàng)用樹(shù)型結(jié)構(gòu)表示然后設(shè)計(jì)數(shù)據(jù)項(xiàng)和硬件的設(shè)置界面 , 并與數(shù)據(jù)存儲(chǔ)區(qū)和硬件接口聯(lián)系起來(lái) , 實(shí)現(xiàn)相應(yīng)的組態(tài)功能。在 OPCServer 和 OPCGroup 類中增加指向相應(yīng)接口類的指針成員變量 , 接著修改接口查詢函數(shù)。它的名稱可以取代 PLC 的以數(shù)字表示的寄存器。而且無(wú)論是本機(jī)還是遠(yuǎn)程客戶端都能訪問(wèn)服務(wù)器,支持了遠(yuǎn)程啟動(dòng),即使服務(wù)器不在運(yùn)行狀態(tài),只要有客戶端訪問(wèn)服務(wù)器,服務(wù)器能夠自行啟動(dòng)。 數(shù)據(jù)點(diǎn)在線監(jiān)視模塊提供了設(shè)備 數(shù)據(jù)點(diǎn)的讀取功能,讓服務(wù)器用戶界面可以實(shí)現(xiàn)數(shù)據(jù)點(diǎn)數(shù)值的在線讀取和寫(xiě)入。 Modbus 從設(shè)備映射模塊主要功能是將物理設(shè)備的信息 映射到 相應(yīng)的邏輯設(shè)備和通道之中。 如圖 42 所示,它包含通道定義、 Modbus 從設(shè)備映射、數(shù)據(jù)點(diǎn)映射、模擬變量變換和數(shù)據(jù)點(diǎn)在線監(jiān)視五個(gè)模塊。 現(xiàn)在簡(jiǎn)介一下 OPC 服務(wù)器關(guān)鍵模塊管理模塊的設(shè)計(jì)理念。 4 Modbus OPC 數(shù)據(jù)訪問(wèn)服務(wù)器的實(shí)現(xiàn) OPC 服務(wù)器要求分析 本節(jié)主要介紹 OPC 服務(wù)器設(shè)計(jì)實(shí)現(xiàn)的主要功能和設(shè)計(jì)環(huán)境以及總體框架,初步構(gòu)建起 OPC 服務(wù)器設(shè)計(jì)的基 礎(chǔ)。根據(jù) OPC 數(shù)據(jù)訪問(wèn)標(biāo)準(zhǔn),不同的數(shù)據(jù)讀取方式所需要的數(shù)據(jù)源有兩種:從服務(wù)器數(shù)據(jù)緩沖區(qū)讀??;二是從硬件設(shè)備直接讀取。 OPC 服務(wù)器數(shù)據(jù)訪問(wèn)方式 OPC 數(shù)據(jù)訪問(wèn)有兩種方式:同步訪問(wèn)和異步訪問(wèn),下面分別介紹??蛻舫绦蛴弥赶蚪涌跀?shù)據(jù)結(jié)構(gòu)的指針來(lái)調(diào)用接口函數(shù),接 口指針又指向另一個(gè)指針,這個(gè)指針指向虛函 數(shù)表 ,虛函數(shù)表里面一項(xiàng)由 4 個(gè)字節(jié)長(zhǎng)的函數(shù)指針組成,每一個(gè)接口的 vtable 是確定的, COM 接口 vtable 的前三個(gè)指針是 QueryInterface、 AddRef、 Release 函數(shù)實(shí)現(xiàn)的地址,函數(shù)指針和對(duì)象的具體實(shí)現(xiàn)連接。 COM 組件在 windows 平臺(tái)上可以是DLL 文件或者 EXE 文件,組件為 COM 對(duì)象提供了活動(dòng)空間,一個(gè)組件程序可以包含多個(gè) COM 對(duì)象, COM 對(duì)象用接口的 方式提供服務(wù),一個(gè) COM 對(duì)象可以擁有多個(gè) COM 接口。其定義了 COM 對(duì)象與客戶如何通過(guò)二進(jìn)制標(biāo)準(zhǔn)接口進(jìn)行交互的標(biāo)準(zhǔn)。它可以隨時(shí)為系統(tǒng)升級(jí),只需將原系統(tǒng)中的組件用新的更換掉。 OPC 技術(shù)規(guī)范 OPC 基金會(huì)制定了各種 OPC 規(guī)范,并且不斷地進(jìn)行升級(jí)和更新以便于適應(yīng)日益變化發(fā)展的工業(yè)自動(dòng)化領(lǐng)域?,F(xiàn)在的 OPC 基金會(huì)的理事會(huì)是由FisherRosement, Honeywell, Interllution, Rockwell, Software, National Instrument 以及歐洲代表的Siemens 和遠(yuǎn)東代表的東芝組成的。例外
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1