基于虚拟仪器技术的多工位条码扫描系统设计与实现
2014-11-18温晓行李彬谢启徐惠钢顾启民
温晓行,李彬,谢启,徐惠钢,顾启民
(常熟理工学院电气与自动化工程学院,江苏常熟 215500)
条码技术是集光电、计算机和通信等多种技术于一体的一门综合性科学技术,主要涵盖一维条码技术、二维条码技术。从条码符号的生成到检测、从条码的识读到条码的应用,条码技术已经形成了集编码技术、载体技术、识读技术以及应用技术的技术体系。作为信息数据自动识别、输入的重要方法和有效手段,条码已成为一种推动经济发展和社会进步的重要力量。扫描技术可以与电脑程序进行通信,完成条码扫描的功能,常用的电脑程序是采用VB、Visual C++等编写的[1-2]。
虚拟仪器的概念是由美国国家仪器公司最先提出的。所谓虚拟仪器是基于计算机的软硬件测试平台,它可代替传统的测量仪器,如示波器、逻辑分析仪、信号发生器、频谱分析仪等,可集成于自动控制、工业控制系统之中,可自由构建专有仪器系统。虚拟仪器是智能仪器之后的新一代测量仪器。虚拟仪器的核心技术思想就是“软件即是仪器”。该技术把仪器分为计算机、仪器硬件和应用软件三部分。
虚拟仪器以通用计算机和配备标准数字接口的测量仪器为基础,将仪器硬件连接到各种计算机平台上,直接利用计算机丰富的软硬件资源,将计算机硬件和测量仪器等硬件资源与计算机软件资源有机地结合起来[3]。
文中采用LabVIEW 图形编程语言设计出条码扫描和显示界面,然后,通过串口来实现条码扫描器的控制与条码数据的读取,完成对条码的采集和处理,可采集和多通道显示条码数据。
1 多工位条码扫描系统设计
许多扫描程序都采用C++、VB 等软件实现,但是,随着科学技术的发展,一种虚拟仪器技术诞生,利用目前比较流行的LabVIEW 开发环境,编程实现能对条码进行扫描和多工位显示的程序。虚拟仪器技术的核心是软件,其软件基本结构如图1 所示。
虚拟仪器多工位条码扫描系统的设计包括两个部分,分别为前面板设计与程序框图设计,下面对系统设计进行详细的介绍。
图1 虚拟仪器软件结构
1.1 系统前面板设计
一个好的可视化程序离不开界面的设计,界面设计是否合理直接影响程序的运行和使用。LabVIEW的界面设计就是前面板设计,为了实现多工位条码扫描和显示,就需要在界面上设计多个数据显示控件;数据显示之后,如果想要对条码进行处理可以单击“下一步”按钮;为了增加系统的灵活性,还设置了“退出”按钮,直接退出程序;为了更加人性化,在界面还设置了提示信息,防止人员错误操作;同时,在前面板上添加了检验员编号输入控件,可以将检验人的信息与条码绑定,更加贴近实际工程测试项目的要求。系统的界面设计图如图2 所示。
图2 多工位条码扫描前面板
1.2 系统程序框图设计
多条形码的功能是对扫描的条码进行多工位选择,要完成这个功能,在程序框图中需要分几个步骤实现:(1)在程序运行之前,要对程序初始化;(2)程序运行的时候,要判断条形码位数是否符合,再进行显示;(3)程序运行之后,选择进入下一步或者退出程序。
基于上面的思路,LabVIEW 后面板的程序采用帧结构,内部共分4 个帧:第一个帧主要对程序界面的工位显示控件、“进入下一步”和“退出”按钮进行初始化;第二个帧完成测试工位选择和功能选择,选择不同的工位可以控制条码显示的位置,每个工位又有是否测试的功能选择按钮。为了增加实用性,此程序增加了对采集的数据的位数进行判断的功能,如果符合标准,就在对应的工位显示,否则,不输出条码;第三帧是对提示信息进行点亮操作,增加美观;第四帧是在程序运行之后,对是否退出程序进行判断,从而实现了程序的整个操作过程。程序框图设计如图3、4 所示。
图3 扫描数据位数判断
图4 扫描条码多工位显示
特别需要指出,在第二帧中,LabVIEW 程序中的读取数据端口采用的是VISA 配置串口。其控件接线端子如图5 所示。
图5 VISA 配置串口
启用终止符使串行设备做好识别终止符的准备,如值为TRUE (默认),VI_ATTR_ASRL_END_IN 属性将被设置为识别终止符,如值为 FALSE,VI_ATTR_ASRL_END_IN 属性将被设置为0 (无)且串行设备不识别终止符。终止符通过调用终止读取操作,从串行设备读取终止符后读取操作将终止。超时设置读取和写入操作的超时值,以ms 为单位,默认值为10 000。VISA 资源名称指定要打开的资源,该控件也可指定会话句柄和类。波特率是传输速率,默认值为9 600。数据比特是输入数据的位数,其值介于5 和8 之间,默认值为8。奇偶指定要传输或接收的每一帧所使用的奇偶校验。错误输入表明VI 或函数运行前发生的错误,默认值为无错误,如错误发生在VI 或函数运行之前,VI 或函数将把错误输入值传递至错误输出;如在VI 或函数运行前没有发生错误,VI 或函数将正常运行;如在VI 或函数运行时发生错误,VI 或函数将正常运行并在错误输出中设置自身的错误状态。简易错误处理器或通用错误处理器VI可用于显示错误代码的说明信息。停止位指定用于表示帧结束的停止位的数量。流控制设置传输机制使用的控制类型。VISA 资源名称输出是由VISA 函数返回的VISA 资源名称的副本。错误输出包含错误信息,如错误输入表明在VI 或函数运行前已发生错误,错误输出将包含相同的错误信息;否则,表明VI 或函数中出现的错误状态。右键单击错误输出的前面板显示控件,从快捷菜单中选择解释错误可获取更多关于该错误的信息[4]。
1.3 条码扫描枪
该系统使用的条码扫描枪是苏州力象电脑有限公司生产的ARGOX-8520 条码扫描枪,该条码扫描枪的扫描距离为0~600 mm,扫描宽度0~160 mm,最大扫描速率450 次/s,该扫描枪采用RS232 串口与电脑通信。
1.4 串口通信
I/O 接口设备主要用来完成对被测输入信号进行采集、放大、模数转换。可根据实际需要采用不同的I/O 接口硬件设备,如数据采集卡、GPIB 总线仪器、VXI 总线仪器、串口仪器、USB 等。数据采集卡的信号处理功能强大,GPIB 和VXI 总线仪器传输数据速度较快,但是价格昂贵。
串口系统是以Serial 标准总线仪器与计算机为仪器精简平台组成的虚拟测试系统。RS232 总线是早期采用的通用串行总线,将带有RS232 标准总线接口的仪器作为I/O 接口设备,通过RS232 串口总线与计算机组成虚拟仪器系统目前仍然是虚拟仪器构成方式之一,主要适用于速度较低的测试系统,RS232 的针脚如表1 所示。由于该条码扫描系统是低速扫描,不需要较高速率的数据通信线,故采用搭配RS232 串口通信线的条码扫描枪[5]。
表1 RS232 串口针脚
2 运行结果
连接好扫描枪和LabVIEW 程序口,在程序运行之前,先选择程序框图中第二帧的VISA 配置串口的资源名称,当PC 机与外部硬件连接完成,则可以在程序框图的I/O 口处选择连接对应的端子。点击运行程序,选定光标所在的工位,通过条码扫描枪扫描条码,即可在程序的对应工位显示条码数字,单击“退出”按钮可以退出程序。其程序运行结果如图6所示。
图6 条码扫描运行界面
3 结论
对于条码扫描的实现,已经有了一些比较成熟的程序语言可以实现软件编程采集条码数据。文中基于目前比较流行的虚拟仪器技术,设计了LabVIEW 程序与外部扫描设备进行连接,完成条码扫描数据的显示和操作。在程序的设计中,充分利用了虚拟仪器编程周期短、图形化编程的特点,程序的实现结果也达到设计的目标,可以直接应用于实际生活与生产中。
[1]中国物品编织中心,中国自动识别协会.条码技术基础[M].武汉:武汉大学出版社,2008:1 -4.
[2]刘志海,万丽荣,宋作玲.条码技术及程序设计案例[M].北京:化学工业出版社,2009.
[3]李江全,刘恩博,胡蓉,等.LabVIEW 虚拟仪器数据采集与串口通信测控应用实战[M].北京:人民邮电大学出版社,2010.
[4]陈树学,刘萱.LabVIEW 宝典[M].北京:电子工业出版社,2011.
[5]胡成华,刘传瑞,郭文生.嵌入式网络编程:串口通信、工业总线、传感器网络应用开发[M].北京:电子工业出版社,2012.