999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于OPC協議的省級計量中心檢定區溫濕度接口函數開發及實現

2015-10-11 08:56:52范志夫曹宏純湯振華
江西電力 2015年3期

范志夫,曹宏純,湯振華

(國網江西省電力公司計量中心,江西南昌 330096)

0 引言

省級計量中心承擔著所轄電能計量設備和電能信息采集終端檢定、檢測工作。而檢定環境對于檢定結果的準確性有著至關重要的影響,檢定報告中環境溫濕度也是必須標明的。根據省級計量中心的建設要求,必須配備大型中央空調及排風系統。以江西省電力公司計量中心為例,該空調系統采用SIMATIC WINCC開發編寫,在自身控制主機界面上能夠顯示實時溫濕度等參數。但生產調度平臺及自動化檢定線系統卻無法直接從此取得需要的溫濕度參數。本文介紹一種基于OPC協議,能夠讀取WINCC數據存儲區溫濕度數據的方法,并在此基礎上開發相應的接口函數,以提供數據給第三方實時調用。

1 SIMATICWINCC及OPC協議簡介

SIMATIC?WinCC?基于Windows平臺,能為工業領域提供完備的監控與數據采集(SCADA)功能,涵蓋單用戶系統直到支持冗余服務器和遠程Web客戶機解決方案的多用戶系統。WinCC是跨公司垂直集成交換信息的基礎,它采用了工廠智能,可以實現更大程度的生產過程的透明性。WinCC不僅包含開放的編程接口,還包含大量已經開發了的WinCC選件和WinCC附加件,用于給用戶提供各種功能的擴展。隨著自設備級直至企業級工廠智能應用的整合,西門子工業自動化與驅動技術集團(IA&DT)可以提供一種完美、靈活的“一站式”解決方案。SIMATIC WinCC工廠智能選件有效、智能地利用數據,并實時地生成關鍵信息,從而可以改善公司的決策過程。該過程能進一步降低工廠成本、防止原料浪費,更好地利用生產設施,確保更高的管理效率和管理有效性。SIMATICWinCC工廠智能選件實現了監控級和制造執行系統級的連接,從而可以高效地進行生產數據的采集、歸檔、壓縮、分析和發布工作,使生產過程具有更大的透明性。

OPC全稱是Object Linking and Embedding(OLE)for Process Control,它的出現為基于Windows的應用程序和現場過程控制應用建立了橋梁。在過去,為了存取現場設備的數據信息,每一個應用軟件開發商都需要編寫專用的接口函數。由于現場設備的種類繁多,且產品的不斷升級,往往給用戶和軟件開發商帶來了巨大的工作負擔。通常這樣也不能滿足工作的實際需要,系統集成商和開發商急切需要一種具有高效性、可靠性、開放性、可互操作性的即插即用的設備驅動程序。OPC以OLE/COM/DCOM技術為基礎,采用客戶/服務器模式,為工業自動化軟件面向對象的開發提供了統一的標準,這個標準定義了應用Microsoft操作系統在基于PC的客戶機之間交換自動化實時數據的方法,用這項標準后,硬件開發商將取代軟件開發商為自己的硬件產品開發統一的OPC接口程序,而軟件開發者可免除開發驅動程序的工作,充分發揮自己的特長,把更多的精力投入到其核心產品的開發上。

2 OPC讀數據方式

OPC讀數據有3種方式:同步、異步、訂閱。

同步通訊時,OPC客戶程序向OPC服務器進行請求時,OPC客戶程序必須等到OPC服務器對應的響應全部完成以后才能返回,在此期間OPC客戶程序一直處于等待狀態,若進行讀操作,那么必須等待OPC服務器響應后才返回(如圖1所示)。因此在同步通訊時,如果有大量數據進行操作或者有很多OPC客戶程序對OPC服務器進行讀操作,必然造成OPC客戶程序的阻塞現象。因此同步通訊適用于OPC客戶程序較少,數據量較小時的場合。

圖1 OPC同步方式讀數據

異步通訊時,OPC客戶程序對服務器進行請求時,OPC客戶程序請求后立刻返回,不用等待OPC服務器的響應,可以進行其它操作。OPC服務器完成響應后再通知OPC客戶程序,如進行讀操作,OPC客戶程序通知OPC服務器后離開返回,不等待OPC服務器的讀完成,而OPC服務器完成讀后,會自動的通知OPC客戶程序,把讀結果傳送給OPC客戶程序(如圖2所示)。因此相對于同步通訊,異步通訊的效率更高。

