随着社会的发展,生产技术水平的不断提高,钢铁冶金、气体管道传输、化工等行业生产力需不断提高,但必须保障生产安全。基于可调谐半导体激光吸收光谱(TDLAS)技术的激光气体遥测仪已经成为提高生产效率、保障安全生产的重要仪器。如此的社会需求激起了国内外仪表厂商的极大的研究兴趣,激光遥测仪表的市场竞争愈演愈烈。
20世纪90年代后期,随着半导体激光器的大规模生产及科学研究的应用,TDLAS技术得到了迅速发展。21世纪初期,该技术逐渐被国内的研究者关注,现在已有很多企业推出了激光气体遥测仪,并投入使用,同时,国内也制定了激光器产品及分析仪器的相关国标。但是大多数国标也只是针对激光器产品准则与分析仪器通用准则,对整机测试系统的设计与研究并没有深入。整机测试系统包括硬件和软件部分,本文主要设计软件部分的自动化实现。
1 激光气体遥测仪整机测试研究 1.1 激光气体遥测仪检测气体的原理激光气体遥测仪是基于红外吸收光谱原理,采用可调谐半导体激光吸收光谱技术(TDLAS)设计而成的,TDLAS技术主要是利用可调谐半导体激光器的窄线宽和波长随注入电流改变的特性实现对分子的单个或几个距离很近且很难分辨的吸收线进行测量,它是一种高分辨率、高速度、高灵敏度的单线吸收光谱技术,通过改变半导体激光器的工作电流或工作温度等参数以调谐激光的输出波长,使仪器内的激光器输出特定波长的光束,扫描被测气体(甲烷气体)以获得某一条或一簇吸收谱线的吸收光谱,通过分析该吸收光谱进而获得被测气体的浓度信息[1, 2, 3, 4]。
TDLAS仪表普遍采用测量二次谐波信号来检测气体浓度,表达式为

式中:S2f为二次谐波信号;I0为光强直流分量;H2(v,a)为透射系数为二阶谐波分量; v 为调制中心频率;a为调制幅;T为当前温度。进一步化简[5]得

被测气体的浓度表达式为

