久久久91-久久久91精品国产一区二区-久久久91精品国产一区二区三区-久久久999国产精品-久久久999久久久精品

最新廣告
關(guān)注中國自動化產(chǎn)業(yè)發(fā)展的先行者!
工業(yè)智能邊緣計算2025年會
CAIAC 2025
2025工業(yè)安全大會
OICT公益講堂
當(dāng)前位置:首頁 >> 案例 >> 案例首頁

案例頻道

激勵式仿真機(jī)實(shí)時數(shù)據(jù)OPC異步通訊的研究
  • 企業(yè):控制網(wǎng)     領(lǐng)域:電源     行業(yè):電力    
  • 點(diǎn)擊數(shù):2508     發(fā)布時間:2009-11-26 21:18:26
  • 分享到:
   摘  要:OPC (OLE for Process Control) 技術(shù)是隨著自動化生產(chǎn)和系統(tǒng)融合的需要而發(fā)展起來的,它繼承和發(fā)展OLE/COM 技術(shù),在過程工業(yè)控制中方便地實(shí)現(xiàn)了不同系統(tǒng)之間的通訊和數(shù)據(jù)交換。本文通過介紹OPC技術(shù)的工作原理,結(jié)合激勵式仿真機(jī)的工作機(jī)制,給出OPC異步通訊的開發(fā)方法及使用Visual C++6.0的具體實(shí)現(xiàn)。根據(jù)仿真系統(tǒng)支撐平臺的實(shí)時性要求,利用內(nèi)存映射文件建立系統(tǒng)運(yùn)行的實(shí)時數(shù)據(jù)庫,即通過內(nèi)存映射文件開辟共享內(nèi)存區(qū)并對其進(jìn)行數(shù)據(jù)操作。該方法既能實(shí)現(xiàn)多個進(jìn)程數(shù)據(jù)的共享,又保證了實(shí)時的響應(yīng)速度以便在Ovation DCS服務(wù)器數(shù)據(jù)庫中讀寫數(shù)據(jù)。具有數(shù)據(jù)傳輸速率快,安全可靠性高的優(yōu)點(diǎn),在火電廠自動化中有很強(qiáng)的通用性和實(shí)用性。

    關(guān)鍵詞:
激勵式仿真機(jī);OPC;組件對象模型;異步通信;內(nèi)存映射文件

    Abstract:
With the development of automatic manufacture and unitized system, the OPC (OLE for Process Control) technology is growing and can satisfy the need of their development. The OPC technology inherit and develop the OLE/COM technology, and can easily realize the communication and datum exchange between the different systems in the process industry. This article provides the way of exploring OPC asynchronous communication and its fulfillment in Visual C++6.0 via the introduction of the working principles of OPC technology combined with the working mechanism of stimulative simulation system. According to the real time requirement of the supporting platform of simulation system, this paper establishes the real time database in the course of memory mapping file; sets up a sharing memory area by memory mapping file,and realizing the operations of the sharing memory area. This method not only has realized the sharing of a lot of process data,but also guaranteed the prompt response speed to read and write the Ovation DCS Server Database. The program have a lot of merits with fast data transfer rate and high security and authenticity, it has strong reliability and practicability in power plant automation.

    Key words
: Stimulative Simulation; OPC; Component object model; Asynchronous communication; Memory mapping file

    1 引言

    激勵式仿真機(jī)是仿真技術(shù)與DCS技術(shù)發(fā)展到一定階段相結(jié)合,將DCS與火電廠熱力設(shè)備和機(jī)組模型直接對接構(gòu)成的仿真系統(tǒng),是從不同的角度思考并最終實(shí)現(xiàn)的嶄新的仿真模式。

    全激勵模式保留原有的分散控制系統(tǒng)軟件和硬件,接入一個只限于實(shí)現(xiàn)熱力設(shè)備和機(jī)組模型仿真的仿真計算機(jī)。由于此類仿真系統(tǒng)動態(tài)數(shù)據(jù)交換量龐大,為滿足數(shù)據(jù)通訊的實(shí)時性要求和避免系統(tǒng)的高負(fù)荷運(yùn)行,激勵式系統(tǒng)DCS服務(wù)器數(shù)據(jù)庫至仿真計算機(jī)之間的數(shù)據(jù)通訊則可以通過仿真系統(tǒng)局域網(wǎng)中的兩臺PC機(jī)基于OPC技術(shù)實(shí)現(xiàn)。



