电磁软件设计历程

时间:2022-10-16 07:16:01

电磁软件设计历程

作者:郭令 单位:凯迈(洛阳)电子有限公司

软件设计

主程序上位机软件和采集器通过CAN总线进行数据传输,通讯协议基于CAN2.0B规范,总线通讯速率为250kBPS,帧格式为29位标识符的扩展帧,帧类型为数据帧,每帧通讯数据长度固定为8个字节。数据传输采取主从方式,上位机每隔一定间隔发送数据请求帧,各采集器收到后回送相应的数据,正常情况下上位机软件使用广播命令,各采集器收到后将自己的数据发出,如果上位机软件等待超时时间后未收到某个采集器的数据,则单独对该采集器发送数据请求。上位机软件需要完成周期发送请求数据、数据采集、数据处理、超时处理及数据存储等任务。系统软件设计采用C#的定时器事件处理方式,包括定时发送请求数据、定时数据采集和定时超时处理。主程序负责数据处理。程序流程图(图略)定时器是定期引发事件的组件,是为Windows窗体环境设计的。主要属性有Enable属性和Interval属性,Enable属性用于指定定时器是否启用,Interval属性是获取设置引发事件的间隔。本程序采用了Tick事件,该事件在指定的Interval值已经过去而且定时器处于启用状态时发生。当开始采集数据时,进行系统初始化设置,包括读取报警参数设置、是否保存数据、采集器的个数等,然后开始定时发送请求数据。在发送请求数据处理事件中,需要初始化数据变量,保护电压数据、温度数据和成功发送次数,如果发送请求数据成功,则同时开启定时数据采集和定时超时处理。定时数据采集事件每隔5ms执行一次,采集过程中记录采集信息,如果所有要请求的数据都采集成功,则同时停止该采集事件和超时处理事件,并使能数据处理函数。如果在数据采集的过程中,在允许的超时时间内没有采集到所有的数据,则超时处理事件执行。超时处理事件中,判断是否是第一次执行该事件,如果是第一次,则向没有采集到数据的采集器单独发送请求命令。如果是第二次执行,则说明已经单独发送了数据请求命令,如果仍旧有数据没有采集到,则停止该次循环的数据采集,即停止数据采集定时事件和超时处理定时事件,并修改异常状态变量、触发数据处理函数。数据处理函数实现数据分析、报警判断、详细数据显示、图形显示和数据保存。数据保存函数执行的条件有两个:一是选中了保存,二是没有选中保存,但是在数据处理过程中发现了异常数据,如过压、欠压、过高温、过低温等,则将该时刻所有的数据信息保存。数据存储按照规范设计的方法,考虑数据库及其应用系统开发全过程,将数据库设计分为六个阶段[3]:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施以及数据库运行和维护。根据系统需求,设计了4张数据库关系表:(1)电压/温度信息表:记录电池的电压和温度信息;(2)总信息表:记录总电压值、当前最高电压、最低电压、最高温度和最低温度;(3)报警阈值设置:记录设置的报警参数,包括单体电压上限、单体电压下限等;(4)报警历史记录:记录满足报警条件的电池数据。为了提高数据处理性能,数据库设计中使用了存储过程技术。存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,使用时可由应用程序通过一个调用执行,而且运行用户声明变量、有条件执行以及强大的编程功能。可以在单个存储过程中执行一系列SQL语句。存储过程在创建时即在服务器上进行编译,所以执行起来比单个SQL语句快。系统设计了3个存储过程,分别用来向数据库表中插入电压/温度信息、总信息和报警历史。为了保证相同时刻的数据信息存储到数据库中的一致性,在同时向数据库中插入电压/温度信息和总信息时,使用了事务技术。事务保证多个数据更改在一起处理,这个成为不可分割性。事务启动之后,就必须成功完成,否则SQLServer将撤销该事务启动之后对数据所做的修改。

系统测试

系统主界面。当单击开始采集时,系统开始采集电池组单体电压、温度,并在“实时数据显示”中显示。在“当前总信息”中显示当前最高电压、最低电压、总电压、最高温度、最低温度以及对应的电池通道。在“通讯状态”中显示当前通讯情况以及报警信息。当最高电压、最低电压、总电压、最高温度、最低温度中有任意一项满足报警条件或者手动单击【停止采集】按钮时,系统便停止采集数据,并形成Excel文件,记录该停止时刻电池组的详细数据信息。当报警条件成立时,PC机主板蜂鸣器和音响同时发出报警声音提示,直到单击按钮,该报警解除。根据以上设计结合公司自主开发的采集器进行了长时间连续的电池系统实际测试,结果如图3所示。实验结果表明,该系统能够准确反映电池组状态以及异常信息。

结论

本系统基于C#语言,采用了模块化的程序设计思路,实现了电池组状态信息实时采集、分析、显示和记录,数据记录采用了数据库技术,有助于离线分析电池性能。基于记录的电压数据,有助于实现基于电压数据的电池成组技术。目前,该系统已经应用于本公司的产品测试中。本系统没有采集电流数据,在以后的系统设计中还要加上电流数据分析以及电池剩余电量计算,有助于进一步研究电池剩余电量计算方法并提高计算精度。

上一篇:体育人才训练中计算机应用 下一篇:利用计算机技术实现企业信息化