Artificial Intelligence and Robotics Research 人工智能与机器人研究, 2013, 2, 60-63 http://dx.doi.org/10.12677/airr.2013.21010 Published Online February 2013 (http://www.hanspub.org/journal/airr.html) Board Inspection System Based on Object-Oriented Technology of LabVIEW Yugang Wang, Xingtang Zhao, Yuanlei Li, Xuhua Dong Naval Aeronautical Engineering Academy of Qingdao Branch, Qingdao Email: flyingmanwang@163.com Received: Jan. 16th, 2013; revised: Jan. 31st, 2013; accepted: Feb. 7th, 2013 Abstract: This ar ticle introduces the certain board inspection system based on object-or iented technology. Through the methods of graphical object-oriented programming, to separate this system into several discrete models. Using the merits of object-orien ted sufficiently to realize inspecting boards eventually. Keywords: LabVIEW; Object-Oriented; GOOP; Inspection System 基于 LabVIEW 面向对象技术的某型电路板测试系统 王玉刚,赵兴堂,李元垒,董绪华 海军航空工程学院青岛校区,青岛 Email: flyingmanwang@163.com 收稿日期:2013 年1月16 日;修回日期:2013 年1月31 日;录用日期:2013 年2月7日 摘 要:本文介绍了基于 LabVIEW 面向对象技术的某型电路板检测系统,通过面向对象程序设计方法(Graphical Object-Oriented Programming),将现有代码分解为一个个离散的模块,充分利用面向对象设计与开发的优点与好 处,最终实现电路板检测任务。 关键词:LabVIEW;面向对象;GOOP;测试系统 1. 引言 LabVIEW 是虚拟仪器集成开发环境的总称,它是 为替代常规的 Basic或C语言而设计的,LabVIEW 是 编程语言而不仅仅是一个软件开发环境。作为编写应 用程序的语言,除了编程方式不同外,LabVIEW 具备 语言的所有特性,因此又称之为 G语言[1]。G语言是 一种适合应用于任何编程任务、具有扩展函数库的编 程语言。同时G语言丰富的扩展函数库还为用户编程 提供了极大的方便。这些扩展函数库主要面向数据采 集、GPIB 和串行仪器控制以及数据分析、数据显示 和数据存储。G语言还包括常用的程序调试工具,比 如容许设置断点、单步调试、数据探针和动态显示执 行流程等功能。G语言与传统编程语言最大的差别在 于编程方式,一般高级语言采用文本编程,而 G语言 采用图形化编程方式。 近年来,面向对象的思想逐渐在程序设计领域占 据主流,并且广泛的应用于系统的分析、设计、测试 等领域。今天,同样的发展也发生在图形化的G语言 身上[2]。LabVIEW 的G语言本身是一种基于数据流的 图形化语言,在过去,它在中小型的测试系统开发中 具有快速直观的优点。但随着技术的快速发展,越来 越多的测试工程师倾向于在基于数据流的 G语言上 使用面向对象的技术来增强软件的升级性、开发性、 代码重用性,我们称之为 GOOP(Graphical Object Copyright © 2013 Hanspub 60 基于 LabVIEW 面向对象技术的某型电路板测试系统 Oriented Pr og r am ming)。 2. GOOP的特性 通过对面向对象的支持,用户能够利用面向对象 的设计方法和工具来设计和分析系统,例如 UML 统 一建模语言、Rational Rose设计工具等。这使得通过 LabVIEW 开发和维护大型工程变得更加容易。图形化 的面向对象编程使基于组件的开发方式更容易得到 实施,因此极大地扩展了传统基于数据流的 LabVIEW 的能力。GOOP 的特性总的来说,归纳如下: 2.1. 便于升级与维护 LabVIEW 传统的编程范例是自顶而下进行功能 性分解,随着程序的增大,模块数目增多,由于模块 间的关系是强耦合性的,因此对其中任一个模块的改 变都可能引起设计者所意想不到结果。而对象的核心 是被封装的数据空间以及私有方法,它与外界的接口 由一组公有方法的调用来实现,这一系列的可编程接 口能够有效的遏制其间的依赖性[3]。因此面向对象技 术(OO)具有低耦合、高内聚的特性,对象之间采用松 散连接,具有非常好的升级性与维护性。 2.2. 代码复用性 非面向对象技术(OO)环境下,从应用层到全局数 据空间,严重的数据依赖性大大减少了潜在的代码复 用。但是代码复用对于面向对象技术(OO)程序非常简 便。因为对象的接口是一组已经定义好的公共方法, 这使得设计者能够轻松的决定复用构件的功能性。程 序设计者通过类所定义的公共方法来进行数据访问, 这样也大大减少了在代码复用时的误用风险。 2.3. 易开发性 传统的功能性模块分解方法虽然解决了软件开 发人员的合作问题,但仍然存在着大量的协作问题。 而对于面向对象的设计,系统可以以自然的方式分成 几个类,这些类通过属性和方法调用来与其他类联系 起来,这样开发者就能够各自独立的开发驱动类、用 户接口类、逻辑运算类,而不用像功能性分解那样关 心子程序之间的连接问题并使得调试工作更加容易。 3. 基于面向对象技术的某型电路板 测试系统 某公司生产如下三种电路板。A:基本数据采集 电路板;B:精密数据采集电路板。 公司主要生产两种类型的电路板,且每块电路板 均有电阻、电容和芯片 3种元件组成,需对 3条流水 线上每一块板卡进行检测来确定电路板上各个元件 位置是否摆放正确。因此该系统在每条流水线上放置 了一个摄像头,它们将电路板的图片发送到同一台计 算机上,该计算机通过检测程序来判断电路板是否安 装正确。系统的构成如图 1所示。 3.1. LabVIEW的层次结构 针对该检测任务,该系统显示了一个基于面向对 象的解决方式[4]。在LabVIEW 中新建的类有个默认的 父类:LabVIE W Object。LabVIEW Object是LabVIEW 中所有类的“终极”祖先,所有的类都是它的子类。 于该型电路板测试系统,可以分为电路板设计类和 对 COMPUTER A B Figure 1. System configuration 图1. 系统结构图 Copyright © 2013 Hanspub 61 基于 LabVIEW 面向对象技术的某型电路板测试系统 电路板部件类。电路板设计类中包含数据采集电路板 设计类,而该公司生产的具体的 A电路板和 B电路板 属于其中的子类。具体的类层次结构图如图 2所示。 3.2. 电路板检测系统的实现 在面向对象的解决方案中,将该电路板检测系统 分为相对独立的很多模块,面向对象的方法采用了更 多的子 VI[5]。LabVIEW 中的子 VI(SubVI)类似于文本 编程语言中的函数,通过子 VI,可以把程序分割为一 个个小的模块来实现。其中每一个子 VI都对应一个 非常具体的任务,因此子 VI 的程序框图更小,而子 VI 的数目更多。该系统具体的实现框图如图 3所示: 在该电路板检测系统中,包含产生测试的图片子 VI、 获取测试的图片子VI、选择类子VI、检测输入的图 像子 VI等等。 其中,选择类用于根据输入的电路板的类型产生 相应的对象[6]。而检测输入的图像用于检测输入的对 象。该电路板检测系统通过调用电路板对象的动态方 法Get Components.vi获得相应电路板对象的元件数 组,再通过调用每一个元件对象的动态方法 Self Test.vi 进行自检测。最后将电路板上每一个元件的自 检测结果求“与”就得到了电路板的测试结果。 当该系统需要进一步改进时,采用面向对象的方 法则会显示出更大的优势来。采用面向对象的解决方 案只需要修改非常少的地方,这就使得程序更改更加 容易,还极大的减少了由于修改可能带来的潜在错 误。 4. 结论 显然,面向对象的解决方案容易被升级以适应新 LabVIEW 对象 电路板部件类 电路板设计类 数据采集电 路板设计类 GPIB 电路 板设计类 数模/模数 转换类 FPGA 芯 片类 信号过 滤类 基本数据采集 板电路设计类 精密数据采集 板电路设计类 Figure 2. Class hierarchy diagram of LabVIEW 图2. LabVIEW的类层次结构图 Figure 3. Bard inspection system 图3. 电路板检测系统 Copyright © 2013 Hanspub 62 基于 LabVIEW 面向对象技术的某型电路板测试系统 的变化。一般来说,面向对象的优势在程序的第一版 本中并不能得到太多体现,但是在以后的更多修改版 本中,面向对象带来的代码易修改性以及代码的健壮 性将会得到淋漓尽致的展现。GOOP 在LabVIEW 中 的应用,显著的提高了测试系统的开发性。随着技术 的不断成熟,LabVIEW 平台下的中大型测试系统开 发,终将转向 GOOP。 参考文献 (References) [1] 杨乐平, 李海涛, 赵勇等. LabVIEW高级程序设计[M]. 北京: 清华大学出版社, 2003: 470-485. [2] 徐洪安, 费仁元, 王民. 用ADO构建LabVIEW 中的数据库 访问接口[J]. 北京工业大学学报, 2003, 29(2): 138-140. [3] 雷振山. LabVIEW 8.2基础教程[M]. 北京: 中国铁道出版社, 2008. [4] National Instruments Corporation. IMAQ vision concepts man- ual, 2000. [5] 李建文, 刘笃喜, 朱名诠. 基于ADO 技术的 LabVIEW访问 数据库的方法[J]. 自动化仪表, 2003, 24(9): 15-17. [6] 贾小丽, 郭钟宁等. 基于 LabVIEW 和IMAQ 的微型电感器的 焊点质量检测系统[J]. 机电工程技术, 2007, 36(10): 44-47. Copyright © 2013 Hanspub 63 |