圖1 激勵式仿真機(jī)系統(tǒng)軟件配置圖
    2  OPC技術(shù)

    OPC技術(shù)是OLE技術(shù)在控制領(lǐng)域的應(yīng)用,它通過微軟的COM/DCOM組件實(shí)現(xiàn)一套標(biāo)準(zhǔn)的OLE接口,用這些接口,用戶可以無縫訪問火電機(jī)組生產(chǎn)現(xiàn)場中的數(shù)據(jù)。

    2.1 OPC技術(shù)基礎(chǔ)COM/DCOM

    COM (Component Object Model,組件對象模型)是由Microsoft提出的組件標(biāo)準(zhǔn),客戶程序與COM組件程序進(jìn)行交互的實(shí)體是COM對象。接口是包含了一組函數(shù)的數(shù)據(jù)結(jié)構(gòu),也是COM對象與外界進(jìn)行交互的唯一途徑。如果一個COM對象支持一個或多個出接口,即組件對象要主動與客戶進(jìn)行通信,則這樣的對象為可連接對象(Connectable Object),或者源對象(Source)。客戶與可連接對象之間的通信是雙向的。

    DCOM(分布式組件對象模型)是COM的擴(kuò)展,它可以支持不同計算機(jī)上組件對象與客戶程序之間或者組件對象之間的相互通信,這些計算機(jī)可以在局域網(wǎng)內(nèi),也可以在廣域網(wǎng)上,甚至通過Internet進(jìn)行連接。DCOM己經(jīng)處理了底層網(wǎng)絡(luò)協(xié)議的所有細(xì)節(jié),所以我們可把重點(diǎn)放在應(yīng)用的業(yè)務(wù)邏輯上,而不必再為底層處理費(fèi)時費(fèi)力。

    2.2 OPC通訊方式比較

    OPCDA規(guī)范規(guī)定了兩種通訊方式:同步通訊和異步通訊。同步通訊時,OPC 客戶程序?qū)PC服務(wù)器進(jìn)行相關(guān)操作時,客戶程序必須等到服務(wù)器對應(yīng)的操作全部完成以后才能返回,在此期間客戶程序一直處于等待狀態(tài),如進(jìn)行讀操作,那么必須等待服務(wù)器完成讀后才返回。因此在同步通訊時,如果有大量數(shù)據(jù)進(jìn)行操作或者有很多OPC客戶程序?qū)PC服務(wù)器進(jìn)行讀、寫操作,必然造成客戶端的阻塞現(xiàn)象。因此同步通訊適用于OPC客戶程序較少,數(shù)據(jù)量較小時的場合。

    異步通訊時,OPC客戶程序?qū)Ψ?wù)器進(jìn)行相關(guān)操作時,客戶程序操作后立刻返回,不用等待服務(wù)器的操作,可以進(jìn)行其他操作。當(dāng)服務(wù)器完成操作后再通知客戶程序,如進(jìn)行讀操作,客戶程序通知服務(wù)器后離開返回,不等待服務(wù)器的讀完成,而服務(wù)器完成讀后,會自動的通知客戶程序,把讀結(jié)果傳送給客戶程序。因此相對于同步通訊,異步通訊的效率更高,適用于多客戶訪問同一OPC服務(wù)器和大量數(shù)據(jù)的場合。

    3   系統(tǒng)實(shí)現(xiàn)與測試

    3.1 異步通信實(shí)現(xiàn)

    Ovation DCS服務(wù)器數(shù)據(jù)庫中包括AI,AO,DI,DO數(shù)據(jù)類型,在實(shí)際DCS中對應(yīng)現(xiàn)場的測點(diǎn)與執(zhí)行機(jī)構(gòu)。對于全激勵式仿真模式,只涉及實(shí)際系統(tǒng)部件的建模,不涉及控制模型,因此首先需要實(shí)現(xiàn)模型側(cè)數(shù)據(jù)點(diǎn)與DCS數(shù)據(jù)點(diǎn)的匹配。

    其次,在全激勵式仿真機(jī)系統(tǒng)中,動態(tài)交互數(shù)據(jù)量龐大,同步通訊是絕對不能滿足要求,只能使用異步方式。異步通訊就是通過COM/DCOM機(jī)制中的連接點(diǎn)實(shí)現(xiàn)的。可連接點(diǎn)對象通過IConnectionPointContainer接口管理所有的出接口。

    對應(yīng)于每一個出接口,可連接點(diǎn)對象又管理了一個連接點(diǎn)(connection point)對象,每一個連接點(diǎn)對象實(shí)現(xiàn)了IConnectionPoint接口,仿真機(jī)模型側(cè)通過連接點(diǎn)對象建立接收器與可連接對象的連接。為了使用連接點(diǎn)(IConnectionPointContainer 和 IConnectionPoint 接口),仿真機(jī)模型側(cè)必須創(chuàng)建一個對象支持IUnknown和IConnectionPoint接口,以便傳遞一個指針給IUnknown接口去激活DCS服務(wù)器的連接點(diǎn)。可連接對象的基本結(jié)構(gòu)如圖1。



