趙子龍,李 妮,周衛(wèi)斌,游國棟
(天津科技大學,天津 300222)
全球能源日益枯竭,環(huán)境污染問題逐步凸顯,可持續(xù)能源的開發(fā)、利用尤為重要,其中以風能為代表的風力發(fā)電技術越來越受到世界各國的高度關注。為了能夠高效、靈活地應用風能資源發(fā)電,使風電機組穩(wěn)定可靠運行,考慮采用風電場監(jiān)控與數(shù)據(jù)采集(SCADA)系統(tǒng)解決該問題。系統(tǒng)主要對現(xiàn)場數(shù)據(jù)實時采集、調(diào)節(jié)運行參數(shù)、查詢歷史數(shù)據(jù)以及故障報警。目前我國風電場SCADA系統(tǒng)的底層PLC監(jiān)控普遍采用國際標準OPC協(xié)議進行通信,該技術的應用在很大程度上解決了各工控PLC廠家之間通信難的問題。但是隨著工業(yè)監(jiān)控領域的發(fā)展,OPC的應用只局限于本地局域網(wǎng),無法通過防火墻、不支持互聯(lián)網(wǎng)通信的弊病越發(fā)明顯[1]。本文重點分析了OPC XML-DA通信協(xié)議的開發(fā),將其應用到SCADA系統(tǒng)中以實現(xiàn)可靠的遠程通信,解決現(xiàn)有SCADA系統(tǒng)中OPC通信協(xié)議無法與互聯(lián)網(wǎng)連接的弊病。
隨著工業(yè)信息技術的發(fā)展,傳統(tǒng)工業(yè)控制系統(tǒng)中不同廠家的非標準通信方式導致系統(tǒng)的可靠性、穩(wěn)定性及擴展性較差,不利于系統(tǒng)的后期拓展及維護,阻礙了工控行業(yè)的自動化、智能化發(fā)展。為了解決軟硬件設備之間的數(shù)據(jù)接口問題,OPC技術隨之產(chǎn)生。它將OPC客戶與服務器在物理上分開,減少硬件制造商和軟件開發(fā)商之間的依賴,極大地提高了雙方的工作效率;有效解決了工控行業(yè)復雜驅動程序造成的數(shù)據(jù)接口問題,減少資源浪費,提升通信質(zhì)量等[2]。
由于OPC DA技術不能滿足互聯(lián)網(wǎng)遠程監(jiān)控的需求,故OPC基金會推出OPC XML-DA規(guī)范著重解決OPC DA技術的集成性、通用性和開放性等問題。OPC XML規(guī)范根據(jù)Web Service整體概念,將OPC應用擴展到互聯(lián)網(wǎng),使得企業(yè)能夠通過Internet發(fā)布OPC通信指令,為解決系統(tǒng)不能通過防火墻,僅限于本地局域網(wǎng)的問題提供了研究方向,從而高效實時地進行通信調(diào)度。
傳統(tǒng)的風電場監(jiān)控系統(tǒng)由于采用OPC DA技術,故不支持互聯(lián)網(wǎng)通信,僅局限于本地局域網(wǎng)。因此,本文針對風電場監(jiān)控需求,提出采用基于OPC XML-DA技術的遠程監(jiān)控系統(tǒng),并且介紹了OPC XML-DA服務器及客戶端的具體組成。
實現(xiàn)風電場的遠程在線監(jiān)控,關鍵是設計一個OPC XML-DA服務器,即在OPC DA服務器的基礎上進行二次開發(fā),通過一個XML封裝器,將工控設備中已有的OPC DA服務器XML化,使系統(tǒng)在保持較高性能的同時滿足跨平臺集成的要求,并通過Internet傳遞數(shù)據(jù)[4]。
OPC XML-DA服務器與OPC DA服務器組成基本相同,由服務器對象(Server)、組對象(Group)和項對象(Item)組成。其中服務器對象提供數(shù)據(jù)源以及數(shù)據(jù)源訪問的方法,可以動態(tài)的創(chuàng)建或釋放組對象,由一個或多個OPC組對象及OPC瀏覽器對象組成。OPC組對象通過OPC項對象的集合進行數(shù)據(jù)訪問,滿足OPC應用程序要求的數(shù)據(jù)訪問方式,由一個或多個OPC項對象組成[5]。其中OPC服務器的框架結構如圖1所示。
圖1 OPCDA服務器的框架結構圖
OPC XML-DA服務器支持8種服務,具體類型有:Browse、Get Properties、Get Status、Read、Write、Subscribe、Subscription Cancel和Subscription Polled Refresh。
根據(jù)風電場監(jiān)控系統(tǒng)的實際需求分析,OPC XML-DA客戶端可以對OPC XML-DA規(guī)定的8項基本服務進行管理操作,此外還具有報警、報表、曲線顯示等功能。
實現(xiàn)瀏覽OPC服務器的步驟包括:創(chuàng)建瀏覽器對象,通過該對象的接口獲得OPC服務器名稱列表,再添加OPC組對象及項對象,進行數(shù)據(jù)交換。讀取標簽數(shù)據(jù)。其具體實現(xiàn)過程如下:
(1)創(chuàng)建一個接口對象
Opc.IDiscovery discover=new OpcCom.ServerEnumerator();
(2)創(chuàng)建一個服務器對象,并實例化
Opc.Server[] servers=discover.GetAvailableServers(Specification.COM_DA_20, Dns.GetHostName(), null);
(3)連接服務器
KepServer.Connect();
(4)向服務器添加一個OPC組對象
registeredGroup=(Opc.Da.Subscription)KepServer.CreateSubscription(state);
(5)創(chuàng)建數(shù)據(jù)項item數(shù)組對象
Item[] items=new Item[ItemNum];
(6)向OPC組對象中添加OPC數(shù)據(jù)項item對象
registeredGroup.AddItems(items);
(7)讀取kep組中的數(shù)據(jù)
public void ReadItemValue()
{
ItemValueResult[] values=registeredGroup.Read(registeredGroup.Items);
foreach (ItemValueResult item in values)
{
if (item.Quality=Quality.Good)
{
DataDic[item.ItemName].DataQuality=true;
DataDic[item.ItemName].DataValue=System.Convert.ToInt32(item.Value);
}
else
{
DataDic[item.ItemName].DataQuality=false;
}
}
}
(8)寫入kep組中的數(shù)據(jù)
public void WriteItemValue()
{
int writeNum=0;
foreach (ItemDataClass itemData in DataDic.Values)
{
if (itemData.WriteOnce)
writeNum++;
}
if (writeNum > 0)
{
int tempcount=0;
ItemValue[] itemValue=new ItemValue[writeNum];
foreach (ItemDataClass itemData in DataDic.Values)
{
if (itemData.WriteOnce)
{
itemValue[tempcount]=new ItemValue(itemData.DataItem);
itemValue[tempcount++].Value=itemData.DataValue;
itemData.WriteOnce=false;
}
}
registeredGroup.Write(itemValue);
}
}
}
(9)斷開服務器連接
KepConnected=false;
本文簡要介紹了OPC XML技術及其實際應用。工業(yè)現(xiàn)場設備可以通過開發(fā)OPC XML-DA服務器和OPC XML-DA客戶端實現(xiàn)企業(yè)的互聯(lián)網(wǎng)在線監(jiān)控,結合本地局域網(wǎng)監(jiān)控,實現(xiàn)線上、線下雙重監(jiān)控,提高了監(jiān)控質(zhì)量和管理效率,使系統(tǒng)高效、經(jīng)濟、安全的運行。
參考文獻:
[1]宋國輝.基于OPC XML-DA技術及.NET平臺的遠程監(jiān)控系統(tǒng)設計[D].蘭州:蘭州理工大學, 2012.
[2]王華忠.監(jiān)控與數(shù)據(jù)采集(SCADA)系統(tǒng)及其應用(第二版)[M].北京:電子工業(yè)出版社, 2010.
[3]盧建剛,方弢,許鋒,王智,孫優(yōu)賢.基于XM L技術的分布式現(xiàn)場總線遠程監(jiān)控系統(tǒng)設計[J].信息與控制, 2004,05(33):609-613.
[4]戚中奎,林果園,孫統(tǒng)風.OPC數(shù)據(jù)訪問服務器的研究與實現(xiàn)[J].計算機工程與設計, 2011,04(32):1517-1520.
[5]馬亮,張志鴻.OPC DA服務器的設計與實現(xiàn)[J].微計算機信息, 2008,09(24):228-230.