謝 逍 姜學慶 王 琰
(天華化工機械及自動化研究設計院有限公司,蘭州 730060)
過程氣相色譜儀(Process Gas Chromatography,PGC)又稱工業氣相色譜儀,是一種精密且具有防爆功能的在線過程分析儀器,主要功能是實現對混合氣體中各組分的成分分析和檢測,廣泛應用于石油、化工、生物化學、醫藥衛生、食品工業及環保等領域。工業氣相色譜儀基于先分離后檢測的原理進行分析,具有選擇性好、靈敏度高、分析對象廣泛、多流路及多組分分析等優勢。
目前,國內使用的工業氣相色譜儀大多為進口產品。國際上,以德國西門子、美國ABB和日本橫河公司的產品為代表,其技術較先進。國內工業氣相色譜儀的設計生產廠商相對較少,市場占有率極低。因此,研發國產化的工業氣相色譜儀意義重大。在此,筆者主要介紹整個工業氣相色譜儀產品研發過程中控制系統中的色譜圖處理系統(數據采集、數據存儲、色譜峰峰面積計算及干擾峰處理等)的實現過程。
開發上位機控制系統首先要選擇合適的編程語言。目前使用比較廣泛的編程語言有:C語言、C++、Visual Basic(VB)、組態王、MCGS及Lab Windows/CVI等[1]。考慮到研發成本、開發難易度、維護的便捷性、系統穩定性及合理性等因素,最終決定選用VB語言來實現上位機控制系統的編程。
VB是一種由Microsoft公司開發的結構化、模塊化、面向對象的、包含協助開發環境的、以事件驅動為機制的可視化程序設計語言。VB擁有圖形用戶界面(GUI)和快速應用程序開發(RAD)系統,可以輕松地使用DAO、RDO和ADO連接數據庫,或者輕松地創建ActivateX控件[2]。選擇使用VB的主要原因是,VB可以很方便地建立簡潔、人性化、易操作的用戶界面,可以大幅減少界面部分的編程工作量,同時又可以與Access數據庫很好地連接,實現數據的存儲并方便后續數據處理。
工業氣相色譜儀的工作原理為先分離、后檢測。樣品首先經過預處理裝置進行簡單的穩流、穩壓處理,然后經采樣閥定量后隨載氣送入色譜柱,色譜柱是色譜儀的核心,主要對樣品中各組分進行分離;分離后的各組分先后進入到檢測器中,轉換成相應的電信號(mV),此信號經放大和模/數轉換后生成相應的色譜圖和數據,再對色譜圖和數據進行相關的計算處理,即可得到其分析結果。如圖1所示,由A+B組分組成的樣品經過色譜柱后,由于A、B兩種組分在固定相(色譜柱)中具有不同的分配系數,所以其通過色譜柱所需的時間不同,在色譜柱中分離以后再先后進入到檢測器,隨著時間的推移,分離后的A、B組分先后進入到熱導檢測器中,產生了相應的毫伏信號,從而達到先分離的目的。

圖1 色譜柱分離過程示意圖
色譜圖指樣品流經色譜柱和檢測器后得到的電信號—時間曲線,又稱色譜流出曲線,如圖2所示,從色譜圖中可以很清楚地看出樣品中包含的組分數,根據各組分的色譜峰峰頂(電信號最大值)出現的時間(保留時間)可實現其定性分析;又根據峰面積與組分濃度或者質量成正比的關系,對數據庫中存儲的數據進行處理后,計算出色譜峰高或者峰面積即可實現定量分析。

圖2 色譜圖
工業氣相色譜儀常用的檢測器主要有熱導檢測器(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")
選擇使用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.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
當檢測器和整機達到穩定狀態后開始進樣、采集與分析,這時色譜圖即時間—峰值曲線就實時地顯示在界面中了(圖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")
整個色譜圖處理系統主要實現了數據采集、數據存儲、譜圖顯示及色譜圖處理等功能,最終通過對采集到的數據進行一系列的處理后計算出樣品中各組分的含量,實現定性分析和定量分析的目的,對新型工業氣相色譜儀的研究與開發提供了理論支持。
[1] 馬珊珊,程明霄.基于工業色譜儀的上位機色譜圖處理[J].化工自動化及儀表,2010,37(12) :51~54.
[2] 靳方方,程明霄,謝玲.基于LabWindows_CVI的工業色譜儀虛擬儀器開發[J].儀表技術與傳感器,2009,(1) :26~28.
[3] 傅若農.色譜分析概論[M].北京:化學工業出版社,2006.