日本在线www-日本在线播放一区-日本在线不卡免费视频一区-日本在线不卡视频-成人影院久久久久久影院-成人影院一区二区三区

ABB
關注中國自動化產業發展的先行者!
工業智能邊緣計算2025年會
CAIAC 2025
2025工業安全大會
OICT公益講堂
當前位置:首頁 >> 案例 >> 案例首頁

案例頻道

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

    關鍵詞:
激勵式仿真機;OPC;組件對象模型;異步通信;內存映射文件

    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 引言

    激勵式仿真機是仿真技術與DCS技術發展到一定階段相結合,將DCS與火電廠熱力設備和機組模型直接對接構成的仿真系統,是從不同的角度思考并最終實現的嶄新的仿真模式。

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



圖1 激勵式仿真機系統軟件配置圖
    2  OPC技術

    OPC技術是OLE技術在控制領域的應用,它通過微軟的COM/DCOM組件實現一套標準的OLE接口,用這些接口,用戶可以無縫訪問火電機組生產現場中的數據。

    2.1 OPC技術基礎COM/DCOM

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

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

    2.2 OPC通訊方式比較

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

    異步通訊時,OPC客戶程序對服務器進行相關操作時,客戶程序操作后立刻返回,不用等待服務器的操作,可以進行其他操作。當服務器完成操作后再通知客戶程序,如進行讀操作,客戶程序通知服務器后離開返回,不等待服務器的讀完成,而服務器完成讀后,會自動的通知客戶程序,把讀結果傳送給客戶程序。因此相對于同步通訊,異步通訊的效率更高,適用于多客戶訪問同一OPC服務器和大量數據的場合。

    3   系統實現與測試

    3.1 異步通信實現

    Ovation DCS服務器數據庫中包括AI,AO,DI,DO數據類型,在實際DCS中對應現場的測點與執行機構。對于全激勵式仿真模式,只涉及實際系統部件的建模,不涉及控制模型,因此首先需要實現模型側數據點與DCS數據點的匹配。

    其次,在全激勵式仿真機系統中,動態交互數據量龐大,同步通訊是絕對不能滿足要求,只能使用異步方式。異步通訊就是通過COM/DCOM機制中的連接點實現的。可連接點對象通過IConnectionPointContainer接口管理所有的出接口。

    對應于每一個出接口,可連接點對象又管理了一個連接點(connection point)對象,每一個連接點對象實現了IConnectionPoint接口,仿真機模型側通過連接點對象建立接收器與可連接對象的連接。為了使用連接點(IConnectionPointContainer 和 IConnectionPoint 接口),仿真機模型側必須創建一個對象支持IUnknown和IConnectionPoint接口,以便傳遞一個指針給IUnknown接口去激活DCS服務器的連接點。可連接對象的基本結構如圖1。



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

    IConnectionPointerContainer* pCPC;

    IOPCAsyncIO2* pASIO2;

    IOPCDataCallBack* pDCB;

    IConnectionPoint* pCP;

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

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

    通過查詢,如果支持接收器對象,則在DCS服務器與仿真機模型之間建立連接,并返回連接點對象生成的唯一標志此連接的32位整數m_dwcookie:

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

    設置刷新速率IOPCGroupStateMgt* pGSP;

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

    異步讀數據, 傳遞事務ID給OnReadComplete函數。    

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

    異步寫數據,傳遞事務ID給OnWriteComplete函數。

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

    在仿真機模型側調用異步讀寫操作或者組對象項成員的數據發生變化時,組對象對仿真機模型側發出如下事件OnDataChange函數,只需在該函數中添加一些讀寫共享內存的語句。

    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:由仿真機模型側發送的事務標識符。

    dwCount:要讀取的數據或品質發生變化的Item數目。

    phClientItems:OPC ITEM的客戶句柄數組。

    pvValues:返回的數值數組。

    pwQualities:返回的質量戳數組。

    pftTimeStamps:返回的時間戳數組。

    當仿真機模型側需要取消與DCS服務器的連接時,調用帶有同樣連接標識的Unadvise來取消連接。并且刪除Item,釋放異步接口,釋放Item管理接口,刪除Group對象,釋放OPC服務器,關閉COM庫等,以釋放占有資源。異步通信結構如圖2所示。



