基于MVC架构的LIBS软件设计与实现
陈鹏飞, 田地, 杨光
吉林大学 仪器科学与电气工程学院,长春 130061
杨光(1983-),男,讲师,博士.研究方向:分析仪器.E-mail:yangguang_jlu@163.com

作者简介:陈鹏飞(1986-),男,博士研究生.研究方向:分析仪器.E-mail:ch_pf1233@163.com

摘要

为了方便使用实验室组装的激光诱导击穿光谱(LIBS)仪器,设计并实现了一套LIBS软件。该软件包括控制软件和光谱分析软件两部分,具有系统自检、数据采集、光谱预处理和元素识别等功能。采用MVC(Model-View-Controller)对软件的系统架构进行设计,描述了各Model的设计流程,并用C#语言完成了软件的开发。实验表明该软件可方便地操作仪器实现光谱采集和定性分析。

关键词: 计算机软件; 激光诱导击穿光谱; 架构设计; 模型-视图-控制器(MVC); 面向对象
中图分类号:TP319 文献标志码:A 文章编号:1671-5497(2016)01-0242-04
Design and implementation of LIBS software based on MVC architecture
CHEN Peng-fei, TIAN Di, YANG Guang
College of Instrument Science and Electrical Engineering, Jilin University, Changchun 130061, China
Abstract

In order to the convenient use of laboratory self-assembled Laser-Induced Breakdown Spectroscopy (LIBS), a software is designed and implemented. The system includes two parts: the control software and spectrum analysis software, and it possesses the functions of self-inspection, data acquisition, preprocessing and recognition. Model-View-Controller (MVC) is employed to design the system architecture, the design process of each model is described, and C# language is used to develop the software. Experiments show that the software can feasibly operate the LIBS to achieve spectral acquisition and qualitative analysis.

Keyword: computer software; laser-induced breakdown spectroscopy; architecture design; model-view-controller; object-oriented
0 引 言

激光诱导击穿光谱[1](Laser induced breakdown spectroscopy, LIBS)是一种利用等离子体发射来获取化学元素成分的光谱技术。LIBS无需强制性制样, 分析样品量少, 对样品几乎无破坏性, 可对气体、液体和固体样品进行检测, 且能同时对多种元素进行测量。目前已广泛应用于冶金工业、生物医学分析、土壤分析、艺术品分析及环境监测等领域[2, 3, 4, 5]

目前实验室常用的LIBS仪器是通过购买光谱仪、激光器和样品台等部件组装而成, 实验人员需要操作多个软件来控制仪器获取光谱及后续的分析处理, 既耗时耗力, 还增加了出错的概率。因此, 为了提高LIBS实验效率、降低人为误差, 需要一个包含控制功能与分析功能的系统软件。有些厂家已经开发出包含控制与分析功能的软件, 如Applied Spectra公司的Axiom和TruLIBS, TSI公司推出的ChemLytics和ChemLytics Plus, LTB公司的Sophi等, 然而这些软件的开发过程并未披露, 只能参考其软件的功能和界面布局等。文献[6-8]中有关LIBS软件的研究注重于算法及功能上的实现, 软件设计方面尚未提及。MVC[9, 10]最早在Smalltalk-80程序语言的设计中被提出, 它将软件从功能上分离, 解决了高耦合的问题, 使程序结构层次清晰, 为软件功能的后续扩展提供便利, 实现一种动态的程序设计。本文应用MVC架构自主设计并开发LIBS系统软件。

1 MVC架构

MVC架构如图1所示。

图1 MVC架构Fig.1 MVC architecture

View层提供界面显示, 负责与用户交互, 具有有效性验证能力。界面操作产生的行为都由Controller层调度, 调度后的结果由Model层以事件的方式通知View, View层获取数据后刷新界面呈现给用户。

Model层是对数据的逻辑抽象, 用于封装业务逻辑相关的数据以及数据的处理方法, 能直接访问数据, 而不关心数据如何显示, 但提供通道告诉View层数据发生变动。