圖2 可連接對象基本結(jié)構(gòu)
 
    最后,具體實(shí)現(xiàn)異步讀取數(shù)據(jù)時,DCS服務(wù)器主動和仿真機(jī)模型通信。此時,服務(wù)器提供出接口(Outgoing Interface),這些出接口是由仿真機(jī)模型實(shí)現(xiàn),并將接口指針告訴DCS服務(wù)器對象,然后服務(wù)器對象就利用此接口指針與仿真機(jī)模型進(jìn)行通信。而仿真機(jī)模型側(cè)則通過接收器sink(其接收器應(yīng)該至少實(shí)現(xiàn) IUnknown 和 IOPCDataCallBack 接口)來實(shí)現(xiàn)這些接口的對象。這樣對仿真機(jī)模型側(cè)來說,可以通過常規(guī)方式調(diào)用服務(wù)器的接口,也可以通過接收器接受DCS服務(wù)器發(fā)送的通知或事件,對DCS服務(wù)器來說,它的入接口和出接口分別承擔(dān)了這兩個通信過程,這樣就實(shí)現(xiàn)了C/S的雙向通信。異步通信的實(shí)現(xiàn)由定義接口開始,主要代碼如下:

    IConnectionPointerContainer* pCPC;

    IOPCAsyncIO2* pASIO2;

    IOPCDataCallBack* pDCB;

    IConnectionPoint* pCP;

    Punk->QueryInterface(IID_IConnection, PointContainer, &pCPC);

    PCPC->FindConnectionPoint(IID_IOPC, DataCallBack, &pCP);

    通過查詢,如果支持接收器對象,則在DCS服務(wù)器與仿真機(jī)模型之間建立連接,并返回連接點(diǎn)對象生成的唯一標(biāo)志此連接的32位整數(shù)m_dwcookie:

    pCP->Advise(&pDCB,&m_dwcookie);

    設(shè)置刷新速率IOPCGroupStateMgt* pGSP;

    PGRP->SetState(&RequestedRate,&Rate, &Active, 0, 0,0,0);

    異步讀數(shù)據(jù), 傳遞事務(wù)ID給OnReadComplete函數(shù)。    

    pASIO2->Read(1000,&m_phserver, m_dwtranscationID, &m_pdwcancelID, &hr);

    異步寫數(shù)據(jù),傳遞事務(wù)ID給OnWriteComplete函數(shù)。

    pASIO2->Write(1000, &m_phserver, &m_pitemvalues,m_dwtransactionID, m_pdwcancelID, &hr);

    在仿真機(jī)模型側(cè)調(diào)用異步讀寫操作或者組對象項(xiàng)成員的數(shù)據(jù)發(fā)生變化時,組對象對仿真機(jī)模型側(cè)發(fā)出如下事件OnDataChange函數(shù),只需在該函數(shù)中添加一些讀寫共享內(nèi)存的語句。

    STDMETHODIMP OnDataChange(DWORD dwTransid,OPCHANDLE hGroup, HRESULT hrMasterquality, HRESULT

    hrMastererror, DWORD dwCount, OPCHANDLE __RPC_FAR *phClientItems, VARIANT __RPC_FAR *pvValues, WORD __RPC_FAR *pwQualities, FILETIME __RPC_FAR *pftTimeStamps, HRESULT __RPC_FAR *pErrors);

    dwTransid:由仿真機(jī)模型側(cè)發(fā)送的事務(wù)標(biāo)識符。

    dwCount:要讀取的數(shù)據(jù)或品質(zhì)發(fā)生變化的Item數(shù)目。

    phClientItems:OPC ITEM的客戶句柄數(shù)組。

    pvValues:返回的數(shù)值數(shù)組。

    pwQualities:返回的質(zhì)量戳數(shù)組。

    pftTimeStamps:返回的時間戳數(shù)組。

    當(dāng)仿真機(jī)模型側(cè)需要取消與DCS服務(wù)器的連接時,調(diào)用帶有同樣連接標(biāo)識的Unadvise來取消連接。并且刪除Item,釋放異步接口,釋放Item管理接口,刪除Group對象,釋放OPC服務(wù)器,關(guān)閉COM庫等,以釋放占有資源。異步通信結(jié)構(gòu)如圖2所示。



