微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 锂离子电池组监控系统研究与实现 — 上位机程序设计

锂离子电池组监控系统研究与实现 — 上位机程序设计

时间:01-26 来源:3721RD 点击:

6.Tab Control控件一个"标签控件"类似于一个笔记本中的分隔器,或一个文件柜上的标签。通过使用标签控件,应用程序可以将一个窗口或对话框的相同区域定义为多个页面。

每一页包含了一套信息或一组控件,当用户选择了相应的标签时应用程序就会显示相应的信息或控件。一种特殊类型的标签控件把标签显示得像按钮一样。点击一个按钮将立即执行一条命令而不是显示一个页。

CTabCtrl类提供了Windows通用标签控件的性能。这个控件(也就是CTabCtrl类)只对运行在Windows 95和Windows NT 3.51或更新版本下的程序来说是可用的。

7.Group Box控件Group Box控件本质上确实是class CStatic的一个实例化对象。在一个对话框上布置好一个Group Box控件后,默认ID为IDC_STATIC,这时候是无法在代码里动态地控制它的隐藏/显示属性。必须给它一个新的ID号,比如IDC_GROUPBOX1,最后再给它关联一个CStatic控件变量(这个你应该自己会吧),然后就可以在必要时候(另一个控件被选择)调用ModifyStyle(0,SWP_HIDEWINDOW/*SWP_SHOWWINDOW*/);实现Group Box的隐藏/显示状态的动态切换。

8. MSComm控件Visual C++为我们提供了一种好用的ActiveX控件Microsoft Communications

Control(即MSComm)来支持应用程序对串口的访问,在应用程序中插入MSComm控件后就可以较为方便地实现对通过计算机串口收发数据。

使用VC++提供的串行通信控件MSComm进行编程,首先,在对话框中创建通信控件,若Control工具栏中缺少该控件,可通过菜单Project -->Add to Project--> Components and Control插入即可,再将该控件从工具箱中拉到对话框中。此时,你只需要关心控件提供的对Windows通讯驱动程序的API函数的接口。换句话说,只需要设置和监视MSComm控件的属性和事件。

在ClassWizard中为新创建的通信控件定义成员对象(CMSComm m_Serial),通过该对象便可以对串口属性进行设置,MSComm控件共有27个属性,这里只介绍其中几个常用属性:CommPort设置并返回通讯端口号,缺省为COM1. Settings以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。

PortOpen设置并返回通讯端口的状态,也可以打开和关闭端口。

Input从接收缓冲区返回和删除字符。

Output向发送缓冲区写一个字符串。

InputLen设置每次读入的字符个数,缺省值为0,表明读取接收缓冲区中的全部内容。

InBufferCount返回接收缓冲区中已接收到的字符数,将其置0可以清除接收缓冲区。

InputMode定义Input属性获取数据的方式(为0:文本方式;为1:二进制方式)。

RThreshold和SThreshold属性,表示在OnComm事件发生之前,接收缓冲区或发送缓冲区中可以接收的字符数。

打开所需串口后,需要考虑串口通信的时机。在接收或发送数据过程中,可能需要监视并响应一些事件和错误,所以事件驱动是处理串行端口交互作用的一种非常有效的方法。使用OnComm事件和CommEvent属性捕捉并检查通讯事件和错误的值。发生通讯事件或错误时,将触发OnComm事件,CommEvent属性的值将被改变,应用程序检查CommEvent属性值并作出相应的反应。

5.2上位机程序方案

上位机程序主要完成数据显示、参数设置、存储器读取、数据校正等功能。

该程序通过串口与下位机板进行通信,将需要显示的信息和设置的参数等信息进行传输。

上位机程序功能框图如下图5.1所示。



图中下位机通过串口与上位机进行数据通信。根据通信协议,将双方传输的数据进行转换,得到对应的数值,在进行相应的操作。

下面分别对数据显示、参数设置、数据保存、数据校正等功能进行如下分析。

5.2.1数据显示

上位机程序的数据显示功能直接放置在主程序界面上,如下图5.2所示。



主界面主要包含显示锂电池电压、温度、电流、电量、状态等信息的文本控件和参数设置、数据校正、存储器读写的按钮以及保存数据的选项,另外还可对串口号进行选择。

5.2.2参数设置

参数设置子窗口如图5.3所示。由于需要设置的参数较多,所以在参数设置子窗口中将所有参数分为系统参数、电流参数、电压参数、温度参数、均衡参数、电量参数和版本参数共七类,在一个复选页中进行显示和设置。



系统参数包含电池类型、电池数、电池内阻、数据采样频率、睡眠模式使能、睡眠模式唤醒时间、用户权限、系统密码等。

电流参数包含充电过载电流、放电过载电流、判断过载电流持续时间、短路电流、放电过流恢复时间、充电过流恢复时间、短路恢复时间等。

电压参数包含过充电压、释放过充电压、过放电压、释放过放电压、最大不平衡电压、判断过充过放电压持续时间等。

温度参数包含外部温度通道1使能、外部温度通道2使能、判断温度超范围持续时间、可承受外部最高温度、释放可承受外部最高温度、可承受外部最低温度、释放可承受外部最低温度、可承受内部最高温度、释放可承受内部最高温度、可承受内部最低温度、释放可承受内部最低温度等。

均衡参数包含均衡使能、每组均衡电池数、均衡模式、均衡开始电压、均衡压差等。

电量测量参数包括电量测量电压一、测量电压二、测量电压三、测量电压四、测量电压五等。

另外,还有版本版本号、工厂名、设备编号等。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top