鋰離子電池組監(jiān)控系統(tǒng)研究與實現(xiàn) — 上位機程序設計
在ClassWizard中為新創(chuàng)建的通信控件定義成員對象(CMSComm m_Serial),通過該對象便可以對串口屬性進行設置,MSComm控件共有27個屬性,這里只介紹其中幾個常用屬性:CommPort設置并返回通訊端口號,缺省為COM1. Settings以字符串的形式設置并返回波特率、奇偶校驗、數(shù)據(jù)位、停止位。
本文引用地址:http://www.biyoush.com/article/274173.htmPortOpen設置并返回通訊端口的狀態(tài),也可以打開和關閉端口。
Input從接收緩沖區(qū)返回和刪除字符。
Output向發(fā)送緩沖區(qū)寫一個字符串。
InputLen設置每次讀入的字符個數(shù),缺省值為0,表明讀取接收緩沖區(qū)中的全部內(nèi)容。
InBufferCount返回接收緩沖區(qū)中已接收到的字符數(shù),將其置0可以清除接收緩沖區(qū)。
InputMode定義Input屬性獲取數(shù)據(jù)的方式(為0:文本方式;為1:二進制方式)。
RThreshold和SThreshold屬性,表示在OnComm事件發(fā)生之前,接收緩沖區(qū)或發(fā)送緩沖區(qū)中可以接收的字符數(shù)。
打開所需串口后,需要考慮串口通信的時機。在接收或發(fā)送數(shù)據(jù)過程中,可能需要監(jiān)視并響應一些事件和錯誤,所以事件驅(qū)動是處理串行端口交互作用的一種非常有效的方法。使用OnComm事件和CommEvent屬性捕捉并檢查通訊事件和錯誤的值。發(fā)生通訊事件或錯誤時,將觸發(fā)OnComm事件,CommEvent屬性的值將被改變,應用程序檢查CommEvent屬性值并作出相應的反應。
5.2上位機程序方案
上位機程序主要完成數(shù)據(jù)顯示、參數(shù)設置、存儲器讀取、數(shù)據(jù)校正等功能。
該程序通過串口與下位機板進行通信,將需要顯示的信息和設置的參數(shù)等信息進行傳輸。
上位機程序功能框圖如下圖5.1所示。
圖中下位機通過串口與上位機進行數(shù)據(jù)通信。根據(jù)通信協(xié)議,將雙方傳輸?shù)臄?shù)據(jù)進行轉(zhuǎn)換,得到對應的數(shù)值,在進行相應的操作。
下面分別對數(shù)據(jù)顯示、參數(shù)設置、數(shù)據(jù)保存、數(shù)據(jù)校正等功能進行如下分析。
5.2.1數(shù)據(jù)顯示
上位機程序的數(shù)據(jù)顯示功能直接放置在主程序界面上,如下圖5.2所示。
主界面主要包含顯示鋰電池電壓、溫度、電流、電量、狀態(tài)等信息的文本控件和參數(shù)設置、數(shù)據(jù)校正、存儲器讀寫的按鈕以及保存數(shù)據(jù)的選項,另外還可對串口號進行選擇。
5.2.2參數(shù)設置
參數(shù)設置子窗口如圖5.3所示。由于需要設置的參數(shù)較多,所以在參數(shù)設置子窗口中將所有參數(shù)分為系統(tǒng)參數(shù)、電流參數(shù)、電壓參數(shù)、溫度參數(shù)、均衡參數(shù)、電量參數(shù)和版本參數(shù)共七類,在一個復選頁中進行顯示和設置。
系統(tǒng)參數(shù)包含電池類型、電池數(shù)、電池內(nèi)阻、數(shù)據(jù)采樣頻率、睡眠模式使能、睡眠模式喚醒時間、用戶權限、系統(tǒng)密碼等。
電流參數(shù)包含充電過載電流、放電過載電流、判斷過載電流持續(xù)時間、短路電流、放電過流恢復時間、充電過流恢復時間、短路恢復時間等。
電壓參數(shù)包含過充電壓、釋放過充電壓、過放電壓、釋放過放電壓、最大不平衡電壓、判斷過充過放電壓持續(xù)時間等。
溫度參數(shù)包含外部溫度通道1使能、外部溫度通道2使能、判斷溫度超范圍持續(xù)時間、可承受外部最高溫度、釋放可承受外部最高溫度、可承受外部最低溫度、釋放可承受外部最低溫度、可承受內(nèi)部最高溫度、釋放可承受內(nèi)部最高溫度、可承受內(nèi)部最低溫度、釋放可承受內(nèi)部最低溫度等。
均衡參數(shù)包含均衡使能、每組均衡電池數(shù)、均衡模式、均衡開始電壓、均衡壓差等。
電量測量參數(shù)包括電量測量電壓一、測量電壓二、測量電壓三、測量電壓四、測量電壓五等。
另外,還有版本版本號、工廠名、設備編號等。
5.2.3數(shù)據(jù)校正
數(shù)據(jù)校正子窗口如圖5.4所示。
校正采用線性修復法,即利用公式:A=K*S+B進行校正,其中A表示實際測量值,S表示通過系統(tǒng)獲取的原始采樣值,K為修正系數(shù),B為修正基址。
校正過程中對,對每一路采樣電路的采樣值和實測值進行若干組采集。根據(jù)上述公式,每兩組組成一個二元一次方程,計算出若干個修正系數(shù)和修正基址并求平均值,獲得本路采樣電路的修正系數(shù)和修正基址。
在上位機軟件中,接收下位機傳送過來的21路信號的實測值和采樣值。通過兩次接收,可分別得到21路采樣信號的兩組實測值和采樣值,按上述計算方法分別計算出各路采樣電路的修正系數(shù)和修正基址,按通信協(xié)議發(fā)送給下位機。
5.2.4存儲器讀寫
存儲器讀寫子窗口如圖5.5所示。
在存儲器讀寫子窗口中,有讀存儲器、寫存儲器、存儲器擦除三個按鈕,可分別讀出指定存儲單元的數(shù)據(jù)、將指定數(shù)據(jù)寫入指定單元、擦除存儲器所有單元。
5.3上位機程序測試
c++相關文章:c++教程
離子色譜儀相關文章:離子色譜儀原理
評論