新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 锂离子电池组监控系统研究与实现 — 上位机程序设计

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

作者:时间:2015-05-14来源:网络收藏

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

本文引用地址:http://www.eepw.com.cn/article/274173.htm

  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使能、判断温度超范围持续时间、可承受外部最高温度、释放可承受外部最高温度、可承受外部最低温度、释放可承受外部最低温度、可承受内部最高温度、释放可承受内部最高温度、可承受内部最低温度、释放可承受内部最低温度等。

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

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

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

  5.2.3数据校正

  数据校正子窗口如图5.4所示。

  

 

  校正采用线性修复法,即利用公式:A=K*S+B进行校正,其中A表示实际测量值,S表示通过系统获取的原始采样值,K为修正系数,B为修正基址。

  校正过程中对,对每一路采样电路的采样值和实测值进行若干组采集。根据上述公式,每两组组成一个二元一次方程,计算出若干个修正系数和修正基址并求平均值,获得本路采样电路的修正系数和修正基址。

  在上位机软件中,接收下位机传送过来的21路信号的实测值和采样值。通过两次接收,可分别得到21路采样信号的两组实测值和采样值,按上述计算方法分别计算出各路采样电路的修正系数和修正基址,按通信协议发送给下位机。

  5.2.4存储器读写

  存储器读写子窗口如图5.5所示。

  

 

  在存储器读写子窗口中,有读存储器、写存储器、存储器擦除三个按钮,可分别读出指定存储单元的数据、将指定数据写入指定单元、擦除存储器所有单元。

  5.3上位机程序测试

  

c++相关文章:c++教程


离子色谱仪相关文章:离子色谱仪原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