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.

主站蜘蛛池模板: 国产精欧美一区二区三区| 亚洲午夜片| 国产视频你懂得| 国产微拍一区二区三区四区| 直接黄91麻豆网站| 成人午夜精品一级毛片| 在线人成精品免费视频| 拍国产真实乱人偷精品| 免费a级毛片视频| 国产亚洲一区二区三区在线| 无码国内精品人妻少妇蜜桃视频| 精品福利国产| 亚洲侵犯无码网址在线观看| 亚洲视频黄| 欧美国产日韩在线观看| 在线观看91精品国产剧情免费| 欧美国产日韩在线观看| 亚洲精品无码日韩国产不卡| 五月婷婷亚洲综合| 91破解版在线亚洲| 国产美女主播一级成人毛片| 91口爆吞精国产对白第三集| 无码乱人伦一区二区亚洲一| 成人毛片在线播放| 欧美精品H在线播放| 亚洲国产亚综合在线区| 国产丝袜无码一区二区视频| 日韩成人在线网站| 久久精品国产一区二区小说| 国产免费精彩视频| 久久国产毛片| a级毛片免费看| 国产打屁股免费区网站| 成人免费午间影院在线观看| 精品无码人妻一区二区| 嫩草在线视频| 国产精品久久自在自线观看| 97视频免费在线观看| 2021最新国产精品网站| 久热99这里只有精品视频6| 久久青草免费91观看| 亚洲欧洲自拍拍偷午夜色无码| 国产亚洲欧美在线视频| 99青青青精品视频在线| 国产成人超碰无码| 免费人成网站在线高清| 精久久久久无码区中文字幕| 久久www视频| 国产精品久久久久久久久久久久| 国产精品所毛片视频| 亚洲国产欧洲精品路线久久| 日本91视频| 久久亚洲美女精品国产精品| 欧美性猛交xxxx乱大交极品| 中文字幕波多野不卡一区| 毛片网站在线看| 男女精品视频| 国产午夜精品一区二区三| 亚洲无限乱码| 一级毛片无毒不卡直接观看| 美女视频黄频a免费高清不卡| 91成人在线观看| 午夜啪啪福利| 亚洲性日韩精品一区二区| 日本爱爱精品一区二区| 狠狠色丁香婷婷综合| 毛片久久网站小视频| 免费可以看的无遮挡av无码| 国产亚洲精久久久久久无码AV| 国产在线精彩视频论坛| 国产午夜福利在线小视频| 亚洲香蕉久久| 性做久久久久久久免费看| 久久99国产乱子伦精品免| 国产成人高清精品免费5388| 91久久夜色精品国产网站| 最新国产高清在线| 日韩国产黄色网站| 国产高潮流白浆视频| 欧美日韩国产精品va| 毛片三级在线观看| 最新精品久久精品|