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