目前國內(nèi)從事風(fēng)電機(jī)組整機(jī)開發(fā)和研制的企業(yè)估計約40多家,大型風(fēng)電場中的風(fēng)電機(jī)組和監(jiān)控系統(tǒng)一般由多個廠商提供,各廠商的監(jiān)控系統(tǒng)互不兼容,對風(fēng)電場中不同類型風(fēng)電機(jī)組的統(tǒng)一監(jiān)控與管理則缺乏有效研究,難以進(jìn)行統(tǒng)一維護(hù)與管理。針對當(dāng)前風(fēng)電場中風(fēng)機(jī)控制系統(tǒng)及電力監(jiān)控系統(tǒng)多系統(tǒng)并存的情況,將OPC技術(shù)引入其中,以實現(xiàn)風(fēng)電場中風(fēng)機(jī)控制系統(tǒng)和電氣控制系統(tǒng)的無縫連接,解決了風(fēng)電場多系統(tǒng)互聯(lián)問題。
1. OPC的關(guān)鍵技術(shù)
OPC(OLE for Process Control)是對象鏈接和嵌入技術(shù)在過程控制方面的應(yīng)用,為工業(yè)自動化軟件的開發(fā)提供了統(tǒng)一的標(biāo)準(zhǔn)。OPC技術(shù)的目的就是為現(xiàn)場設(shè)備或數(shù)據(jù)庫中的大量數(shù)據(jù)源之間的通信提供統(tǒng)一的傳輸標(biāo)準(zhǔn),使得系統(tǒng)集成更加方便。OPC技術(shù)也是微軟公司為了把Windows應(yīng)用于控制系統(tǒng)而和控制界共同推出的一項技術(shù)。它以微軟公司的組件對象模型/分布式組件對象模型(COM/DCOM)技術(shù)為基礎(chǔ),為工業(yè)控制軟件定義了一套標(biāo)準(zhǔn)的對象、接口和屬性,通過這些對象接口,實現(xiàn)了應(yīng)用程序之間數(shù)據(jù)交換的標(biāo)準(zhǔn)化,從而大大提高自動化設(shè)備之間的開放性和互操作性。
A.COM與DCOM技術(shù)
隨著軟件技術(shù)的迅速發(fā)展,傳統(tǒng)的程序升級已經(jīng)不能滿足技術(shù)發(fā)展的需要,解決這個問題的方法就是將應(yīng)用程序分割成一些小的應(yīng)用或組件,然后將這些組件在運行時組裝起來形成應(yīng)用程序。在組件技術(shù)規(guī)范方面主要有兩個標(biāo)準(zhǔn),其中一個是由微軟推出的組件對象模型(Component Object Model,COM)技術(shù)。該技術(shù)提供了各個軟件部件以標(biāo)準(zhǔn)模式在一起工作的框架和技術(shù)規(guī)范,此規(guī)范為了保證能夠互操作、客戶和組件應(yīng)遵循的一些二進(jìn)制和網(wǎng)絡(luò)標(biāo)準(zhǔn),任意的兩個組件之間可以在不同的操作環(huán)境下進(jìn)行通訊,甚至使用不同的開發(fā)語言開發(fā)的組件也能實現(xiàn)。COM是一種軟件組件間相互數(shù)據(jù)交換的有效方法。
COM接口的COM規(guī)范中最重要的部分,COM規(guī)范的核心內(nèi)容就是對接口的定義,COM都是以接口的形式出現(xiàn)。組件與組件之間、組件與客戶程序之間都要通過接口進(jìn)行交互。接口成員函數(shù)將負(fù)責(zé)為客戶過其他組件提供服務(wù)。對于COM來說,接口是一個包含一個函數(shù)指針數(shù)組的內(nèi)存結(jié)構(gòu)。對于客戶來說,一個組件就是一個接口集,任何一個具備相同接口的組件都可對組件都可以對此進(jìn)行相對于其他組件透明的替換。
B.基于OPC的客戶機(jī)/服務(wù)器數(shù)據(jù)交換模型
COM技術(shù)的出現(xiàn)為控制設(shè)備和控制管理系統(tǒng)之間的數(shù)據(jù)交換簡單化提供了技術(shù)基礎(chǔ)。但是如果不提供各異標(biāo)準(zhǔn)的化COM接口,各個控制設(shè)備廠家的COM組件之間的相互連接仍然是不可能的。
隨著基于OPC標(biāo)準(zhǔn)的控制組件的推廣和普及,不僅使控制系統(tǒng)功能的增減和組件的置換更加簡單,而且使過程數(shù)據(jù)的訪問也變得容易。比如,符合OPC規(guī)范的過程控制程序可以直接和數(shù)據(jù)分析軟件包或電子表格應(yīng)用程序連接。
2.OPC數(shù)據(jù)采集系統(tǒng)設(shè)計
在傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)中,監(jiān)控與數(shù)據(jù)采集系統(tǒng)(SCADA)、人機(jī)接口(HMI)、組態(tài)軟件等應(yīng)用程序都是通過驅(qū)動程序與現(xiàn)場設(shè)備進(jìn)行通信的,但驅(qū)動程序有著它自身的局限性,如同一設(shè)備為適應(yīng)不同的客戶端應(yīng)用程序需要開發(fā)不同的驅(qū)動程序,造成勞動重復(fù)。一旦硬件設(shè)備升級,先前開發(fā)的驅(qū)動程序也應(yīng)做相應(yīng)的修改。驅(qū)動程序一般采用動態(tài)鏈接庫(DLL)的形式,動態(tài)數(shù)據(jù)交換(DDE)是其進(jìn)行數(shù)據(jù)交換的主要方式,但這種方式不允許多個應(yīng)用程序同時訪問一個設(shè)備。
A.風(fēng)電場前置機(jī)數(shù)據(jù)采集系統(tǒng)設(shè)計
由于OPC定義了一套基于Microsoft OLE/COM或DCOM的接口訪問方式,符合或支持OPC協(xié)議的應(yīng)用程序只要基于TCP/IP協(xié)議可以互相訪問,就可以通過OPC協(xié)議交換數(shù)據(jù)。風(fēng)場前置接口機(jī)上安裝多塊網(wǎng)卡,需要和風(fēng)機(jī)生產(chǎn)廠家提供的監(jiān)控系統(tǒng)的工程師站相連,其IP地址設(shè)置成與工程師站在同一網(wǎng)段即可。
由于目前各風(fēng)機(jī)生產(chǎn)廠商開放程度的不同,丹麥的Vestas風(fēng)機(jī)開發(fā)了OPC接口,用于第三方廠商的接入,西班牙歌美薩風(fēng)機(jī)是提供了其數(shù)據(jù)庫的接口軟件(DLL),東汽、華銳等國產(chǎn)風(fēng)機(jī)是與風(fēng)機(jī)控制器進(jìn)行輪詢,轉(zhuǎn)發(fā)為MODBUS通訊協(xié)議,提供給第三方,由第三方完成。
B. 風(fēng)電場OPCSever接口軟件設(shè)計
本文以華銳風(fēng)機(jī)1500為例,介紹風(fēng)電場OPCSever接口軟件的設(shè)計方案。
華銳風(fēng)機(jī)是提供與風(fēng)機(jī)控制器的進(jìn)行通訊的MODBUS數(shù)據(jù)通訊服務(wù)器軟件,其軟件實現(xiàn)與現(xiàn)場風(fēng)機(jī)進(jìn)行實時數(shù)據(jù)交互,我們設(shè)計將MODBUS/TCP包裝成OPCSever.在使用MODBUS/TCP協(xié)議規(guī)范時,采用面向連接的方法,在通信時要經(jīng)過建立連接、傳輸數(shù)據(jù)、釋放連接三個步驟。
a. MODBUS/TCP的報文解析
(1)MODBUS/TCP請求報文:00 00 00 00 00 06 01 03 00 01 00 78 16 31 前七位為MBAP頭,分別為事物處理標(biāo)識符高位(1位),事物處理標(biāo)識符低位(1位),協(xié)議標(biāo)識符(2位),長度標(biāo)識符(2位),單元標(biāo)識符(1位)。后七位為MODBUS請求報文,03為功能碼,為讀取保持寄存器的內(nèi)容,00 01為起始地址,00 78為寄存器數(shù)量,16 31為校驗碼,校驗方式為CRC循環(huán)冗余校驗。
(2)MODBUS/TCP接收報文:00 00 00 00 00 F3 01 03 F0 00 00 40 E0… 從第十位開始,采用單浮點型float,每兩位報文為一個寄存器響應(yīng)數(shù)據(jù),其中高字節(jié)在前,低字節(jié)在后。
b. OPCSever數(shù)據(jù)訪問的實現(xiàn)
<