仪表主要由如图 1所示的4部分组成,测量时通过将一束激光指向泄漏点,得到一簇吸收谱线的吸收光谱,依次通过接收光汇聚及校准单元、信号驱动与校准单元,最后将被测气体平均浓度信息显示在仪器界面。
![]() | 图 1 激光气体遥测仪系统框图 Fig. 1 Block diagram of laser gas remote sensing instrument system |
整机测试系统主要由如图 2所示的3部分组成,上位机是整个系统最为重要的部分,协调控制整个系统协同工作。上位机发送命令控制激光遥测仪设置自身参数,并读取浓度测量值等其他参数。质量流量计为测试流程提供所需的校准气。
![]() | 图 2 整机测试系统基本框图 Fig. 2 Block diagram of laser gas remote sensing instrument testing system |
当前,对激光气体遥测仪表进行整机测试时,只能根据工艺文件手动操作,操作过程相对复杂、费时、而且很容易出错,为了解决这个问题,提高测试效率,本文设计一种自动化测试软件,不仅能够解决手动测试时存在的问题,提高测试的准确度,而且可同时连接多台仪表进行测试,既可节约校准气体又可提高测试效率。
1.3 整机测试过程激光气体遥测仪整机测试流程必须较全面地涵盖所有需要测试的项目,根据测试工艺合理划分多个测试项。整机测试是对一台激光气体遥测仪表性能的全面检测,各个测试项必须要求明确,测试方法适当,各个测试项之间相互独立,测试项顺序合理安排,以保证仪表性能的完整检测。整机测试流程如图 3所示,测试过程中资源分配情况如下所述。
![]() | 图 3 激光气体遥测仪整机测试流程图 Fig. 3 Flow diagram of laser gas remote sensing instrument testing |
(1) 激光气体遥测仪:接收上位机发送的通讯命令,并完成相应的操作,然后对上位机作出应答。
(2) 上位机:根据测试项流程发送通讯命令,使仪表做相应操作,获取仪表信息,从而判断仪表性能。
(3) 质量流量计:控制测试过程中气路,保证测试过中零气、标气按所需比例通入。
2 整机自动化测试软件设计 2.1 整机自动化测试软件需求根据激光气体遥测仪的整机测试流程、测试工艺,分析得到自动化测试软件主要需求。该软件主要包括几部分,即工装配置、信息管理、测试管理、测试项目管理,每部分具体叙述如下。
(1) 工装配置:整机测试前,进行网络配置和流量计的配置,包括需要连接到多台仪表、两台质量流量计MKS等所需的网络信息;仪表和流量计的相关属性。
(2) 信息管理:实时显示测试过程提示信息;保存测试结果信息;界面实时显示浓度趋势等。
(3) 测试管理:可以同时连接多台激光气体遥测仪表(>=1)、单个测试项测试、多个测试项组合测试等。
(4) 测试项目管理:内部信噪比、纠偏系数、纠偏阈值、调零标定、探测下限、输出波动与重复性、示值引用误差。
2.2 整机自动化测试软件的整体架构该软件由平台层、业务层、界面层构成;平台层使用FPI上位机软件部目前使用的开发平台;业务层依赖平台层开发,主要包括系统配置模块、运行时设备管理模块、辅助功能模块等;界面层依赖业务层和平台层开发,实现具体用户交互处理,各层次主要关系如图 4所示。
![]() | 图 4 软件各层次主要关系图 Fig. 4 Hierarchical relation diagram of testing software |
该自动化测试软件将在.NET平台下借助Visual Studio 2005开发工具采用C#语言开发。Visual Studio 2005是一套完整、高效、人性化的集成开发环境(IDE),C#是微软公司针对.NET Framework设计的一种面向对象的高级程序设计语言,是一种安全的、稳定的、简单的、优雅的,同时兼顾系统开发和应用开发的最佳实用语言,提供的类型安全、版本控制、垃圾收集等功能能够有效协助程序员快速高效开发应用程序[6, 7, 8]。
2.3 整机自动化测试软件中各主要模块界面层依赖业务层、平台层开发,具体模块不做详细介绍。
2.3.1 平台层各主要模块 2.3.1.1 xml文件管理模块该模块是上位机的基础模块,应用程序使用xml文件来配置信息或保存信息。该模块主要类关系如图 5所示,主要由以下几部分组成。
![]() | 图 5 xml模块主要类关系图 Fig. 5 Relation diagram of classes in xml module |
VarConfig:变量配置管理器,与Var.xml对应。
ConstConfig:常量配置管理器,与Const.xml对应。
BaseNode:xml配置节点的基础类,用于加载与保存各个模块的xml文件。
IdNameNode:BaseNode类的子类,xml的节点,必须包含id和name字段。
NodeList:管理xml文件中的所有子节点,包含一系列IdNameNode。
Property:IdNameNode类的子类,必须包含value字段的配置节点类型。
2.3.1.2 通讯管理模块该模块主要依据PortManager.xml文件管理与上位机通讯交互设备的通讯链路。
该模块中主要的接口关系如图 6所示,对应功能如下所述。
![]() | 图 6 通讯管理模块主要接口关系图 Fig. 6 Relation diagram of interfaces incommunication |
IConnector:抽象的开关器,包括打开、关闭、连接状态。
IReceivable:抽象的接收器。
IBus:抽象的物理链路,能够读取、写入字节流。
IPort:抽象的协议层,继承自IConnector和IPortOwner,能够发送、接收字节流对象。
IPortOwner:抽象协议层的上层对象,继承自IReceivable。
该模块中主要的类及其功能如下所述,主要关系如图 7所示。
![]() | 图 7 通讯管理模块主要类关系图 Fig. 7 Relation diagram of classes in communication |
BaseBus:抽象类,总线基类,实现IBus接口,各物理链路必须继承该类以实现各个业务。
BasePort:协议层基类,实现IPort接口,各协议层必须继承该类以实现各个业务。
BusPort:BasePort的子类,关联物理链路与协议层的桥梁。
Pipe:继承IdNameNode类,表示一条通讯链路,用于链路的创建、删除、打开、关闭,用于通讯指令的发送、接收。
PortManager:BaseNode的子类,表示一个通讯链路管理器,与PortManager.xml对应。
2.3.1.3 仪器管理模块该模块主要根据Instrument.xml文件,管理与上位机通讯交互的设备信息,该模块主要类如图 8所示,其功能如下所示。
![]() | 图 8 仪器管理模块主要类关系图 Fig. 8 Relation diagram of classes in instrument |
Instrument:继承自IdNameNode类,表示一个设备信息。
InstrumentManager:继承自BaseNode类,表示一个设备信息管理器,与InstrumentManager.xml文件相对应。
2.3.2 业务层各主要模块 2.3.2.1 通讯封装模块该模块主要借助已经开发的相应工具,针对不同的通讯命令生成其相关的通讯方法,提供通讯调用,主要由获取通讯命令结果方法组成,对应平台层的通讯管理模块,主要模块如图 9所示。
![]() | 图 9 业务层通讯封装模块主要类 Fig. 9 Main classes of communication in business |
通讯封装模块封装了与上位机通讯的各个设备通讯协议与通讯指令,激光气体遥测仪表与上位机的通讯报文由帧头、目标地址信息、源地址信息、命令码、命令扩展码、数据信息区、校验区、帧尾组成。
2.3.2.2 设备管理模块该模块提供后台处理类,完成系统体系结构中的各个设备的逻辑封装,完成其信息的后台记录,提供与具体设备的交互方法,提供设备相关结果信息的处理功能。类关系如图 10所示。
![]() | 图 10 业务层设备管理模块主要类关系 Fig. 10 Relation diagram of classes in business instrument module |
RuntimeInstrumentManager表示运行时仪器管理类,RuntimeInstrument表示运行时仪器抽象类,RuntimeCH4表示仪器。
2.3.2.3 系统配置模块该模块主要根据MultiBEManager.xml管理上位机的通信协议类型与物理链路类型,提供物理总线、通信协议以及设备与PortManager.xml 、InstrumentManager.xml的配置方法。该模块中主要类及其功能如下所示。
Bus:继承自IdNameNode类,表示一种物理链路信息,一种物理链路可支持多种通讯协议,一个物理链路端口只能使用一种通讯协议,该类中,impBus表示物理链路对象,propertyCreaterClass表示物理链路通讯参数的xml配置方法对象,ententes表示物理链路所支持的通讯协议集合。
Entente:继承自IdNameNode类,表示一种通讯协议,该类中,instrumentTypes表示通讯协议所支持的设备类型、impProtocol表示在通讯链路管理模块中的通讯协议栈对象、propertyCreaterClass表示通讯协议栈的xml配置方法对象。
MultiBEManager:继承自BaseNode,与MultiBEManager.xml配置文件对应,表示一种链路协议管理器。
InstrumentUtil:用于修改并保存仪器的相关属性。
PortUtil:进行端口管理、pipe设置。
2.3.2.4 辅助功能模块该模块主要实现整机测试项目的管理,包括各个测试项具体实现、测试项管理器(ProdTestManager)设计、多台仪表同时测试管理器(MultiProdTestManager)设计、测试状态、波形信息控制等。
3 总 结仔细分析软件需求,然后撰写需求规格说明书、概要设计说明书,最后开始软件开发,现已完成该整机自动化测试软件,并且该软件已运用到了实际操作中,测试界面如图 11所示(以同时连接两台仪表为例),从图可看出该软件界面能够实时准确地显示测量浓度趋势;同时该软件还可将采集到的数据以excel形式保存在相应的文件夹,供后续查看。二期工作在原有功能的基础上增加保存波形图、读取整测过程中对应全部参数并导出等功能。
![]() | 图 11 测试界面实时显示 Fig. 11 Real time interface of testing process |
| [1] | 俞大海,顾海涛,陈人,等.用于干熄焦循环气检测的在线激光气体分析仪[J].自动化仪表,2007,28(S):108-109,112. |
| [2] | 俞大海,闻路红,王兴华,等.基于DLAS技术的激光气体分析仪的在线应用[J].燃料与化工,2009,40(5):14-17. |
| [3] | BARBUT L,VINOGRADOVI,DURRYG,et al.TDLAS a laser diode sensor for the in situ monitoring of H2O,CO2 and their isotopes in the Martian atmosphere[J].Advances in Space Research,2006,38(4):718-725. |
| [4] | LINSB,ZINNP,ENGELBRECHTR,et al.Simulation-based comparison of noise effects in wavelength modulation spectroscopy and direct absorption TDLAS[J].Applied Physics B,2010,100(2):367-376. |
| [5] | 赵裕繁.激光气体分析仪整机测试系统设计[D].杭州:杭州电子科技大学,2012. |
| [6] | WATSONK,NAGELC.C#入门经典[M].4版.齐立波,译.北京:淸华大学出版社,2008:3-9. |
| [7] | HOFFMANK,KRUGERL.C#.NET技术内籍[M].董梁,高猛,译.北京:淸华大学出版社,2006:25-36. |
| [8] | NAGELC,EVJENB,GLYNN J.C#高级编程[M].6版.李铭,译.北京:清华大学出版社,2008:1-21. |
2016, Vol. 38
Issue (3): 209-215












