基于VC++光伏逆變器監(jiān)控系統(tǒng)的設(shè)計和實現(xiàn)
3.2.2 狀態(tài)運行界面
監(jiān)控系統(tǒng)的主運行界面如圖5所示,在主運行界面中顯示了歷史總發(fā)電量、累計發(fā)電時間、日發(fā)電量、煙塵等減排量、瞬時功率實時曲線等數(shù)據(jù)。這些數(shù)據(jù)是通過RS-485從F2812獲得的。F2812從RS-485接收到上位機發(fā)來的啟動發(fā)送數(shù)據(jù)命令后,終端定時將所需的一幀數(shù)據(jù)按照規(guī)定的協(xié)議發(fā)給上位機。上位機將接收到的數(shù)據(jù)處理之后,進行顯示和存儲。系統(tǒng)運行條件下指示燈為綠色。采用TeeChart控件來實現(xiàn)瞬時功率的實時曲線顯示。TeeChart控件適用于VB、VC++、ASP等系統(tǒng)平臺,提供了上百種2D和3D圖形風格、40余種數(shù)學和統(tǒng)計功能、加上無限制的軸和多種調(diào)色板組件可以選擇,以及20多種用于圖表操作的工具,將圖表制作與操作功能發(fā)揮得淋漓盡致,為程序設(shè)計人員提供了一個高效、直觀、節(jié)省時間的編程接口。這里使用了TeeChart控件中的實時曲線顯示功能,定時讀取相應(yīng)瞬時功率數(shù)據(jù)庫的數(shù)據(jù),然后將數(shù)據(jù)以實時曲線的形式顯示。
3.2.3 監(jiān)控軟件的數(shù)據(jù)庫的設(shè)計
在監(jiān)控系統(tǒng)中,往往需要對歷史數(shù)據(jù)進行查詢,生成報表并打印,以便后期對數(shù)據(jù)的整理、分析和處理。VC6.0具有良好的數(shù)據(jù)庫接口能力,能很方便地對多種類型的數(shù)據(jù)庫進行操作。本監(jiān)控系統(tǒng)采用ADO編程方式建立了四個ACCESS數(shù)據(jù)庫,分別是歷史運行數(shù)據(jù)數(shù)據(jù)庫、日志數(shù)據(jù)庫、故障數(shù)據(jù)庫和用戶登錄信息數(shù)據(jù)庫。每個數(shù)據(jù)庫中的表都是以日期命名,每天建立一個新表,這樣既不會造成文件的重復也利于文件表的查詢,每個表都以運行日期和運行的時間作為索引,可以方便地進行記錄的瀏覽和查詢。在開發(fā)工程中引入ADO動態(tài)鏈接庫文件,初始化COM環(huán)境,連接數(shù)據(jù)庫和操作數(shù)據(jù)表,利用griddata控件負責對數(shù)據(jù)進行顯示和編輯。
3.3 監(jiān)控軟件通信過程
本監(jiān)控軟件通過使用MSComm控件進行串口編程,采用其中的查詢方式的通信方法,用戶通過檢查CommEvent屬性的值來檢測時間和通信錯誤。在通信過程中分別利用void SetCommEvent(shotnNewValue)方法和short GetCommEvevt()方法設(shè)置和獲取CommEvent的屬性值。串口處于接收狀態(tài)時,清空串口接收緩沖區(qū),讀入數(shù)據(jù)。數(shù)據(jù)校驗正確無誤后,判斷功能碼,對數(shù)據(jù)區(qū)數(shù)據(jù)切分,運行數(shù)據(jù)直觀地通過曲線或編輯控件顯示,將需要保存的數(shù)據(jù)存入數(shù)據(jù)庫。對于存入數(shù)據(jù)庫的時間,在軟件實現(xiàn)過程中可自行設(shè)定。判定如果為故障數(shù)據(jù)則需立即存儲,此時下位機F2812控制芯片立即斷開各個開關(guān),進入待機狀態(tài)。在通信頻繁的情況下,采用MSComm控件的查詢方式更為方便。
4 結(jié)束語
本系統(tǒng)是采用VC++6.0和面向控制對象的思想開發(fā)的可視化人機交互監(jiān)控軟件,充分利用TeeChart控件、ADO控件、Inmagelist控件等控件,使得系統(tǒng)具有良好的用戶界面和數(shù)據(jù)庫接口能力,能夠更加方便地對逆變器的工作數(shù)據(jù)、故障及日志進行存儲管理,方便對逆變器歷史數(shù)據(jù)的查詢與維護。系統(tǒng)己在PC機和逆變器之間進行了調(diào)試,實現(xiàn)了PC機對逆變器工作狀態(tài)的監(jiān)視、控制和數(shù)據(jù)存儲等功能。
評論