Controller层起到不同层面间的连接作用, 用于控制应用程序的流程。它接收View层中的用户请求, 负责解析, 然后将解析的结果分发给相应的Model, 让其进行数据处理, 处理后的结果再返回View层显示。

2 软件设计与实现
2.1 仪器组成

实验室LIBS仪器主要包括光谱仪、激光器、样品台以及光学附件等, 硬件结构如图2所示。光谱仪选用的是AvaSpec-ULSi2048型, 通过USB接口接入计算机, 并提供动态链接库进行二次开发; 激光器选用的是Litron Nano SG 120-20型, 波长为1064 nm, 通过串口控制; 样品台为Zolix公司一维可控电动位移台, 连接SC300-A1型控制箱, 通过OCX控件编程控制。光谱仪与激光器之间用延时器来实现时间同步, 可降低干扰, 提高精度。

图2 硬件结构图Fig.2 Structure diagram of hardware

2.2 需求分析

仪器控制软件与仪器的硬件系统相配套, 协调光谱仪、激光器、样品台的操作需求, 获取高质量的谱图信息。

光谱分析软件将化学计量学方法[11]及数据库技术等应用到谱图中, 解析特征谱线, 从而进一步鉴别物质或确定它的化学组成。本文研究的软件具备以下几个方面的功能:①硬件设备管理; ②实验任务管理; ③光谱数据管理; ④光谱分析处理; ⑤软硬件异常处理。

2.3 设计与实现

软件在Visual Studio 2010的开发环境下, 采用基于NET Framework 4.0的Windows窗体应用程序来开发, 可以支持软件在Microsoft Windows XP/Vista/Windows 7等多种平台上运行。软件结构如图3所示。

图3 LIBS软件结构Fig.3 Software structure of LIBS

软件的界面主要由View层构建, 包括实验控制面板、状态显示面板、参数设置面板和谱图面板等。对界面的响应组成了Controller层, 该层负责View与Model间的交互, 并控制了整个软件的流程, 是软件的控制中心; Model层由各个数据源组成, 是软件功能的实际执行者。

2.3.1 硬件接口

对硬件提供的二次开发包进行封装, 也是对底层硬件的再次抽象, 为上层提供与硬件无关的接口。此外, 精简了用户需要输入的变量, 以便加快开发速度。

(1)激光器开发流程如图4所示, 在软件启动时自动连接激光器, 将其设置为外触发模式, 激光能量为输入参数, 最大为120 mJ。

图4 激光器开发流程Fig.4 Laser development process

(2)光谱仪自带的软件开发包提供了驱动程序和动态链接库, 要求计算机事先装好驱动, 软件在启动时自动连接光谱仪, 积分时间、平均次数和延迟时间3个参数可供用户设置。工作流程如图5所示。

图5 光谱仪工作流程Fig.5 Spectrometer development process

(3)样品台工作在同步模式, 通过OCX控件编程控制, 样品台移动到指定位置后才执行其他操作, 保证时序的准确性。可设置参数为相对位移量。开发流程如图6所示。

图6 样品台工作流程Fig.6 Sample chamber development process

2.3.2 核心Model设计

(1)仪器状态。指示当前仪器的运行状态, 包括激光器是否正常、光谱仪是否正常、样品台是否正常以及是否处于实验中。当发生异常时能通过硬件自检及时提示错误原因。

(2)实验任务。从用户做实验的角度出发, 将3个主要部件的操作进一步封装, 将涉及到用户操作的数据都存在该Model中。单次光谱采集视为一个任务, 一次实验包含一个或多个任务, 实验的操作包括开始和停止。每次实验的参数作为实验方法, 可供用户存储与读取。

(3)光谱数据。当每次实验正常结束时都会产生一条光谱数据, 该Model通知View显示光谱数据。用户可选择显示或隐藏谱线, 并对谱线进行存储及读取。

(4)光谱分析。针对用户选择的谱线, 可采用五点三次平滑滤波、基于连续小波变化法的自动寻峰等操作, 结合光谱数据库实现元素识别。