圖3  OPC異步通信結(jié)構(gòu)示意圖
 
    3.2 內(nèi)存映射文件實(shí)現(xiàn)

    由于實(shí)時仿真數(shù)據(jù)庫被多個進(jìn)程共享,必然涉及到仿真機(jī)支撐系統(tǒng)與OPC客戶端程序之間的實(shí)時數(shù)據(jù)通信。解決的有效方法就是利用內(nèi)存映射文件方式創(chuàng)建一個足夠大的共享內(nèi)存空間,由于32位Windows操作系統(tǒng)具有多達(dá)2GB的用戶可用的線性內(nèi)存空間,可以處理上百萬的變量,這樣完全滿足火電廠全激勵式仿真系統(tǒng)支撐平臺的要求,通過編制一系列的接口函數(shù)對建立的共享內(nèi)存中的數(shù)據(jù)進(jìn)行操作。

    此外,由于該共享內(nèi)存中的數(shù)據(jù)可為多個進(jìn)程共享,因此各個接口函數(shù)都提供了同步機(jī)制,使用互斥量的同步對象CMutex實(shí)現(xiàn)。這些接口函數(shù)都封裝在動態(tài)鏈接庫中,通過這些接口函數(shù),既能實(shí)現(xiàn)多個進(jìn)程間數(shù)據(jù)的共享,又保證了實(shí)時的響應(yīng)要求。實(shí)現(xiàn)關(guān)鍵代碼如下:

    HANDLE hFileMap = CreateFileMapping((HANDLE)0xFFFFFFFF, NULL, PAGE_READWRITE, 0, ShareMemory, MAP_FILE_NAME );  

    if ( hFileMap == NULL)   

          return;