訂閱方式時,OPC客戶程序對服務器進行請求時,OPC客戶程序操作后立刻返回,不用等待OPC服務器的操作,可以進行其它操作,OPC服務器的Group組在組內有數據發生改變時,自動根據更新周期刷新相應的客戶端數據,如圖3所示,客戶端只向OPC服務發送一次請求,之后不再對服務器請求。

圖2 OPC異步方式讀數據

圖3 OPC訂閱方式讀數據

3 OPC數據訪問

總的來說,OPC技術的實現由2部分組成:OPC服務器和OPC客戶應用部分。OPC服務器收集現場設備的數據信息,然后通過標準的OPC接口傳送給OPC客戶端應用。OPC客戶端則通過標準的OPC接口接收數據信息。

OPC服務器通常支持2種類型的訪問接口,它們分別為不同的編程語言環境提供訪問機制,包括自動化接口標準(Automation Interface Standard)和自定義接口標準(Custom Interface Standard)。自動化接口通常是為基于腳本編程語言而定義的標準接口,可以使用VisualBasic、Delphi、PowerBuilder等編程語言開發OPC服務器的客戶應用。,而自定義接口適用于C和C++應用程序,它比自動化接口更高效,功能更強大。

一般地講,一個OPC數據訪問服務器由幾類對象組成(如圖4所示):服務器(Server)、組(Group)和項(Item)。OPC服務器對象包括有關服務器的信息而且作為一個容器為OPC組對象服務。OPC組對象包含了有關它自身的信息而且提供了邏輯上組織OPC項的機制。對于OPC客戶端提供了一種組織數據的方法。例如,在一個特殊的操作顯示或報告中組可以聲稱項數據能被讀和寫。可以在客戶端和組里面的項之間創建基于連接的例外,也可根據需要使之允許或禁止。OPC客戶端能配置OPC服務器提供給OPC客戶端的數據變化率。

圖4 OPC對象

4 OPC接口函數開發

計量中心中央空調系統自帶的軟件溫濕度顯示界面如圖5所示,各區域的溫濕度標有相應的數字,每個區域對應著相應的WINCC數據區的變量,因此,需開發接口函數讀取相應的數據區的內容,最終獲取溫濕度數據。

OPC接口開發的一般流程見圖6。

圖5 計量中心廠區空調系統溫濕度分布

圖6 OPC接口開發流程

由于獲取溫濕度的數據量較小,故采用同步讀數據的方式來實現,具體實現及關鍵代碼如下:

(1)首先需安裝并注冊相關的OPC自動化接口服務,并添加命名空間:(需要在項目中添加相應的引用)

using OPCAutomation;

(2)定義OPC相關變量

OPCServer KepServer;

OPCGroups KepGroups;

OPCGroup KepGroup;

OPCItems KepItems;

OPCItem KepItem;

(3)獲取服務器列表并選擇連接OPC服務器,此處服務器為WINCC

privatevoid connectServer()

{

strHostIP="192.168.1.40";//通過IP來獲取計算機名稱,可用在局域網內。

IPHostEntry ipHostEntry=Dns.GetHostByAddress(strHostIP);

strHostName=ipHostEntry.HostName.ToString();

//獲取本地計算機上的OPCServerName

KepServer=new OPCServer();

object serverList = KepServer.GetOPCServers(strHostName);

foreach(stringturn in(Array)serverList)

{

if(turn=="OPCServer.WinCC")

{

servername=turn;

}

}

KepServer.Connect(servername,strHostIP);

}

(4)設置OPC服務組相關屬性

privatevoid SetGroupProperty()

{

KepServer.OPCGroups.DefaultGroupIsActive =true;

KepServer.OPCGroups.DefaultGroupDeadband=0;

KepGroup.UpdateRate=1000;

KepGroup.IsActive=true;

KepGroup.IsSubscribed=true;

}

(5)編寫函數,通過OPC協議讀取WINCC數據區溫濕度數據。

privatestring Readvalue(stringname)

{

connectServer();

KepGroups=KepServer.OPCGroups;

KepGroup = KepGroups.Add("OPCDOTNETGROUP");

SetGroupProperty();

KepItems=KepGroup.OPCItems;

KepItem=KepItems.AddItem(name,0);

object ItemValues;object Qualities;object Time-Stamps;

//同步讀的臨時變量:值、質量、時間戳

KepItem.Read(1,out ItemValues,out Qualities,out TimeStamps);

stringmyvalue=(ItemValues).ToString();

return myvalue;

}

(6)封裝成可供第三方使用者調用的接口函數

public stringgetwenshidu(stringwsd)