圖3  OPC異步通信結構示意圖
 
    3.2 內存映射文件實現

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

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

    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  結論

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

    通過改進實踐表明,基于OPC的全激勵式仿真系統實時數據異步通訊方案是可行的。并以內存映射文件加以實現的實時數據庫在共享內存中以結構數組的形式存儲,使得整個仿真機系統結構緊湊、效率高,且對系統資源的要求降低。實現了大量數據的快速交換,符合電力生產中數據的響應速度。

    參考文獻:

    [1] 何海江.OPC客戶端關鍵技術的實現[J].微計算機信息 2003,19(7):76—78.

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

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

    [4] 潘愛民.COM原理與應用[M].北京:清華大學出版社,2000.3

    [5] 司紀剛.OPCDA服務器與客戶程序開發指南修訂版.2008.1

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



 

熱點新聞

推薦產品

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



2.詳細的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 性欧美高清精品video-性欧美高清videofree-性欧美俄罗斯-性欧美xxxx乳高跟-国产真实乱偷人视频-国产真实乱了全集mp4 | 欧美成人精品动漫在线专区-欧美成人精品区综合A片-欧美成人精品三区综合A片-欧美成人精品一区二区综合A片-欧美成人另类-欧美成人猛片AAAAAAA | jizzjizz在线-jizzxxxx18国产高清-jizzxxxx18中国-jizzxxxx18中国农村-欧美高清一区-欧美高清一区二区 | 又大又粗好舒服好爽视频-又大又白g奶-又粗又长又爽又大硬又黄-又粗又长又黄又爽视频-久久久久中文-久久久久这里只有精品 | 亚欧成人毛片一区二区三区四区-亚欧成人乱码一区二区-亚久久伊人精品青青草原2020-亚飞与亚基在线观看-国产综合成人观看在线-国产综合91天堂亚洲国产 | 亚洲精品在线免费观看,在线日韩欧美,午夜高清在线观看免费完整版,亚洲综合久久久,久久一区二区三区免费,日韩小视频在线 | 性色做爰片在线观看WW-性夜影院午夜看片-性一交一乱一A片-性一交一乱一A片WWW-性一交一乱一交A片久久-性一交一乱一交A片久久四色 | 国产精品亚洲精品日韩己满十八小-国产精品亚洲精品观看不卡-国产精品亚洲精品不卡-国产精品亚洲精品-四虎影视精品-四虎影视国产精品永久在线 | 美女操网站-美女操操操-美女操操-美女被日动态图-美女被猛男躁免费视频网站-美女被漫画 | 国产日屄视频播放-国产日本中文久久-国产日本在线观看网址-国产日本在线观看播放-国产日本在线播放-国产日本亚洲一区二区三区 | yy一级毛片免费视频-yyyyyy高清成人观看-yy6080理aa级伦大片一级毛片-yy4080午夜理论一级毛片-色吊丝在线观看国产-色的视频在线观看免费播放 | 天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看 | 国产夜色福利院在线观看免费-国产夜趣福利免费视频-国产野花视频天堂视频免费-国产亚洲综合一区二区在线-日韩精品在线观看免费-日韩精品在线电影 | 国产午夜视频在线,国产夜夜操,人人添人人澡人人澡人人人爽,欧美日韩国产综合视频在线看,精品久久一区二区,亚洲欧美一区二区三区久久 | 欧美日韩一区二区三区在线观看-欧美日韩一区二区三区在线播放-欧美日韩一区二区三区在线-欧美日韩一区二区三区四区-欧美日韩一区二区三区视视频-欧美日韩一区二区三区视频播 | 国产欧美精品一区二区三区四区-国产欧美精品一区二区三区-国产欧美精品一区二区-国产欧美精品系列在线播放-天天爽天天-天天视频一区二区三区 | 国产成人无码影视-国产成人无码专区-国产成人无码综合-国产成人无码综合亚洲日韩-国产成人无码综合亚洲日韩榴莲-国产成人无套精品在线观看 | 波多野结衣中文字幕教师-波多野结衣中文字幕2022免费-波多野结衣中文在线观看-波多野结衣中文在线播放-波多野结衣中文一区-波多野结衣中文丝袜字幕 | 91精品国产色综合久久不卡蜜,999国内精品永久免费视频试看,五月婷婷六月香,欧美成人综合在线,日韩亚洲第一页,国产欧美日韩不卡在线播放在线 | 久久久久综合网久久-久久久久亚洲精品影视-久久久久久久久66精品片-久久久久久久999-阿v天堂2022在线观看-а中文在线天堂 | 国产三级高清午夜羞羞视频-国产三级高清在线观看-国产三级观看久久-国产三级国产av品爱网-国产三级国产精品-国产三级国产精品国产国在线观看 | 亚洲午夜久久久久中文字幕,欧美精品久久久久久久久大尺度,91精品推荐,九九久久99综合一区二区,哪里有毛片,精品亚洲一区二区三区 精品国产91乱码一区二区三区,成人国产一区二区三区精品,亚洲一区免费在线观看,日韩在线一区二区三区免费视频,波多野吉衣在线观看,日韩一级精品久久久久 | 国产精品v免费视频-国产精品v毛片免费看观看-国产精品v户外野战-国产精品vr无码专区-国产精品va在线观看无码-国产精品va在线观看丝瓜影院 | 国产精品视频视频久久-国产精品视频全国免费观看-国产精品视频区-国产精品视频免费视频-四虎国产精品永免费-四虎国产精品永久在线播放 | 2021天天躁狠狠燥,视频在线观看一区,免费理伦片在线观看全网站,国产精品一区二区资源,免费国产成人高清网站app,欧美国产在线观看 | 国产婷婷视频-国产婷婷丁香久久综合-国产天天在线-国产天天操-小草在线免费观看视频-小草在线观看视频免费2019 | 久久99精品久久久久久噜噜噜-久久99精品久久久久久噜噜丰满-久久99精品久久久久久噜噜-久久99精品久久久久久久野外-午夜精品人妻无码一区二区三区-午夜精品免费 欧美日韩在线成人免费-欧美日韩在线成人看片a-欧美日韩在线不卡-欧美日韩在线播放-自拍偷拍三级-自拍偷拍欧美亚洲 | 毛片黄色视频-毛片黄色片-毛片黄-毛片国产-亚洲剧场午夜在线观看-亚洲久操 | 免费一区在线-免费一区视频-免费一区区三区四区-免费一区二区视频-97dyy影院理论片-97caoporn | 黑人性xxxⅹxxbbbbb-黑人性xxx-黑人同学征服教师麻麻-黑人双渗透-亚洲精品国产成人中文-亚洲精品国产成人99久久 | 在线日韩亚洲-在线日韩视频-在线日韩欧美一区二区三区-在线日韩欧美-久久精品嫩草影院-久久精品免视看国产盗摄 | 婷婷五色,五月天激情婷婷大综合,亚洲综合久久久久久中文字幕,国产ww久久久久久久久久,婷婷综合缴情亚洲五月伊,欧美日韩不卡在线 九九香蕉-九九线精品视频-九九五月天-九九天天影视-天天干b-天天干2018 | 爆乳无码一区二区三区-爆乳熟妇一区二区三区霸乳-爆乳熟妇一区-爆乳少妇在办公室在线观看-爆乳护士一区二区三区在线播放-白丝一区二区三区 | 精品国产91乱码一区二区三区,成人国产一区二区三区精品,亚洲一区免费在线观看,日韩在线一区二区三区免费视频,波多野吉衣在线观看,日韩一级精品久久久久 | 一区二区在线视频观看-一区二区在线免费视频-一区二区在线看-一区二区在线电影-久久精品久久精品国产大片-久久精品久久精品 | 波多野在线-波多野衣结在线精品二区-波多野一区二区三区在线-波多野一区二区-波多野一区-波多野结在线 | 在线看国产,精品国产一区二区二三区在线观看,国产一区二区三区视频,美女一级毛片免费观看,日韩aa在线观看,成人精品一区二区www | 天天插天天搞,国产99在线,九七视频在线观看,2020国产成人精品视频网站,日本久久网,人人澡人人澡人人看青草 | 久久久久综合网久久-久久久久亚洲精品影视-久久久久久久久66精品片-久久久久久久999-阿v天堂2022在线观看-а中文在线天堂 | 18禁欧美猛交XXXXX无码-18禁无遮挡爽爽爽无码视频-18禁止观看免费私人影院-1区2区3区高清视频-日本在线网-日本在线视频一区二区 在线观看日本视频-在线观看日本免费-在线观看日本www-在线观看日本-久久亚洲精品成人-久久亚洲精品tv | 毛片黄色视频-毛片黄色片-毛片黄-毛片国产-亚洲剧场午夜在线观看-亚洲久操 |