realValue = (float *)MapViewOfFile( hFileMap,FILE_MAP_ALL_ACCESS,0, 0, ShareMemory );

if ( realValue == NULL ) { 

          CloseHandle( hFileMap ); 

          return;  

      }

    4  結(jié)論

    在實(shí)現(xiàn)全激勵式仿真機(jī)實(shí)時數(shù)據(jù)通信的過程中,起初鑒于ADO技術(shù)具有高速訪問數(shù)據(jù)源和程序占用內(nèi)存少的特點(diǎn),曾采用了SQL Server 2000,Access等傳統(tǒng)數(shù)據(jù)庫作為實(shí)時數(shù)據(jù)庫,但實(shí)際使用中明顯有系統(tǒng)負(fù)荷高,占用資源大,響應(yīng)速度慢等嚴(yán)重缺點(diǎn)。這是沒有充分考慮到具體系統(tǒng)條件及要求所造成的。

    通過改進(jìn)實(shí)踐表明,基于OPC的全激勵式仿真系統(tǒng)實(shí)時數(shù)據(jù)異步通訊方案是可行的。并以內(nèi)存映射文件加以實(shí)現(xiàn)的實(shí)時數(shù)據(jù)庫在共享內(nèi)存中以結(jié)構(gòu)數(shù)組的形式存儲,使得整個仿真機(jī)系統(tǒng)結(jié)構(gòu)緊湊、效率高,且對系統(tǒng)資源的要求降低。實(shí)現(xiàn)了大量數(shù)據(jù)的快速交換,符合電力生產(chǎn)中數(shù)據(jù)的響應(yīng)速度。

    參考文獻(xiàn):

    [1] 何海江.OPC客戶端關(guān)鍵技術(shù)的實(shí)現(xiàn)[J].微計算機(jī)信息 2003,19(7):76—78.

    [2] 鄭立.OPC應(yīng)用程序入門[M].OPC(中國)基金會,2002.5

    [3] 劉國平,柳林林,劉利云.基于OPC服務(wù)器自動化接口的客戶端程序的設(shè)計[J].自動化技術(shù)與應(yīng)用,2005,24(9):33—35.

    [4] 潘愛民.COM原理與應(yīng)用[M].北京:清華大學(xué)出版社,2000.3

    [5] 司紀(jì)剛.OPCDA服務(wù)器與客戶程序開發(fā)指南修訂版.2008.1

    [6] OPC Foundation,OPC Data Access Custom Interface Standard,Version 2.0



 

熱點(diǎn)新聞

推薦產(chǎn)品

x
  • 在線反饋
1.我有以下需求:



2.詳細(xì)的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 高清欧美在线三级视频| 国产永久福利| 国产成人小视频在线观看| 色中色综合| 91亚洲精品久久| 日本va视频| 亚洲国产日韩在线成人蜜芽| 麻豆网页| 亚洲经典激情春色另类| xx国产| 日韩在线观看精品| 成人mv高清在线| 欧美一级久久久久久久大片| 国产免费久久精品久久久| 黄色一级毛片免费看| 欧美日韩一区二区在线视频播放 | 国产亚洲3p一区二区三区| 黄污视频免费观看| 大人和孩做爰h视频在线观看| 久久精品在线免费观看| 日韩欧美亚洲另类| 亚洲欧美中文日韩综合| 99精品网| 一级一级一级毛片免费毛片| 日本mv精品中文字幕| 日韩精品视频网站| 亚洲国产精品区| 成人看片黄a在线观看| 拍拍拍精品视频在线观看| 福利在线看片| 成人合成mv福利视频网站| 国产日韩不卡免费精品视频| 久爱午夜精品免费视频| 91在线 在线播放| www国产永久免费视频看看| 三级毛片免费| 成人18在线观看| 同性男男黄h片在线播放免费| 免费啪啪小视频| 欧美巨吊| 免费碰碰碰视频在线看|