APP下载

基于VB的工业气相色谱仪谱图处理系统

2015-01-13姜学庆

化工自动化及仪表 2015年5期
关键词:色谱仪气相色谱仪检测器

谢 逍 姜学庆 王 琰

(天华化工机械及自动化研究设计院有限公司,兰州 730060)

过程气相色谱仪(Process Gas Chromatography,PGC)又称工业气相色谱仪,是一种精密且具有防爆功能的在线过程分析仪器,主要功能是实现对混合气体中各组分的成分分析和检测,广泛应用于石油、化工、生物化学、医药卫生、食品工业及环保等领域。工业气相色谱仪基于先分离后检测的原理进行分析,具有选择性好、灵敏度高、分析对象广泛、多流路及多组分分析等优势。

目前,国内使用的工业气相色谱仪大多为进口产品。国际上,以德国西门子、美国ABB和日本横河公司的产品为代表,其技术较先进。国内工业气相色谱仪的设计生产厂商相对较少,市场占有率极低。因此,研发国产化的工业气相色谱仪意义重大。在此,笔者主要介绍整个工业气相色谱仪产品研发过程中控制系统中的色谱图处理系统(数据采集、数据存储、色谱峰峰面积计算及干扰峰处理等)的实现过程。

1 编程语言的选择①

开发上位机控制系统首先要选择合适的编程语言。目前使用比较广泛的编程语言有:C语言、C++、Visual Basic(VB)、组态王、MCGS及Lab Windows/CVI等[1]。考虑到研发成本、开发难易度、维护的便捷性、系统稳定性及合理性等因素,最终决定选用VB语言来实现上位机控制系统的编程。

VB是一种由Microsoft公司开发的结构化、模块化、面向对象的、包含协助开发环境的、以事件驱动为机制的可视化程序设计语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻松地使用DAO、RDO和ADO连接数据库,或者轻松地创建ActivateX控件[2]。选择使用VB的主要原因是,VB可以很方便地建立简洁、人性化、易操作的用户界面,可以大幅减少界面部分的编程工作量,同时又可以与Access数据库很好地连接,实现数据的存储并方便后续数据处理。

2 工业气相色谱仪的数据采集、存储与处理

工业气相色谱仪的工作原理为先分离、后检测。样品首先经过预处理装置进行简单的稳流、稳压处理,然后经采样阀定量后随载气送入色谱柱,色谱柱是色谱仪的核心,主要对样品中各组分进行分离;分离后的各组分先后进入到检测器中,转换成相应的电信号(mV),此信号经放大和模/数转换后生成相应的色谱图和数据,再对色谱图和数据进行相关的计算处理,即可得到其分析结果。如图1所示,由A+B组分组成的样品经过色谱柱后,由于A、B两种组分在固定相(色谱柱)中具有不同的分配系数,所以其通过色谱柱所需的时间不同,在色谱柱中分离以后再先后进入到检测器,随着时间的推移,分离后的A、B组分先后进入到热导检测器中,产生了相应的毫伏信号,从而达到先分离的目的。

图1 色谱柱分离过程示意图

色谱图指样品流经色谱柱和检测器后得到的电信号—时间曲线,又称色谱流出曲线,如图2所示,从色谱图中可以很清楚地看出样品中包含的组分数,根据各组分的色谱峰峰顶(电信号最大值)出现的时间(保留时间)可实现其定性分析;又根据峰面积与组分浓度或者质量成正比的关系,对数据库中存储的数据进行处理后,计算出色谱峰高或者峰面积即可实现定量分析。

图2 色谱图

2.1 数据采集

工业气相色谱仪常用的检测器主要有热导检测器(TCD)和氢火焰离子化检测器(FID)两种。虽然两种检测器的检测原理不同,但是对其产生的电信号的处理方法却是大同小异。数据采集部分主要包括硬件连接和数据通信。

2.1.1硬件连接

主要的硬件设备包括:检测器、放大模块、采集卡及控制器等。经色谱柱分离后的各组分经检测器产生相应的电信号(mV),由于该信号较弱,故增加放大模块,将该信号放大到0~5V范围内方便采集卡采集,经过采集卡后该信号被送到上位机控制系统。信号由采集卡送到上位机控制系统必须要编写相应的接口程序与采集程序,才能实现数据的识别和接收。

2.1.2数据通信