{

return Readvalue(wsd);

}

5 接口函數發布

通過IIS發布webservice函數,第三方系統可以直接按照約定調用該函數getwenshidu(string wsd)來返回需要的值,正常返回符合條件數據,錯誤則返回相應錯誤代碼。字符串參數wsd對應著各個區域相應的溫濕度變量名,經過測試,省級計量生產調度平臺及自動化檢定線都能正常的調用接口函數并取得相應的數據。

6 結語

由于OPC協議的出現,軟件開發者無需了解硬件的實質和操作過程,只需遵循OPC標準進行開發,就能夠訪問OPC服務器中的數據,而C#可以根據需要將OPC客戶端方便地和其他應用程序集成在一起。在此介紹了一種基于OPC協議,采用C#進行開發并使用IIS發布的省級計量中心檢定區溫濕度接口函數開發過程。OPC技術結合.NET架構,能夠做到快速、高效的底層數據采集,安全、靈活的數據處理,便捷的信息發布,是一種非常普遍的解決方案。

[1]朱立軍,安娜,陳未如.基于Visual C#的OPC客戶端實現[J].現代電子技,2009(2):171-173.

[2]如何在C#中實現OPC數據訪問[Z].西門子幫助文檔,2009.

[3]楊傳穎,黃德先.基于Microsoft.NETFramework的OPC客戶端的研究與應用[J].微計算機信息,2006(06):1-3.

[4]蔡思文,祁耀斌.OPC客戶端設計及其在監控系統的應用[J].微計算機信息,2007,23(5):106-108.

[5]顧亮,饒豐,寇東升.OPC技術結合.NET架構在系統集成項目中的應用[J].制造業自動化,2006,28(07):74-77.

[6]胡艷菊.C#程序設計[M].北京:北京大學出版社,2012.

主站蜘蛛池模板: 激情网址在线观看| 亚洲三级影院| 日韩中文欧美| 精品国产Ⅴ无码大片在线观看81| 欧美精品影院| 国产精品漂亮美女在线观看| 日韩成人在线视频| 中日韩欧亚无码视频| 午夜精品区| 成人年鲁鲁在线观看视频| 91久久天天躁狠狠躁夜夜| 在线观看视频一区二区| 午夜不卡视频| a在线亚洲男人的天堂试看| 黄色污网站在线观看| 免费av一区二区三区在线| 亚洲区欧美区| 欧美综合区自拍亚洲综合绿色 | 欧美精品1区2区| 国产精品无码影视久久久久久久| 亚洲一区二区黄色| 国产亚洲精品资源在线26u| 日本妇乱子伦视频| 日韩av手机在线| 青草娱乐极品免费视频| 999国内精品久久免费视频| 精品视频一区在线观看| 国产亚洲精品91| 精品成人一区二区三区电影 | 人禽伦免费交视频网页播放| 在线免费亚洲无码视频| 18禁高潮出水呻吟娇喘蜜芽| 亚洲综合欧美在线一区在线播放| 国产一线在线| 亚洲欧美不卡| 国产在线精彩视频论坛| 欧美亚洲一区二区三区在线| 久久久久亚洲AV成人人电影软件 | 欧美成人免费| 国产成人精品一区二区三区| 精久久久久无码区中文字幕| 亚洲码一区二区三区| 色婷婷在线影院| 国产在线高清一级毛片| 免费看av在线网站网址| 国产欧美高清| 22sihu国产精品视频影视资讯| 久久 午夜福利 张柏芝| 色综合五月| 国产精品v欧美| 日韩经典精品无码一区二区| 乱人伦中文视频在线观看免费| 国产第一色| 在线观看国产一区二区三区99| 国产真实自在自线免费精品| 国产成人精品亚洲77美色| 色综合色国产热无码一| 国产网站免费看| 久久久久久尹人网香蕉| 国产免费羞羞视频| 激情爆乳一区二区| 色综合国产| 亚洲国产欧美中日韩成人综合视频| 91久久偷偷做嫩草影院电| 国产尤物视频网址导航| 夜夜操天天摸| 99久久精品国产精品亚洲 | 国产成人亚洲无码淙合青草| 国产精女同一区二区三区久| 亚洲国产亚洲综合在线尤物| 国产亚洲精久久久久久久91| 精品国产91爱| 97成人在线观看| 免费视频在线2021入口| 亚洲日本www| www.99精品视频在线播放| 欧美国产精品不卡在线观看 | 日韩av无码精品专区| 亚洲最大综合网| 九九热精品免费视频| 欧美伦理一区| 人妻免费无码不卡视频|