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

正文內(nèi)容

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

2025-07-31 15:04 上一頁面

下一頁面
 

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