大量的电池检测数据在TXT文本中的存储设计

2021-10-22 00:37叶均隆叶均明
科技信息·学术版 2021年12期

叶均隆 叶均明

摘要:为了减少电池企业信息化建设的成本和对商用数据库的依赖,设计出两种有效的TXT文档结构储存电池检测数据。由于电池检测数据量大,为了提高数据读取速度,这两种储存都是采用约定文件大小和分类保存的方式进行。由于直接保存采集进来的检测数据,会出现大量的数据冗余,因此第二种则在第一种储存方法中进一步优化。通过类似数据库的主外键关联的方式进行储存,有效减少数据冗余。

关键词:数据储存;文本数据保存;文本数据关联;大量数据储存

1  引言

现在企业生产中一般使用主流的数据库软件进行各种数据保存和处理,如:sql server、mysql、Oracle等的使用。由于一次电池的检测数据,它们的数据量大,各类数据之间的关系不算复杂,使用这些主流的数据库进行存取,成本较高及容易受到技术制约。如果使用TXT文本保存数据,所有的技术人员都能对它进行处理和利用,而且不需要额外的费用。使用TXT文本保存一次电池的质量检测数据主要解决以下三个问题:

(1)电池的检测数据、电池检测标准、生产线号、日期、电池型号、触头位置号等信息的保存。

(2)电池生产速度快,生成的数据量大,数据储存要考虑管理方便和读取速度。

(3)对数据查询时,电池的检测数据、电池检测标准、生产线号等的关联关系的处理。

2存储结构设计

2.1 数据没有精简的存储设计

例如数据在D:\DataTra\2021\A55A\0321.txt文件保存,每年生产的电池数据放在一个按年份命名的文件夹里。一般电池厂都会拥有多条生产线,那么在年份文件夹下接着建立以生产线号命名的文件夹。“0321.txt”代表3月21日的检测数据。因为历史记录翻查的几率偏小,所以年份文件夹下建立各生产线号的文件夹更有利于系统的查询的效率。在生产线号命名的文件夹下,每天会创建一个电池检测数据TXT文档,文档使用当前电池检测数据的生产时间并去掉年份命名,这样在文件进行查找时不需再次进行年份比较。在电池工厂里一年一般上班的天数不会超过270天。那么每年生成的文件最多为:270×生产线总数,拥有6条生产线的厂家约为1620个文件。计算机的硬盘使用时间越长,对硬盘里的文件进行编辑或删除次数多了,都会造成文件碎片增加,这样会严重影响以后的读写速度。根据近年来一次电池生产线的生产的特点,较好的生产设备一般能达到600只/min,理论上一天最多能生产864000只电池[1]。每行保存一条记录,即是一只电池的数据,例如:“2021-03-22,21:23:12.448,0022,A55A,R03C,1.685,1.675,1.440,3.600,0025,0050,1.682,P,1.466,P,03.66,P,0205400006”。它们分别是日期、时间、触头的位置号、生产线号、电池型号、开路电压上限、开路电压下限、负荷电压下限、短路电流下限、负荷电阻放电时间、短路放电时间、开路电压实测值、负荷电压实测值、短路电流实测值、流水号,另外此记录中的“P”是符合检验水平代表合格,如果是显著性差异的水平则此位置用F表示。一条记录有107个字符,换行符号占2个字符(windows操作系统每行结尾是“\r \n”),则每天生成的TXT文档空间最大为( 107 +2) ×Rmax /( 1 024×1 024) ≈89. 8 Mb[2]。在当天开始生产时,即有电池检测数据,就开始生成约为89.8 Mb大小的文件,文件里面的信息为空。通常在工厂的一天不会满负荷运转的,机器一般是8~12小时的运行,那么大部分的txt文档实际使用的磁盘空间为29.9 Mb ~44.9 Mb。那么需要第二天打开电池检测数据程序时,对上一次生产过程中生成的TXT文档进行空闲容量的检测与释放。文档按时间的顺序排序,使用折半查找算法则有非常高的运行效率。

2.2 数据精简的存储设计

如果想减少对磁盘空间的浪费,检测数据中的日期和生产线号可在文件夹和文件名字那里体现出,可删除它们。验电机械采用多触头随行的结构方式,通常有30或32个触头[2],所以位置号使用两位数表达即可。电池型号一般有21种,这里也可以用两位数字字符表达即可。检测标准因为一般很长时间才更改一次,所以检测数据文档的检测标准数据重复出现的概率很高,为了减少冗余数据,可建立的30MB的检测标准TXT文档(st.txt)进行记录,根据生产特点,文档记录的流水号使用6位字符表达,足够保证一年内不会重复。检测标准文档也是放在同一年份及同一生产线下,同一生产线一年只建立一个。然后检测标准文档的流水号赋给电池检测数据TXT文档即可。代号P或F可以根据检测标准可以得到,这项也可以删除。一天最多864000只电池,那么使用6位流水号即可足够表达,经过这样分析,例如:“0322.txt”文档保存3月22日的一只电池的检测数据为:“21:23:11.936,21,03,000001,1.676,1.448,03.74,000001”。而st.txt保存它對应的检测标准为:“2021-03-22,21:23:11.936,1.685,1.675,1.440,3.600,0025,0050,000001”。虽然这样精简设计可减少到原来一半的磁盘空间,但在设计查询算法设计时需要关联st.txt文档才能获得检测标准。按上文给的检测数据例子,文本中的“03”旁的“000001”与st.txt文本中的一条检测标准的“000001”关联上。

3 结束语

通过本文2.1所述的储存结构,在数据写入和查找时较为简单,但通过本文2.2所述的方式,开发难度逐步增加。使用TXT文档保存数据虽然有效减少信息化建设的成本,但同时增加数据写入和查找时软件开发的难度。因此在借鉴文章的方法时可能根据不同的需求是否采用TXT文本储存数据。

参考文献:

[1]李胜,杨林.碱性锌锰电池生产设备的进展和发展方向[J].电池,2015,45(04):225-227.

[2]叶均隆,叶锦雄,谢壁龙.电池高速测量数据的实时采集与保存[J].电池,2020,50(05):480-482.

基金项目:2020年度江门市基础与理论科学研究类科技计划项目(2020JC03050)

作者简介:叶均隆(1983-),男,广东人,广东南方职业学院信息学院讲师,硕士,研究方向:计算机应用、智能控制及算法等;

叶均明(1980-),男,广东省江门市人,江门市中心医院网络中心工程师,本科,主要研究方向网络工程、医院信息化。