运用VBA对超偏载检测装置期间核查数据的处理

2016-06-21 10:00谈晓晓上海铁路局科研所
上海铁道增刊 2016年3期
关键词:标准值核查数据处理

谈晓晓 上海铁路局科研所

运用VBA对超偏载检测装置期间核查数据的处理

谈晓晓 上海铁路局科研所

介绍运用 Microsoft Excel 2007(以下简称:Excel)中的Visual Basic for Application(以下简称:VBA)功能,编写一段自动处理数据的程序代码。该程序可根据输入的列车过衡数据,自动计算误差、判断是否超差和统计合格数量等,能够提高超偏载检测装置(以下简称:超偏载)期间核查数据处理效率,从而减轻工作负担。

VBA;程序代码;自动处理数据

1 概述

根据JJF(铁道)606-2011《铁道货车超偏载检测装置期间核查规范》(以下简称:期间核查规范)的要求,为确认超偏载示值误差是否满足要求,在两次周期检定之间,须对超偏载进行不少于1次的期间核查。

本部门利用现有检定资源——检衡车标准装置(以下简称:检衡车)在超偏载上通过时产生过衡数据,每月远程对其进行收集处理,来完成对超偏载设备称量性能的期间核查(在现有检定资源的限制下无法完成对偏载和偏重的期间核查)。超偏载期间核查数据最大允许误差的要求见表1,以远程核查最大允许误差为准。

表1 超载测试总重最大允许误差

使用铁科院电子所制作的《铁路货运计量安全检测监控系统》(以下简称:监控系统),可以通过追踪检衡车车号获得其过衡数据,然后利用Excel将数据与标准值进行比较,来判断超偏载设备是否处于良好的工作状态。(需要特别指出的是,监控系统自带期间核查功能,但由于标准器的质量发生变化后,监控系统只保留最新的标准值,因此对标准值变化前的过衡数据进行的误差计算全都是错误和无效的,故不推荐使用。)

可以设想一下整个比较过程,首先将过衡数据复制到Excel中,然后找出相应检衡车车号处于有效期内的标准值,将标准值与过衡数据中的总重进行比较,计算出误差,最后判断是否超差,并注明。如果这些工作全部通过手动处理,不仅耗时耗力,还十分容易出错。因此我们可以借助Excel中的VBA功能来完成自动计算误差、判断是否超差和统计合格数量等工作,从而提高超偏载期间核查数据处理效率,减轻工作负担。

2 开启VBA功能

由于Excel在默认使用状态下,其自带的VBA功能是关闭的,所以首先需要做的就是开放VBA功能。打开方式是:点击Excel软件界面的左上角 图标,点击“Excel选项”,在“常用”选项栏中勾选“在功能区显示‘开发工具’选项卡”,点击确认。这样,在功能区就会出现“开发工具”标签。利用其中的Visual Basic(for Application)编写代码,可以对Excel中的单元格数据进行操作、计算和统计。

3 编写代码前的准备工作

3.1 填写相关数据

首先将需要进行计算处理的数据从监控系统复制到Excel中,在此不妨将工作表名称改成“期间核查数据”。由于监控系统中的原始过衡数据包含许多不必要的字段,因此本文只选取其中几项必要的字段进行叙述(见表2,其中最后四项字段是需要通过编写VBA程序代码自动处理填写的)。

由于检衡车的标准值会发生改变,故再新建一个“标准值”工作表,用来记录不同检衡车在不同有效期内的标准值(见表3)。

表2 过衡数据

表3 标准值字段

3.2 制作代码触发按钮

编写的代码可以设置成通过点击某一文档元件来触发。在这里我们绘制一个“矩形”来触发代码,然后右键单击绘制的矩形,点击“指定宏”,点击“新建”,这样就进入了代码编写界面,可以看到系统自动为我们写好了如下两句代码。

Sub矩形1_Click()

End Sub

而我们编写的所有代码均须写在上面给两行代码之间。这样,通过点击矩形,就能执行编写的代码。

为了分别实现数据分析和数据统计功能,不妨将上述矩形单独作为数据处理的触发按钮,而另外绘制一个矩形,单独作为数据统计的触发按钮。

4 编写思路

4.1 数据处理代码编写思路

利用循环语句,对每一条过衡数据进行:

(1)寻找填写标准值;

(2)计算误差;

(3)判断是否超差等工作。

4.1.1 标准值的填写

根据表2中不同检衡车的“通过时间”以及“车号”信息,在“标准值”工作表中寻找对应的、在有效期内的标准值,并赋值到相应单元格内。

4.1.2 误差计算

根据总重和标准值,分别计算出绝对误差和相对误差。

4.1.3 数据判断

根据过衡速度和误差,以及表1的规定最大允许误差,判断是否超差或者过车速度不符合要求。

4.2 数据统计代码编写思路

利用循环语句,分别统计过车总条数和无效数(过车速度不符合要求以及超出标准器有效期),计算两者之差即为有效数;然后根据误差大小,判断统计超差数;将有效数减去超差数,即为合格数;计算出合格率=(合格数/有效数)*100%,最后用Msgbox将统计结果显示出来。

5 源代码

5.1 数据处理源代码

5.2 数据统计源代码

6 实际运行效果展示

图1为数据处理结果,图2为数据统计结果。

图1 数据处理结果

图2 数据统计结果

7 结束语

VBA功能可以在各种数据统计中得到广泛地应用。它不仅能够提高工作效率,降低劳动强度,同时也可以减少人为因素造成的各种错误。因此,在实际工作中值得推广使用。

责任编辑:许耀元

来稿日期:2016-09-01

猜你喜欢
标准值核查数据处理
对某企业重大危险源核查引发的思考
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
关于设计保证系统适航独立核查的思考
基于无人机影像的营造林核查应用研究
政府综合财务报告分析指标体系问题研究
浅析风电企业财务风险预警指标的设立与监控
基于希尔伯特- 黄变换的去噪法在外测数据处理中的应用
基于《企业绩效评价标准值》的医药全行业绩效评价及预测
逾六千家政府网站关停整改核查再升级