方杭杭 馮麗麗 付厚 李爽 王思奇
摘要:本監(jiān)控系統(tǒng)利用Can通信協(xié)議和Socket通信技術(shù),編寫了基于MFC類庫開發(fā)的客戶端程序,系統(tǒng)分為通信模塊、控制模塊、顯示模塊、數(shù)據(jù)存儲(chǔ)模塊等功能模塊,系統(tǒng)可實(shí)現(xiàn)對變流器關(guān)鍵運(yùn)行數(shù)據(jù)及運(yùn)行狀態(tài)實(shí)時(shí)監(jiān)控,對變流器研發(fā)階段功能和性能調(diào)試起到了至關(guān)重要的作用,同時(shí)本系統(tǒng)可應(yīng)用于故障風(fēng)機(jī)問題定位和問題診斷,極大的縮短了問題風(fēng)機(jī)的故障解除時(shí)間。
關(guān)鍵詞:Socket通信;風(fēng)力發(fā)電;變流器;監(jiān)控軟件;MFC
緒論:
風(fēng)電變流器是目前風(fēng)力發(fā)電機(jī)組不可缺少的能量變換單元[1],是風(fēng)力發(fā)電系統(tǒng)的關(guān)鍵設(shè)備,其性能直接影響到風(fēng)電電能質(zhì)量和風(fēng)力發(fā)電系統(tǒng)的可靠性和穩(wěn)定性。
目前國內(nèi)對于變流器的實(shí)時(shí)監(jiān)控主要采用現(xiàn)場 CAN 總線[2]搭配 Lab VIEW 軟件[3]方式,或者采用串口通訊方式[4]進(jìn)行數(shù)據(jù)傳輸,通過這些方式進(jìn)行變流器監(jiān)控的好處是可以獲取到實(shí)時(shí)數(shù)據(jù)且通訊效率與穩(wěn)定性較高,缺點(diǎn)是在這幾種通訊方式下距離要求比較近,只能近距離使用,而變流器研發(fā)場所和風(fēng)電現(xiàn)場的環(huán)境往往比較惡劣,為研發(fā)和維護(hù)人員工作帶來了諸多不便,因此開發(fā)變流器的遠(yuǎn)程監(jiān)控軟件成為了一件十分必要的事情。
本系統(tǒng)設(shè)計(jì)了一款基于CAN通信協(xié)議和Socket通信的變流器遠(yuǎn)程監(jiān)控系統(tǒng),通過光纖將變流器同上位機(jī)連接,可實(shí)現(xiàn)遠(yuǎn)距離實(shí)時(shí)通信。系統(tǒng)的實(shí)現(xiàn)是基于MFC框架的消息映射機(jī)制,并結(jié)合C++語言的單文檔多視圖形式完成的。設(shè)計(jì)并實(shí)現(xiàn)友好的用戶交互界面,使用者可以直觀、清楚的監(jiān)控變流器系統(tǒng)的運(yùn)行狀態(tài),實(shí)現(xiàn)了風(fēng)電變流器的遠(yuǎn)程監(jiān)控與調(diào)試,本監(jiān)控系統(tǒng)功能框圖見圖1。
1.通信模塊
本監(jiān)控系統(tǒng)采用C/S(客戶端/服務(wù)器)模式,將變流器作為服務(wù)器端,基于MFC[5]類庫開發(fā)的C++程序作為通信的客戶端。
1.1 鏈接超時(shí)處理
通信的建立利用CSocket類的Connect函數(shù),通常Socket默認(rèn)的連接超時(shí)時(shí)間≥15S,過長的超時(shí)時(shí)間會(huì)帶來極差的用戶體驗(yàn)。本系統(tǒng)利用函數(shù)timeGetTime(),CancelBlockingCall(),并重載CSocket類的消息響應(yīng)函數(shù)OnMessagePending(),實(shí)現(xiàn)對連接超時(shí)時(shí)間的控制,通過測試,本系統(tǒng)連接超時(shí)時(shí)間設(shè)計(jì)為300ms。
2. 控制模塊
系統(tǒng)通過狀態(tài)燈、控制按鈕、菜單的方式完成界面功能,顯示方式見圖2。
2.1 狀態(tài)燈
系統(tǒng)通過狀態(tài)燈的方式展示變流器實(shí)時(shí)運(yùn)行狀態(tài),狀態(tài)燈分為紅、綠、灰3色,系統(tǒng)通過狀態(tài)燈的不同顏色表示變流器的不同運(yùn)行狀態(tài),變流器的狀態(tài)變化,通過狀態(tài)燈的顏色實(shí)時(shí)展示出來。
2.2 控制按鈕
為滿足用戶操作需要,系統(tǒng)在不同的操作界面設(shè)計(jì)了不同的按鈕,用于向變流器下發(fā)指令,例如啟動(dòng)、停止、暫停、刪除等,按鈕與變流器間的信息交互利用MFC的消息映射機(jī)制完成的。
2.3 菜單
系統(tǒng)通過設(shè)置菜單的方式完成系統(tǒng)功能,利用菜單欄完成系統(tǒng)各功能界面切換,利用鼠標(biāo)單擊左鍵或右鍵菜單欄實(shí)現(xiàn)系統(tǒng)內(nèi)功能添加和設(shè)置。
3. 顯示模塊
3.1數(shù)據(jù)采集及處理
系統(tǒng)與變流器間數(shù)據(jù)通信采用問答式,利用CSocket類的Send和Receive函數(shù)實(shí)現(xiàn)數(shù)據(jù)交互。系統(tǒng)向變流器發(fā)送開始命令,當(dāng)系統(tǒng)收到變流器回傳的正確應(yīng)答后向變流器發(fā)送讀慢參數(shù)指令。系統(tǒng)通過MFC事件函數(shù)timeSetEvent設(shè)置定時(shí)器,定時(shí)讀取來自變流器的應(yīng)答數(shù)據(jù)并根據(jù)通信協(xié)議解析讀取到的數(shù)據(jù)。本系統(tǒng)對數(shù)據(jù)的解析結(jié)合數(shù)據(jù)糾錯(cuò)、數(shù)據(jù)整合等數(shù)據(jù)處理方式,從而保證數(shù)據(jù)的正確性和完整性。
3.2 參數(shù)信息列表顯示
在實(shí)際應(yīng)用中,有一部分設(shè)備運(yùn)行參數(shù)是需要實(shí)時(shí)查看并顯示的,因此需要對這一批監(jiān)控參數(shù)進(jìn)行定時(shí)采集并顯示,由于變流器參數(shù)數(shù)量眾多,本系統(tǒng)利用列表控件List將參數(shù)信息顯示在列表中,方便用戶隨時(shí)查看,顯示方式如圖3所示。
3.3數(shù)據(jù)波形實(shí)時(shí)繪制
為方便觀察目標(biāo)參數(shù)的實(shí)時(shí)運(yùn)行趨勢,系統(tǒng)設(shè)計(jì)了示波器功能和數(shù)字記錄儀功能,2組功能模塊利用繪圖函數(shù)DrawText()、MoveTo()、LineTo()將變流器運(yùn)行數(shù)據(jù)通過曲線繪制方式實(shí)時(shí)展示在界面上,數(shù)據(jù)曲線實(shí)時(shí)繪制圖見圖4。用戶通過鼠標(biāo)拖拽方式可實(shí)現(xiàn)對數(shù)據(jù)波形的放大,便于用戶對數(shù)據(jù)進(jìn)行分析。
本系統(tǒng)最多可同時(shí)顯示12個(gè)參數(shù)的實(shí)時(shí)曲線信息,示波器實(shí)時(shí)曲線參數(shù)12個(gè),數(shù)據(jù)記錄儀實(shí)時(shí)曲線參數(shù)12個(gè)。系統(tǒng)可選擇參數(shù)列表中任意感興趣參數(shù)添加到示波器或數(shù)據(jù)記錄儀上,參數(shù)的添加可通過參數(shù)列表界面鼠標(biāo)單基右鍵功能完成。
曲線繪制區(qū)具備放大曲線功能,可根據(jù)需要通過按住鼠標(biāo)左鍵選擇感興趣曲線區(qū)域,系統(tǒng)自動(dòng)對選中區(qū)域進(jìn)行重新繪制,同時(shí)可通過鼠標(biāo)右鍵菜單欄回復(fù)原曲線波形,同時(shí)系統(tǒng)具備更改曲線的顏色、寬度、坐標(biāo)軸上下限等功能,用戶可根據(jù)需要進(jìn)行修改。
變流器在實(shí)際運(yùn)行中,對于參數(shù)變化可能存在臨時(shí)突變的情況,通過簡單的數(shù)據(jù)數(shù)值顯示的方式無法直觀反映,將數(shù)據(jù)的數(shù)值變化通過波形的方式展示出來,更有利于研發(fā)人員直觀觀察數(shù)據(jù)變化趨勢從而對數(shù)據(jù)進(jìn)行分析。
3.4 ?信息交互方法
為了滿足用戶和系統(tǒng)間交互的需要,系統(tǒng)利用MFC的菜單功能和鼠標(biāo)單基和雙擊左右鍵功能,結(jié)合MFC的消息響應(yīng)機(jī)制,在系統(tǒng)中通過消息響應(yīng)函數(shù)對用戶操作的各類指令進(jìn)行響應(yīng)。例如,鼠標(biāo)操作參數(shù)列表主要通過通知消息ON_NOTIFY分別響應(yīng)NM_RCLICk、NM_DBCLK、NM_CLICK消息來完成,并通過命令消息ON_COMMAND向界面線程發(fā)送自定義消息,系統(tǒng)根據(jù)接收到的消息類型在其消息響應(yīng)函數(shù)OnMessage()中分別進(jìn)行相應(yīng)的處理。
4. 數(shù)據(jù)存儲(chǔ)模塊
4.1 數(shù)據(jù)存儲(chǔ)
系統(tǒng)利用ODBC數(shù)據(jù)庫存儲(chǔ)變流器相關(guān)參數(shù)信息,系統(tǒng)將接收到的數(shù)據(jù)實(shí)時(shí)存儲(chǔ)到TXT文檔中,文檔名稱以創(chuàng)建時(shí)間作為文件名,每個(gè)文檔最多存儲(chǔ)20000條數(shù)據(jù),超過20000條數(shù)據(jù)文檔自動(dòng)保存并關(guān)閉,并創(chuàng)建新的文檔用以保存新的數(shù)據(jù)。
4.2 歷史曲線繪制
利用MFC的CFile類完成txt文檔數(shù)據(jù)的存儲(chǔ)和讀取操作。系統(tǒng)將從txt文檔中讀取到的數(shù)據(jù)通過波形顯示在界面上,方便研發(fā)人員開發(fā)及調(diào)試,歷史曲線繪制見圖4。
5.實(shí)驗(yàn)結(jié)果與分析
本系統(tǒng)已實(shí)際用于變流器的研發(fā)及故障調(diào)試,應(yīng)用結(jié)果表明本監(jiān)控系統(tǒng)能夠?qū)崿F(xiàn)與變流器的實(shí)時(shí)通信,根據(jù)應(yīng)用需要,本系統(tǒng)可達(dá)到每50ms接收一次數(shù)據(jù)包,同時(shí)本系統(tǒng)在數(shù)據(jù)處理上采用糾錯(cuò)及數(shù)據(jù)整合處理,保證數(shù)據(jù)不丟失。依據(jù)網(wǎng)絡(luò)情況好壞,監(jiān)控系統(tǒng)與變流器建立連接耗時(shí)在30ms左右,同時(shí)為避免網(wǎng)絡(luò)故障及變流器關(guān)機(jī)造成的過長的連接延時(shí),系統(tǒng)設(shè)置的連接超時(shí)時(shí)間為300ms。建立通信連接后,系統(tǒng)與變流器通信順暢,可實(shí)時(shí)顯示變流器運(yùn)行數(shù)據(jù)及運(yùn)行趨勢。通過對本系統(tǒng)的實(shí)際應(yīng)用,充分證明了本系統(tǒng)具有較高的穩(wěn)定性、實(shí)時(shí)性和數(shù)據(jù)準(zhǔn)確性。
6.結(jié)論
系統(tǒng)已成功運(yùn)用于變流器研發(fā)調(diào)試及風(fēng)電現(xiàn)場故障風(fēng)機(jī)的問題處理,有效提高研發(fā)速度及變流器系統(tǒng)性能,能快速有效切中故障點(diǎn),縮短故障機(jī)器的故障時(shí)間。實(shí)際證明系統(tǒng)對變流器的研發(fā)及風(fēng)電現(xiàn)場故障機(jī)器維護(hù)有較高的實(shí)際應(yīng)用價(jià)值。
參考文獻(xiàn):
[1]馮江華. 風(fēng)電變流器的技術(shù)現(xiàn)狀與發(fā)展[J]. ?大功率變流技術(shù),2013,(3):5-11.
[2]高翔. 風(fēng)機(jī)變流器遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]:[碩士學(xué)位論文].長沙:湖南大學(xué),2011.
[3]郭抒. 風(fēng)電變流器監(jiān)測系統(tǒng)開發(fā)與故障診斷研究[D]:[碩士學(xué)位論文]. 上海:東華大學(xué),013.
[4]孟慶款. 基于 RS485通訊的風(fēng)電變流器系統(tǒng)監(jiān)控軟件的設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī),2013,26(2):4-6.
[5]張愛民,孔得鵬,王倩.工業(yè)機(jī)器人的遠(yuǎn)程監(jiān)控與診斷系統(tǒng)設(shè)計(jì)[J].機(jī)械,2010,37(10):45-47.
作者簡介:
方杭杭(1986年10月) 男,籍貫:浙江東陽,工作單位:上海電氣風(fēng)電集團(tuán)股份有限公司,郵編:311121 職位:工程師 職稱: 中級 學(xué)位:碩士,研究方向:風(fēng)電變流器設(shè)計(jì)開發(fā)。
馮麗麗(1985年1月) 女 籍貫:遼寧蓋州,工作單位:杭州師范大學(xué),郵編:311121,職位:技術(shù)員,職稱:中級,學(xué)位:碩士,研究方向:上位機(jī)監(jiān)控軟件。