当前位置:主页 > 科技论文 > 电力论文 >

电池高速测量数据的实时采集与保存

发布时间:2021-08-10 04:55
  针对电池生产管理需求,在高速验电机上开发数据采集与保存系统,记录每只电池的电参数,为电池的质量管理提供基础数据。系统设计出一种特殊数据包的格式和多线程机制方法,确保在串口通信时能稳定可靠的进行,同时避免采集噪声干扰后的数据。系统采集的数据既可快速保存在数据库中,用WEB浏览器进行查询和统计,也可保存在TXT文档中。 

【文章来源】:电池. 2020,50(05)北大核心CSCD

【文章页数】:3 页

【部分图文】:

电池高速测量数据的实时采集与保存


图1 串口读数据的线程模型

数据包,格式,线程


图1 串口读数据的线程模型根据RXTXcomm串口驱动源码的termios.c文件下参数timeouts.Read Interval Timeout=0的定义,数据包下的各帧没有空闲位,因此数据包设计符合要求。信道出现数据时,串口会触发一次事件,通知数据处理线程处理,但会出现数据包丢失的现象。经过多次实验分析,得知有两个原因:(1)完全接受一个数据包需要一定的时间,当有数据到达时,缓存的字节数有时不够20字节,当前数据包需要下次数据到达时才接收;(2)如果测试仪发送信号和接收线程触发的事件太快,数据处理线程在某些时刻的速度赶不上接收线程,有些事件来不及触发,缓存就会随着时间的增长累积更多的数据,且数据处理线程每次取数采用字节数组read Buffer[20]进行接收,取完第1个数据包,第2个数据包已在缓存,而事件来不及触发,就要等第3个数据包到达才读第2个数据包。这样,随着时间的推移,会导致内存溢出和数据包丢失。

曲线,生产线,数据包,有效数据


解决方法:(1)数据处理线程等待一小段时间,时间长短由串口的波特率和单个数据包的大小决定,让当前数据包完全到达缓存后,再读数;(2)取消对available()>=20的判断,增加接收字节数组长度,定义为byte[]read Buffer=new byte[44],并约定数据包的前两字节为生产线号标识(见图3)。数据处理线程判断接收read Buffer数组的前两位,如果符合生产线号标识的约定,即为有效数据;如果数组的第45位元数到48位元数也符合生产线号标识的约定,即有两个有效数据包,否则只有一个有效数据包。使用这些较为简单的约定,就能避免串口速度过快的问题,缓存数据也能及时读取,保障每个数据帧的完整性。检测仪在开机和关机时,会产生一个全低电平或全高电平的无效数据,使用生产线号标识,也可避免垃圾数据进入数据库,并过滤一些受到噪声干扰而产生的错误数据。生产线号标识设定也有特殊意义,如A55A表达的二进制数为1010010101011010,表达的高低电平曲线明显,相比设计成0001、0003等更可靠。

【参考文献】:
期刊论文
[1]碱性锌锰电池生产设备的进展和发展方向[J]. 李胜,杨林.  电池. 2015(04)
[2]磁盘存储系统节能技术研究综述[J]. 田磊,冯丹,岳银亮,吴素贞,毛波.  计算机科学. 2010(09)

硕士论文
[1]基于FLASH-DISK混合存储数据动态迁移的研究[D]. 魏红伟.湖南大学 2013



本文编号:3333504

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/dianlilw/3333504.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户4e4e7***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com