基于LabVIEW的追溯文件查询方法
摘要:现在的工控软件,一般都有保存追溯文件的功能。有些企业要求工控软件能在确保结果准确的前提下,尽可能快速地查询出产品的生产数据。因此设计基于LabVIEW的快速批量查询功能,通过查询文本而非查询表格的方法,对多个产品条码进行批量查询,此方法简单高效。
关键词:LabVIEW;批量;查询;追溯
1追溯文件查询效率问题
随着工业互联网+大数据的兴起,越来越多自动化设备增加了产品追溯功能,通过利用读码器识别产品条码,跟踪产品的生产数据,而这将有利于分析设备生产状态、产品良率状况。
对于工业生产的快速量产需求,LabVIEW开发具有明显的优势。由于LabVIEW拥有众多成熟配套的模块,可以轻松与PLC建立OPC通讯,这种通讯模式下,PLC无需额外开发通讯程序,只需要提供IP地址,创建TCP端口号,提供寄存器地址用于读写数据,就可以立刻与LabVIEW建立通讯,而LabVIEW对寄存器数据的操作,也几乎如同在本地电脑读写文件一般轻松。
而工业互联网中收集到的生产数据,就需要配套准确且快速的查询方法,才能让工业互联网的价值发挥出来。本文利用LabVIEW图形化编程语言,通过对比传统的表格方法和新式的文本方法,这两种查询方法,直观反映出新式文本方法的快捷高效,接下来将通过对比阐述如何编程实现这种方法。
2追溯文件保存形式
文件是批量查询的数据来源,其保存的文件形式大体上有两种,一种是数据库的方式,另一种是保存为Excel文件的方法。其中数据库的方法,是利用LabVIEW的额外工具包LabVIEW SQL Toolkit对数据库进行访问,该工具包封装了基本的数据库操作与访问函数,使用简便,用户不需要学习SQL语法,只需要通过输入输出接线端,就能实现功能,遗憾的是这个工具包目前价格高昂,致使大多数用户无法承受这额外的成本。
而保存为Excel文件的方法,则是利用LabVIEW自带的“写入电子表格文件”函数,将用户信息逐条添加进文件内容中,这种方法操作简单,也不需要依赖额外的数据库工具包。保存的Excel电子表格文件,可以使用Excel软件打开,无需安装繁琐的数据库环境等,方便用户直接打开编辑或复制到其他电脑进行整理编辑,为用户制作报表或报告等提供便利。本文中使
用的就是这第二种方法,以实现对文件的保存操作。
如图1所示,保存Excel电子表格文件的操作,主要用到LabVIEW中的“写入电子表格文件”函数。先构造需要添加的一维数组数据,将其连接到“写入电子表格文件”函数的输入端,并将“添加至文件”参数设置为真,同时设置好“分隔符”,就能实现将该数据添加进表格文件,编程简单可靠。
图1 保存文件程序框图
其中,“分隔符”,是“写入电子表格文件”函数的一个重要输入参数,也是本文中的批量查询方法的重要依据。因电子表格文件的后缀不同,其“分隔符”也会不同。电子表格文件的后缀大致可以分为两种,一种是“xls”,它是最常见的电子表格格式,是Excel软件保存的一种文件格
式,其“分隔符”是“制表符”,也就是Tab键输入的字符;另一种是“csv”,它是通用的一种文件格式,能被导入到Excel表格及数据库中,“分隔符”是英文逗号“,”。
为了便于后续的编程操作,在保存数据时,一般将数据集的第一项作为具有唯一编码属性的条码,之后才是与之关联的详细信息,如图2所示。
图2 保存文件格式
3批量查询实现原理
本文将以Excel电子表格的文件形式为基础,阐述两种查询方法并对两者进行对比实验,其
中一种查询方法是LabVIEW传统的查询方法,也即直接读取Excel内容为二维数组,并直接在二维数组里查询指定条码字符串,在本文称之为“表格方法”;另一种则是以文本的形式读取Excel文件,把文件内容输出成字符串文本,在字符串文本里查询指定的条码字符串,在本文称之为“文本方法”。
如图3所示,程序框图的上半部分是“表格方法”实现原理的源程序,下半部分是“文本方法”实现原理的源程序。
图3 批量查询程序框图
“表格方法”具体的实现原理,是使用“读取电子表格文件”函数读取Excel文件,将文件内容输出为二维数组,再分离出仅包含条码的一维数组,接着用指定的一个条码,通过“搜索一维数组”函数,得到指定条码所在的行索引。此时,就能通过这个行索引,就能获得这个指定条码在二维数组里所在行的数据。同理,批量搜索多个指定条码,只需要利用for循环,就可以重复执行这一操作,获得批量查询的结果。但是这个方法的有个明显的缺点,就是当打开多个Excel文件时,需要耗费很长的时间,而这很影响效率。
图4 原理解析
而“文本方法”,是一种较为创新的方法,首先,打开Excel文件的方式就有所不同,不是使用“读取电子表格文件”函数打开文件,而是使用“读取文本文件”函数打开文件,将内容输出为
字符串文本。如图4所示,先将指定的一个条码与分隔符连接,形成搜索元素,再利用“搜索匹配字符串”函数,获得偏移量,也就是条码处在字符串文本中的位置。此时,通过“截取字符串”和“匹配回车符”函数处理后,就可以获得以查询的条码为起始、以回车符为结束的字符串文本,这就是该条码的相关数据。最后通过“电子表格字符串至数组转换”函数,将字符串文本转化为数组的形式,以便后期构成表格。批量查询多个条码时,也是利用for循环重复执行,获得批量查询结果。这个方法巧妙在于打开多个“文本文件”比“电子表格文件”速度要快得多,且通过“分隔符”精准定位元素。同时还能通过限制“条码长度”,支持对首尾残缺的字符进行搜索,还可以忽略大小写。
通过对同一批文件进行等量搜索,比较出“表格方法”与“文本方法”的速度和准确率,结果“文本方法“明显具有优势。尽管传统的“表格方法”也有易于理解与掌握的优点,但缺点太明显,就是运行效率低。而”文本方法“的优点不仅是运行效率高,而且结果准确、功能全面。
4用户交互界面设计
界面的设计的主旨是为了便于用户操作与获取信息。本文提供了一个简单的设计参考,以左右分栏的形式,将输入框与查询结果分布在左右两侧,同时辅以查询耗时、查询数量等提示,
帮助用户理解与获悉查询的效率对比。
如图5所示,界面的最左侧是“批量条码”的输入文本框,支持以“回车”作为分隔符,输入多个条码进行搜索,也支持用户从表格文件复制一列数据,粘贴到此处。
字符串截取工具图5 批量查询前面板
“批量条码”文本框左上方,是“条码长度”限制数值,这是可选参数:当搜索残缺条码时,利用限制条码长度,可以缩小查询范围,缩短查询时间,提高查询效率;“批量条码”文本框右上
方,是“查询数量”提示框,该参数是通过计算“批量条码”输入框中的非空的行数,统计出实际需要查询的条码数量,展示给用户;“批量条码”文本框右侧,则是两种查询方法的展示结果表及其消耗时间的统计。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论