【正文】
動化儀表, 2001, 22(9): 713.[5] 郭紅曉, 莫德舉. OPC技術及其軟件的開發(fā)[J]. 北京化工大學學報(自然科學版), 2002, 29(3): 72 73, 78.[6] 馮波, 陳子明, 王偉杰, 等. OPC技術及其在工業(yè)過程控制中的作用[J]. 中山大學學報, 2002, 22(3): 169171.[7] 殷衛(wèi)兵, 等. OPC數(shù)據(jù)服務器分析及程序開發(fā)[J]. 化工自動化及儀表, 2003, 30(5): 4145.[8] 潘洪躍. 基于Modbus協(xié)議通信的設計與實現(xiàn)[J]. 計量技術, 2002, 33(4): 3536.[9] Vincent. Interface between OPC server and OPC application program [J]. Industrial automation, 2005, 14(7): 2126.[10] Martin. The role of OPC in industrial automation[J]. Intelligent control, 2001, 8(7): 1113.[11] 馬龍華, 段建民. OPC數(shù)據(jù)存取規(guī)范的研究和應用[J]. 化工自動化及儀表, 2002, 29(1): 4345.[12] 傅春霞, 段建民. OPC服務器的研究及在CAN總線系統(tǒng)中的實現(xiàn)[J]. 微計算機信息(測控自動化), 2003, 19(11): 810.[13] 張國忠, 等. 電力監(jiān)控模塊OPC驅動程序的實現(xiàn)[J]. 武漢大學學報, 2002, 35(2) :5458.附錄1 OPC組件的部分實現(xiàn)代碼//聲明工具包的函數(shù)extern HMODULE hLibrary。extern UNREGSERVER UnregServer。extern UPDATETAGWITHTIMESTAMP UpdateTagWithTimeStamp。extern SETITEMNOTIFY SetItemNotify。//對OPC服務器的描述進行定義。I=TagCount。 *pDeviceError=1。 UpdateTagWithTimeStamp(TagList[I].hHWND,TagList[I].vValue,TagList[I].lQuality,TagList[I].ft)。 if (ServerCount==0) { m_WNDCloseWindow()。本文引用了數(shù)位學者的研究文獻,如果沒有各位學者的研究成果的幫助和啟發(fā),我將很難完成本篇論文的寫作。在此向幫助和指導過我的各位老師表示最衷心的感謝。}服務器通知函數(shù)void __stdcall ServerNotify(DWORD Handle, WORD wOperate){ if(wOperate==0) { ServerCount++。 TagList[I].lQuality=186。 } }}void __stdcall WriteCallback(DWORD handle,VARIANT pNewValue,DWORD* pDeviceError){ long I。 *pDeviceError=1。extern BOOL FreeOPCDef()。extern SETSERVERNOTIFY SetServerNotify。extern ADDTAGPROPERTYEX AddTagPropertyEx。extern SHUTDOWN shutDown。我想,通過這次畢業(yè)設計,到了工作單位后,我將能夠更快的適應工作崗位和工作要求。測試中成功將數(shù)據(jù)轉換為模擬量TAG_I0TAG_I9,它們分別對應了不同的數(shù)值但擁有相同的質(zhì)量如圖52所示。然后根據(jù)規(guī)范對各個接口ID進行定義;(3)實現(xiàn)OPC數(shù)據(jù)服務器類廠對象。實施步驟分為以下幾個部分:(1)繼承OPC規(guī)范中定義的OPCServer類OPCGroup類和OPCItem類,實現(xiàn)其接口成員函數(shù)。如果一個COM對象支持一個或者多個出接口,我們就稱這樣的對象為可連接對象。DAdvise函數(shù)用于建立雙向通信機制,客戶程序調(diào)用此函數(shù),以便在客戶程序的通報接收器和對象之間建立一個通報連接,以后當對象中的據(jù)發(fā)生變化時,它可以通知客戶程序的接收器DUnadvise函數(shù)用于取消通報連接。 服務器與客戶端傳送機制OPC規(guī)范發(fā)展到目前為止,針對服務器與客戶端的數(shù)據(jù)傳送共提出了兩種方法,分別是異步數(shù)據(jù)通報和連接點方式。品質(zhì)是OPC數(shù)據(jù)必要的選項,服務器用品質(zhì)來表示數(shù)據(jù)不可靠或壞的。同步讀寫函數(shù)獨立于數(shù)據(jù)連接通知。 服務器組和項屬性實現(xiàn)每個組有兩個I/O接口:同步和異步接口。首先通過繼承IUnknown類派生出OPCServer,OPCGroup和OPCItem 3個類,分別對應OPC服務器對象,組對象和項對象,并重載IUnknown類中的接口查詢和引用計數(shù)函數(shù)。首先OPC服務器要在客戶端需要的時候提供本地連接,以便于客戶端需要連接OPC服務器的時候,OPC服務器能夠被找到,能夠給客戶端提供必要的接口。通道由IP地址、IP端口和連接超時值組成?;贛odbus的智能儀表OPC服務器可以實現(xiàn)向下和Modbus從設備的通信,向上可以將實時數(shù)據(jù)傳輸?shù)絆PC客戶端。小批量的數(shù)據(jù)訪問使用這個方法比較便捷,對于大批量的數(shù)據(jù),就很占用OPC客戶端的時間??蛻舳撕虲OM組件程序交換數(shù)據(jù)的實體是COM對象,它無需在乎組件模塊的名稱和位置,但要知道和自己交互的COM對象是哪個,客戶程序通過一個COM對象的全局標識符來創(chuàng)建和初始化對象,并不直接訪問COM組件。COM的體系結構有COM的核心、統(tǒng)一數(shù)據(jù)傳輸、智能命名和持久存儲。與此同時歐洲也成立了自己的OPC基金會。讀線圈(功能01)讀離散量輸入(功能02)讀輸入寄存器(功能04)寫線圈(功能05)寫單個寄存器(功能06)讀異常狀態(tài)(功能07)2級是一組常規(guī)應用于人機接口程序和監(jiān)控程序中的數(shù)據(jù)傳輸功能。在Modbus變量中可通過明確的“變成路徑”性能獲得,這種性能要求雙方按照通信協(xié)議直到連接終止。 Modbus技術歷史Modbus是由Modicon公司在1978年發(fā)明的,它拉開了工業(yè)網(wǎng)絡的序幕,是一個跨時代、里程碑式的網(wǎng)絡協(xié)議,他是第一個真正永業(yè)工業(yè)現(xiàn)場的總線協(xié)議,全球有超過800萬個安裝的節(jié)點,可見其普及的程度相當高,已經(jīng)成為事實上的協(xié)議標準。 本課題主要研究內(nèi)容本課題主要研究的是Modbus通信協(xié)議和OPC服務器的相關內(nèi)容。OPC規(guī)范以OLE/DCOM為基礎,而OLE/DCOM支持TCP/IP等網(wǎng)絡協(xié)議,所以可以將各個子系統(tǒng)分開,分布于網(wǎng)絡的不同節(jié)點上。OPC采用客戶機服務器結構,基于COM和DCOM技術為軟硬件開發(fā)商提供了一套標準的接口。 Intelligent instrument1 緒論 課題的選題背景及意義計算機在當今工業(yè)自動化控制領域中發(fā)揮著日益不可替代的作用,工業(yè)控制領域中各種智能儀表都提供了和計算機的通信協(xié)議[1~3]。隨著Modbus技術和OPC技術的發(fā)展,以及它們在工業(yè)領域中發(fā)揮的作用日益增加,研究基于Modbus的OPC數(shù)據(jù)訪問服務器成為了一個重要課題。關鍵詞:Modbus通信協(xié)議;OPC數(shù)據(jù)服務器;COM;智能儀表OPC Server Development of Intelligent Instrument based on the Modbus Communication ProtocolAbstract: OPC (OLE for Process Control) is a process control hardware and software based on Windows platform between the application program and the munication channel, it has bee a modern industrial automation and control standards, by the vast number of manufacturers and users to accept. The munication protocol of Modbus is monitoring system automation equipment, munications standards, the Modbus can be message transmission in Internet. With the Modbus technology and OPC technology development, as well as in the industrial field play an increasing role, based on the Modbus OPC data access server bees an important problem.This topic in the Modbus agreement and the OPC standard foundatio