劉鋼+劉馮洋
【摘要】 在回顧控制系統(tǒng)報警功能的基礎(chǔ)上上,綜合分析了基于Modbus的DCS數(shù)據(jù)通信、基于OPC的DCS數(shù)據(jù)通信和基于實時歷史數(shù)據(jù)庫的數(shù)據(jù)采集,給出了數(shù)據(jù)通信在火電廠語音報警系統(tǒng)中的應(yīng)用方法和實例。
【關(guān)鍵詞】 語音報警數(shù)據(jù)采集 ModbusOPC
一、引言
報警系統(tǒng)作為流程型生產(chǎn)企業(yè)安全生產(chǎn)不可或缺的重要環(huán)節(jié),是大型火電單元機組熱工自動化控制、報警、監(jiān)測、保護的四大功能之一[1],也是火電廠運行人員實際集中監(jiān)控過程中依賴程度很高的重要系統(tǒng)。國內(nèi)外的主要分散控制系統(tǒng)(DCS)中均設(shè)置了專門的報警模塊,但DCS中的報警模塊一般采用顯示器或光字牌等形式實現(xiàn),這類實現(xiàn)方式對運行人員的主動性要求較高,即使通過聲音方式進行提醒,也往往是單一的警示聲,這并不利于運行人員快速發(fā)現(xiàn)異常并定位異常位置進而快速確認報警進行下一步工作,因此在傳統(tǒng)的DCS系統(tǒng)之外,需要加裝專門的語音報警系統(tǒng)以語音的方式明確地播報報警類型[2-3]。DCS是火電廠信息化框架中的底層現(xiàn)場數(shù)據(jù)來源,以外加裝置形式存在的語音報警系統(tǒng)需要通過數(shù)據(jù)通信的方式從DCS(或輔控等其它主要控制系統(tǒng))中獲取生產(chǎn)數(shù)據(jù)并進行處理,本文主要討論火電廠1000MW機組DCS加裝語音報警系統(tǒng)中的數(shù)據(jù)通信問題。
二、基于Modbus的DCS數(shù)據(jù)通信
Modbus是由Modicon提出并實現(xiàn)的工業(yè)現(xiàn)場總線協(xié)議,是各家DCS生產(chǎn)廠商均支持的通用工業(yè)標(biāo)準(zhǔn),因此Modbus是從DCS進行數(shù)據(jù)采集的首選通信方式。若語音報警系統(tǒng)設(shè)置在電子間或工程師站,距離作為通信站的DCS控制站較近,一般采用基于串行異步通信的Modbus協(xié)議,如果距離較遠,則可采用基于TCP/IP協(xié)議棧的Modbus-TCP協(xié)議,本文重點討論基于串口的情況。
標(biāo)準(zhǔn)Modbus端口采用的是定義了連接器、連接電纜、波特率、基本校驗方法、信號等級的RS232兼容串口,Modbus控制器使用“主-從”模式進行通信的,即主站以查詢方式主動發(fā)起數(shù)據(jù)連接,從站根據(jù)現(xiàn)場情況和主站指令進行響應(yīng)。在語音報警系統(tǒng)的數(shù)據(jù)采集過程中,語音報警系統(tǒng)的數(shù)據(jù)采集程序以主站方式存在,DCS通信模件以從站的方式存在,通信的發(fā)起是由語音報警系統(tǒng)發(fā)起的。
由于DCS中的Modbus模件采用的通訊模式是RTU(遠程終端單元),因此語音報警系統(tǒng)主要采用RTU方式進行通信,典型的Modbus信息幀如圖1所示。其中ADU是應(yīng)用數(shù)據(jù)單元,PDU是協(xié)議數(shù)據(jù)單元[4]。
根據(jù)以上分析,可知基于Modbus的數(shù)據(jù)采集過程,如圖2所示。
為了確保DCS中報警信息與語音報警系統(tǒng)中報警信息的一致性,語音報警系統(tǒng)僅從DCS中獲取開關(guān)量(線圈狀態(tài))而不是獲取模擬量進行比對,因此,整個通訊過程僅需要使用功能碼“01”讀線圈狀態(tài)。當(dāng)DCS從站地址為1時,典型的請求指令(請求起始地址為1的16個數(shù)據(jù)點)和回應(yīng)指令如圖3所示。
三、基于OPC的DCS數(shù)據(jù)通信
OPC是基于微軟DCOM實現(xiàn)的工業(yè)通信標(biāo)準(zhǔn),一般由DCS實現(xiàn)OPC服務(wù)器并通過專門內(nèi)部協(xié)議與OPC服務(wù)器進行通信,客戶端通過OPC服務(wù)器獲取現(xiàn)場數(shù)據(jù)。在語音報警系統(tǒng)中實現(xiàn)OPC客戶端即可完成現(xiàn)場數(shù)據(jù)采集。在編制OPC客戶端時,首先實現(xiàn)OPC對象,由此靠右使用OPC對象的各類屬性和方法[5],典型的OPC服務(wù)器對象如圖4所示。
典型的訪問OPC服務(wù)器數(shù)據(jù)代碼如下(以C#為例):
//建立OPC服務(wù)器
pIOPCServer = (IOPCServer)Activator.CreateInstance(svrCo mponenttyp);
//建立OPC組
p I O P C S e r v e r . A d d G r o u p ( G R O U P _ N A M E , 0 , d w R e q u e s t e d U p d a t e R a t e , h C l i e n t G r o u p , h T i m e B i a s . A d d r O f P i n n e d O b j e c t ( ) , h D e a d b a n d . AddrOfPinnedObject(),LOCALE_ID, out pSvrGroupHandle, out pRevUpdateRate, ref iidRequiredInterface, out pobjGroup1);
//定義OPC點并進行初始化,初始化內(nèi)容包括:szItemID、hClient、bActive、dwBlobSize
OPCITEMDEF opcitem = new OPCITEMDEF();
//添加數(shù)據(jù)點
((IOPCItemMgt)pobjGroup1).AddItems(LO.Count, ItemDeffArray, out pResults, out pErrors);
//讀取數(shù)據(jù)值
OPCITEMRESULT result = (OPCITEMRESULT)Marshal. PtrToStructure(pos, typeof(OPCITEMRESULT));
四、基于實時歷史數(shù)據(jù)庫應(yīng)用開發(fā)接口的數(shù)據(jù)通信
在諸如DCS負荷較高、DCS通信模件不足等情況下,需要從SIS(廠級監(jiān)控信息系統(tǒng))中間接獲取現(xiàn)場數(shù)據(jù)。SIS中一般采用諸如PI、eDNA等實時歷史數(shù)據(jù)庫作為核心,通過這些實時歷史數(shù)據(jù)庫提供的API(應(yīng)用開發(fā)接口)可獲取數(shù)據(jù)。
對于eDNA數(shù)據(jù)庫,一般采用DNAGetRTValue方法獲取實時值。該函數(shù)的原型為:
IntWINAPI DNAGetRTValue(const char *szPoint,double*pdValue);
在使用時打包為C#函數(shù)
[DllImport(“ezdnaapi.dll”,EntryPoint=”DNAGetRTVal ue”)]
Public static extern intDNAGetRTValue(string szPoint,ref double pdValue);
其中szPoint是要獲取數(shù)據(jù)點的點名,通過對報警點表循環(huán)調(diào)用該函數(shù),即可獲取各個開關(guān)量的狀態(tài),從而進行報警。
對于PI數(shù)據(jù)庫,可以選擇使用PI-SDK進行訪問,一般的訪問步驟包括:
1)連接到PI
PISDK.IPISDK piSDK= new PISDK.PISDKClass();
PISDKDlg.ConnectionspiConn=new PISDKDlg. ConnectionsClass();
PISDK.ServerpiServer;
piServer=piSDK.Servers[“192.168.103.101”];
piConn.Login(ref piServer,refUID,refPWD,true,false);
2)讀取數(shù)據(jù)
PISDK.PIPointpiPoint;
piPoint=piServer.PIPoints[“TagName”];
piTagValue=Convert.ToDouble(piPoint.Data.Snapshot.Value);
五、現(xiàn)場應(yīng)用
以上對語音報警系統(tǒng)中現(xiàn)場數(shù)據(jù)采集常用方法進行了分析,在實際應(yīng)用中需要根據(jù)現(xiàn)場實際情況進行分析。以平圩電廠三期2*1000MW機組工程為例,該工程采用Ovation作為DCS,以DCS為監(jiān)控核心,實現(xiàn)對單元機組機、爐、電集中控制。Ovation按照開放式網(wǎng)絡(luò)標(biāo)準(zhǔn)建立了整套工業(yè)系統(tǒng)[6],在設(shè)計期加裝了Mobus串口通信模件并提供了開放的工業(yè)化通信環(huán)境,因此在該工程中采用Modbus與DCS進行通信,通信數(shù)據(jù)點每臺機組232個,其中備用點80個,數(shù)據(jù)點涵蓋了電力生產(chǎn)的各個重要環(huán)節(jié),通信速度可以達到每秒1000點次,完全可以滿足語音報警的數(shù)據(jù)要求。
參 考 文 獻
[1]黃勇. 火電廠熱工自動化的安全系統(tǒng)研究[J]. 硅谷,2011,20:81.
[2]李延華.1000MW機組熱控自動化設(shè)計方案探討[J].中國高新技術(shù)企業(yè),2013,36:49-51.
[3]王君宇,王明春.電廠新型語音報警系統(tǒng)的研究和開發(fā)[J].發(fā)電設(shè)備,2014,06:421-423+427.
[4] 于樹新,戴毅姜,周黎輝,陳潔.Modbus協(xié)議在DCS通信中的應(yīng)用[J].儀器儀表與分析監(jiān)測,2007,01:1-2+6.
[5] 劉志強.OPC數(shù)據(jù)存取服務(wù)器和客戶端的研究與設(shè)計[D].內(nèi)蒙古大學(xué),2011.
[6] 李濱.OVATION控制系統(tǒng)在1000MW超超臨界機組的應(yīng)用[J].華東電力,2012,08:1452-1455.