3 实验及分析

将开发的软件应用于实验室组装的仪器中, 设置激光器激光能量为120 mJ, 光谱仪积分时间为30 ms, 平均次数为5次, 延迟时间为1.8 μ s, 对铝片进行实验, 结果如图7所示。

图7 铝片实验结果Fig.7 Experimental results of aluminum sheet

经过光谱分析工具处理, 可识别出铝元素, 其谱峰位置为396.079、394.360和358.674 nm, 如图8所示。

图8 光谱分析结果Fig.8 Results of analysis

4 结束语

本文提出一种基于MVC架构的LIBS仪器软件设计思路和实现方法, 并将开发的软件应用于实验室组装的系统中。实验证明该软件可以控制仪器实现光谱采集和定性分析。采用MVC架构可使得软件层次清晰, 便于快速开发和后续维护升级, 对其他系统的软件开发具有借鉴意义。

The authors have declared that no competing interests exist.

参考文献
[1] Cremers D A, Radziemski L J. Hand book of Laser-induced Breakdown Spectroscopy[M]. New York: John Wiley & Sons Ltd, 2013: 1-27. [本文引用:1]
[2] Radziemski L, Cremers D. A brief history of laser-induced breakdown spectroscopy: from the concept of atoms to LIBS 2012[J]. Spectrochimica Acta Part B: Atomic Spectroscopy, 2013, 87(10): 3-10. [本文引用:1]
[3] Michel A P M. Review: applications of single-shot laser-induced breakdown spectroscopy[J]. Spectrochimica Acta Part B: Atomic Spectroscopy, 2010, 65(3): 185-191. [本文引用:1]
[4] Pathak A K. Assessment of LIBS for spectrochemical analysis: a review[J]. Applied Spectroscopy Reviews, 2011, 47(1): 14-40. [本文引用:1]
[5] Hahn D W, Omenetto N. Laser-induced breakdown spectroscopy (LIBS), part II: review of instrumental and methodological approaches to material analysis and applications to different fields[J]. Applied Spectroscopy, 2012, 66(4): 347-419. [本文引用:1]
[6] Mateo M P. Versatile software for semiautomatic analysis and processing of laser-induced plasma spectra[J]. Spectrochimica Acta Part B: Atomic Spectroscopy, 2005, 60(7-8): 1202-1210. [本文引用:1]
[7] 涂彩, 袁心强. LIBS分析软件的研究及其宝石学应用[J]. 宝石和宝石学杂志, 2008(2): 26-29.
Tu Cai, Yuan Xin-qiang. Study on analysis software for LIBS and its application in gemmology[J]. Journal of Gems and Gemmology, 2008(2): 26-29. [本文引用:1]
[8] 胡志裕, 张雷, 马维光, . 基于LabVIEW的激光诱导击穿光谱谱线识别软件研究[J]. 光谱学与光谱分析, 2012, 32(3): 602-605.
Hu Zhi-yu, Zhang Lei, Ma Wei-guang, et al. Analysis of software for identifying spectral line of laser-induced breakdown spectroscopy based on LabVIEW[J]. Spectroscopy and Spectral Analysis, 2012, 32(3): 602-605. [本文引用:1]
[9] Glenn E Krasner, Stephen T Pope. A cookbook for using the model-view controller user interface paradigm in Smalltalk-80[J]. The Journal of Object Technology, 1988, 1(3): 26-49. [本文引用:1]
[10] 刘佳, 宋爱国. 一种基于MVC模式和插件的触觉交互软件体系结构[J]. 高技术通讯, 2009, 19(8): 855-860.
Liu Jia, Song Ai-guo. An software architecture for haptic interaction based on MVC pattern and plug-in[J]. High Technology Letters, 2009, 19(8): 855-860. [本文引用:1]
[11] 褚小立. 化学计量学方法与分子光谱分析技术[M]. 北京: 化学工业出版社, 2011: 114-119. [本文引用:1]