通过VB编写相应的硬件接口程序实现数据的通信,达到采集数据的目的[3]。由于电信号的采集是一个持续的过程,会根据不同的采集频率产生大量的数据,后续还需要对数据进行计算处理,因此需要将数据存储到数据库中。数据采集部分程序代码如下:

Read:

If PCH2953_ReadDeviceProAD_Half(hDevice1,ADBuffer(0),nReadSizeWords,nRetSizeWords) =False Then

MsgBox "ReadDevice Error"

End If

For Index=1 To 4 Step 1

ADData1=(ADBuffer(1) And 65535)

ADData2=(ADBuffer(2) And 65535)

ADData3=(ADBuffer(3) And 65535)

ADData4=(ADBuffer(4) And 65535)

Case 4:′ 0V - +5V

fVolt1=(5000# / 65536) * ADData1

fVolt2=(5000# / 65536) * ADData2 / 4095 * 200

fVolt3=(5000# / 65536) * ADData3 / 4095 * 200

fVolt4=(5000# / 65536) * ADData4 * 0.249- 0.8 * 0.249

strTemp1=fVolt1

strTemp2=fVolt2

strTemp3=fVolt3

strTemp4=fVolt4

Text6.Text=Format(strTemp1,"00.00")

Text2.Text=Format(strTemp2,"00.0")

Text4.Text=Format(strTemp3,"00.0")

Text5.Text=Format(strTemp4,"00")

2.2 数据存储

选择使用VB实现上位机控制系统编程的重要原因就是VB可以和Access数据库很好地结合,将采集到的实时数据存储到Access数据库中,方便后续处理和历史数据查询。数据存储包括Access数据库的设计和VB与数据库的连接。

首先打开Access数据库,根据设计向导设计需要的数据库,由于在后续的数据处理部分需要使用到时间、电信号值及序号等参数,所以在数据库的表中定义了单位时间及电压(峰值)等字段,并选择相应的数据类型,然后将该数据库命名为dianya.mdb并保存在E盘,方便后续的查看与连接。

设计好数据库后就需要编写相应的代码将采集到的实时数据按照约定的规则存储到数据库中,部分程序代码如下:

Dim dbs As Database

Dim recordsetdb1 As Recordset

Set dbs=OpenDatabase("E:dianya.mdb")

Set recordsetdb1=dbs.OpenRecordset("表1")

recordsetdb1.AddNew

recordsetdb1(1).Value=Time

recordsetdb1(2).Value=fVolt1

recordsetdb1(3).Value=m

recordsetdb1.Update

recordsetdb1.Close

2.3 谱图处理

如果说色谱柱是色谱仪的“心脏”,那么检测器就是色谱仪的“眼睛”,上位机控制系统就是色谱仪的“大脑”。在上位机控制系统中完成了色谱仪所有的数据处理、状态分析和阀件控制,包括数据的采集、存储与处理、阀件的控制及判断等。色谱图处理部分主要介绍了峰面积的计算、干扰峰处理和定量分析,色谱峰面积的计算又可实现样品组分的定量分析,因此是整个控制系统中很重要的一环。色谱图处理包括峰面积算法介绍、干扰峰处理、定量分析和编程实现。

2.3.1峰面积算法改进

色谱仪定量的基础是峰面积A和样品组分含量m成函数关系(m∝A),所以进行定量分析就必须计算峰面积。即使用峰高定量也是以峰面积为基础的,只是假定半高峰宽是常数而已。计算峰面积的常用方法有峰高乘半高峰宽和三角形法。

峰高乘半高峰宽法是将色谱流出曲线下面和基线上面所包括的面积定义为峰面积,如图3所示。

学者们从不同角度对企业文化进行了界定,有的认为,“企业文化是逐步形成并为全体员工所认同、遵循、带有本企业特点的价值观念、经营准则、经营作风、企业精神、道德规范、发展目标的总和”;有的认为,“企业文化是一种群体文化,是企业内在的文化特质、外在文化环境和群体的文化素质的综合体现”;有的认为,“企业文化是由企业的行为文化、心理文化和物质文化构成的”;有的认为,“企业文化是一种观念形态的价值观,是企业的经营哲学,也是企业信仰。”这些定义虽然侧重点不同,但都表达了“企业文化能够引导员工行为并支持企业持续发展”的观点。

图3 峰高乘半高峰宽法测面积

由图3可知,采用峰高乘半高峰宽法计算的峰面积A为:

A=1.056hWh/2

在实际计算时,总是将峰面积(未知与标准,或未知与未知)进行互相比较,因此在计算时往往把系数1.056约掉,即:

A=hWh/2

在使用这种方法测量面积时,往往由于半高峰宽的测量误差较大而造成测量面积的误差,当半高峰宽小于3mm时想要把误差精度控制在小于4%是很困难的。

用三角形法求色谱峰的面积,是从色谱峰的两个拐点做切线和基线相交,变成一个三角形,如图4所示。用三角形ABC的面积代表色谱峰的面积,即:

图4 三角形法测面积

但真正的峰面积是0.94A,和峰高乘以半高峰宽表示峰面积一样把系数0.94略去了。

由于以上两种计算峰面积的方法都是以色谱峰是对称峰为前提条件来计算的,而实际峰形不可能都是对称的,因此就需要采用一种更合理的计算峰面积的方法。经过大量的分析研究后,笔者决定采用一种新方法——梯形法。

梯形法是将色谱峰先分割成众多的小梯形,如图5所示,然后将这些小梯形的面积累加起来,用累加和来表示该峰的峰面积,即:

式中f——采集频率;

hi——第i个梯形的上底;

hi+1——第i个梯形的下底;

n——有效的采集次数;

Si——第i个小梯形的面积。

代入整理后可得:

由于S1和Sn的数值非常小,因此可以忽略不计,故最终的峰面积计算公式为:

图5 梯形法测面积

理论上,只要小梯形分割得足够多,计算出的峰面积就越接近真实值,误差也就越小。

2.3.2干扰峰的处理

在计算峰面积时,给出的计算方法都是在没有干扰峰的情况下。仪表实际运行当中,干扰峰是经常出现的,因此排除干扰峰是必须要解决的问题。

经过研究思考后提出了“峰窗”的概念,如图6所示,首先将需要处理或者需要计算峰面积的色谱峰框定在一个范围内,然后再在这个范围内根据斜率检测电平判断是否有峰并实现其峰面积的计算。利用峰窗的概念不仅可以有效地去除干扰峰,使其不影响有效峰,还可以根据实际工艺需要有选择性地计算色谱峰的峰面积。

图6 峰窗示意图

2.3.3定量分析

气相色谱的定量分析就是计算各组分的百分含量,定量分析只与各组分的峰面积和色谱仪整机运行状态有关,与组分的结构和性质没有固定关系,因此在进行定量分析时必须使用标准物质进行对比。由于使用的标准不同,就派生出不同的定量方法,工业色谱中常用的计算方法有外标法、全面积归一法和全组分归一法。

外标法就是不往待测样品中加标准样,而是在与测定样品相同的色谱条件下,用已知含量的标准物单独进行色谱测定,用得到的结果和被测未知样品相同组分的色谱峰进行比较,通过标准样的含量来计算未知样品相对应组分的含量,即:

式中Ai——未知组分峰面积;

As——标准物峰面积;

ωi——未知组分百分含量;

ωs——标准物百分含量。

全面积归一法是将测量得到的所有色谱峰面积进行100%的归一化计算,即所有的组分含量累加和应为100%,计算公式为:

式中Ai——相应组分的峰面积;

ωi——相应组分的百分含量;

ΣAk——各组分所测峰面积之和。

全组分归一法是把样品中所有组分的峰面积全部测量出来,再乘以各自的校正因子并求和,把总和作为全组分样品的含量(100%),用此总和去除每一组分的峰面积和校正因子的乘积即可算出这一组分的百分含量,即:

式中 ΣAiFi——各组分峰面积乘以各自校正因子的总和。

各种化合物在不同的检测器上都有不同的应答值,所以尽管往色谱仪中注入相同质量的物质,但得到的峰面积却不一样,因此用峰面积定量时就必须给色谱仪上得到的峰面积乘以一个系数,从而得到此成分的质量。在实际分析中,常用某一物质作为标准,得到一个相对的校正系数,该校正系数即为校正因子。

使用全组分归一法定量时同样会有一些限制:样品中某些组分不能出现色谱峰时不能使用,即必须使所含组分全部流出色谱柱,在检测器上要有信号;样品中有些组分在色谱系统中有部分分解时不能使用。

目前使用的标定方法为外标法,即使用标准气来进行标定,利用标准气求得的校正因子来标定样品气与标准气中相同气体的组分含量。

2.3.4编程实现

首先利用“峰窗”概念从数据库中选择出有效峰的数据,按照梯形法计算该有效峰的峰面积,再利用外标法对其进行标定,进而求得样品气中该组分的含量。

梯形法算法和“峰窗”的部分代码如下:

Do While Adodc1.Recordset.Fields(3).Value < a

Adodc1.Recordset.MoveNext

nn=nn + 1

Loop

Do While Adodc1.Recordset.Fields(3).Value >= a And Adodc1.Recordset.Fields(3) <= b

If Adodc1.Recordset.Fields(2).Value > e Then

n1=Adodc1.Recordset.Fields(2).Value

n2=n1 + n2

n=n + 1

nn=nn + 1

Adodc1.Recordset.MoveNext

Else

nn=nn + 1

Adodc1.Recordset.MoveNext

End If

Loop

Text1.Text=n2 * 1 / 16

Text2.Text=Text1.Text * d

Text3.Text=nn - n / 2

Text4.Text=n

标定部分代码如下:

Do While Adodc1.Recordset.Fields(3).Value < a

Adodc1.Recordset.MoveNext

Loop

Do While Adodc1.Recordset.Fields(3).Value >= a And Adodc1.Recordset.Fields(3) <= b

If Adodc1.Recordset.Fields(2).Value > e Then

n1=Adodc1.Recordset.Fields(2).Value

n2=n1 + n2

Adodc1.Recordset.MoveNext

Else

Adodc1.Recordset.MoveNext

End If

Loop

Text5.Text=x /(n2 * 1 / 16)

Text6.Text=n2 * 1 / 16

3 谱图显示

当检测器和整机达到稳定状态后开始进样、采集与分析,这时色谱图即时间—峰值曲线就实时地显示在界面中了(图7)。

图7 色谱峰显示界面

色谱图显示部分代码如下:

m=m+1

Dim dbs As Database

Dim recordsetdb1 As Recordset

Set dbs=OpenDatabase("E:dianya.mdb")

Set recordsetdb1=dbs.OpenRecordset("表1")

recordsetdb1.AddNew

recordsetdb1(1).Value=Time

recordsetdb1(2).Value=fVolt1

recordsetdb1(3).Value=m

recordsetdb1.Update

recordsetdb1.Close

Dim i As Integer

Dim a(20) As Integer

i=i + 1

a(i - 1) =a(i)

a(19) =fVolt1

Text2.Text=a(19)

If i > 19 Then i=0

hh=1 / 20 *(a(0) + a(1) + a(2) + a(3) + a(4) + a(5) + a(6) + a(7) + a(8) + a(9) + a(10) + a(11) + a(12) + a(13) + a(14) + a(15) + a(16) + a(17) + a(18) + a(19) )

hh=a(19)

Text1.Text=Format(hh,"#.00")

4 结束语

整个色谱图处理系统主要实现了数据采集、数据存储、谱图显示及色谱图处理等功能,最终通过对采集到的数据进行一系列的处理后计算出样品中各组分的含量,实现定性分析和定量分析的目的,对新型工业气相色谱仪的研究与开发提供了理论支持。

[1] 马珊珊,程明霄.基于工业色谱仪的上位机色谱图处理[J].化工自动化及仪表,2010,37(12) :51~54.

[2] 靳方方,程明霄,谢玲.基于LabWindows_CVI的工业色谱仪虚拟仪器开发[J].仪表技术与传感器,2009,(1) :26~28.

[3] 傅若农.色谱分析概论[M].北京:化学工业出版社,2006.

猜你喜欢

色谱仪气相色谱仪检测器
Impaired eye tracking is associated with symptom severity but not dynamic postural control in adolescents following concussion
DANIEL气相色谱仪在南海气田的选型和使用建议
在线气相色谱仪在污染源监测系统中的应用
基于二次否定剪切选择的入侵检测方法*
车道微波车辆检测器的应用
一种柱状金属物质量检测器的研究
SLSP-2K型快速色谱仪最佳工作状态的调试方法
过程气相色谱仪的应用
一种雾霾检测器的研究与设计
ZTGC-TD-2011D便携式色谱仪防风处理