SOPC分析儀器信息管理及系統(tǒng)調(diào)試
引言
基于SOPC的在線分析儀器平臺從數(shù)據(jù)采集到顯示已經(jīng)可以完成分析儀器的基本功能,但是隨著儀表在線檢測、顯示、傳送等要求逐漸提高,以及方便儀器與PLC、DCS等生產(chǎn)過程自動化的儀表相連,有必要為分析儀器設(shè)計信息管理系統(tǒng)。
1信息管理系統(tǒng)界面設(shè)計
測量界面采用雙緩存圖片。把一個圖像作為緩存,兩個圖像就是雙緩存了。一個作為前臺緩存,一個作為后臺緩存。即:創(chuàng)建一個繪制緩沖區(qū),以bufImage表示,先將主要的圖形元素一個一個地繪制到此緩沖圖像上,再將此緩沖圖像一次性繪到代表屏幕的Graphics對象上。
本設(shè)計在VisualC++界面編程中使用了Skin++。Skin++是一款通用的軟件換膚套件,目前支持各種版本操作系統(tǒng),Windows9x、Windows2000、WindowsXP、Windows2003等,并支持VC、VB、C#、PB、Delphi、C++Builder等各種開發(fā)語言。Skin++換膚的效果較好,程序本身也比較穩(wěn)定。
另外,本文在界面設(shè)計中也采用了復(fù)合文件,結(jié)構(gòu)化存儲,這是微軟組件思想的起源。
系統(tǒng)的功能模塊包括用戶管理、成分選擇、儀器狀態(tài)、參數(shù)設(shè)置、非線性驗證、TCP/IP傳輸?shù)?。主界面如圖1所示,對應(yīng)的分析儀器測量界面如圖2所示。
圖1上位機測量界面
1.1系統(tǒng)登錄界面
系統(tǒng)登錄界面用戶分為兩級:管理員和普通用戶。當輸入完用戶名和密碼并按下“確定”按鈕后,程序會在數(shù)據(jù)庫中查詢用戶名和密碼是否匹配。在確認匹配之后,程序根據(jù)用戶的級別分配權(quán)限,然后進入主界面等待用戶下一步的操作。
圖2四組分測量界面
在登錄成功后,系統(tǒng)會進入測量界面。如果用戶名輸入錯誤,則會提醒用戶輸入的不是用戶名而不能進入系統(tǒng),系統(tǒng)也會給出相應(yīng)的提示信息。
1.2用戶管理
管理員可以通過“用戶管理”界面添加、刪除、更改普通用戶的設(shè)置,普通用戶也可以修改密碼。圖3所示是系統(tǒng)用戶管理界面。管理員和用戶都能根據(jù)實際情況,點擊列表頭可以實現(xiàn)用戶的升降序重新排列。操作可使得用戶管理界面更加人性化。
圖3用戶管理界面
1.3成分選擇
通過圖4所示的成分選擇界面,可以根據(jù)不同的要求選擇不同的通道號(通道1?通道4)和選擇不同的成分(H2、CO、SO2、NO、NO2),單位也可以選擇。因為比較常用的氣體單位為“%”和“ppm”,所以單位設(shè)置了這兩個選擇。選擇確定后,在測量界面也會有相應(yīng)的更新。
圖4成分選擇界面
1.4儀器狀態(tài)和參數(shù)讀取
本系統(tǒng)的儀器狀態(tài)和參數(shù)讀取界面如圖5所示。儀器狀態(tài)界面的主要功能就是讓用戶可以方便地知道儀器信息,便于下一步操作。
圖5儀器狀態(tài)和參數(shù)讀取界面
1.5非線性驗證
本設(shè)計采用5次方程代替能斯特方程的方法來求出氣體組分含量,并在上位機通信這一塊設(shè)計了直接利用能斯特方程來驗證數(shù)據(jù),這一驗證方法對于用戶來說更具有說服力。圖6所示是系統(tǒng)的非線性驗證界面。
圖6非線性驗證界面
其中C++中部分代碼如下:
voidCNolinearDlg::OnBtnCompute()
{
UpdateData();//空間->變量
if(m_fP0==0||m_nVf==0||m_nV0==0)
{
MessageBox(_T("P0,Vf,V0不能為0!"),_T("基于SOPC的在線分析儀器平臺"),MB_ICONWARNING);
return;
}
if(m_fPf<=m_fP0)
{
MessageBox(_T("Pf必須大于P0!"),_T("基于SOPC的在線分析儀器平臺"),MB_ICONWARNING);
return;
}
doublex=log10(m_fPf-m_fP0);
doublex1=x/((double)m_nVf/m_nV0)*m_nV;
doublex2=(m_nVf*log10(m_fP0)-m_nV0log10(m_fPf))/((double)m_fPf-m_fP0);
doublex3=x1+x2;
m_fPx=pow(10,x3);
UpdateData(FALSE);
}
1.6TCP/IP傳輸
TCP/IP傳輸是方便數(shù)據(jù)能夠通過互聯(lián)網(wǎng)把實時數(shù)據(jù)傳到本地監(jiān)控中心或環(huán)境監(jiān)測中心,其TCP/IP通訊界面如圖7所示。在基于SOPC的在線分析儀器平臺,可以利用NiosII這個用戶可定制的CPU來增加新的外設(shè)、新的指令,分配外設(shè)的地址等。用戶可以直接在客戶端通過IE瀏覽器訪問服務(wù)器,瀏覽存儲在Flash中的信息。根據(jù)Web服務(wù)器的原理,Altera公司新提供的NichestackTCP/IPStack協(xié)議設(shè)計實現(xiàn)了應(yīng)用程序提供的標準的Socket接口以及TCP/IP等協(xié)議[%
圖7TCP/IP通訊界面
由于設(shè)計采用了Altera公司低端的一款FPGA,數(shù)據(jù)存儲能力比較有限,所以在設(shè)計中通過RS232讀出數(shù)據(jù),再通過上位機傳輸給網(wǎng)絡(luò)。TCP/IP通訊功能已經(jīng)在某公司實時監(jiān)控視頻傳輸中成功實現(xiàn)。
2系統(tǒng)調(diào)試和數(shù)據(jù)驗證
圖8所示是最小二乘法擬合氧含量和輸出電壓的曲線圖。
電壓/mV
圖8最小二乘法擬合氧含量-輸出電壓曲線
操作時可選取10個數(shù)據(jù)點,在最常用的Excel中實現(xiàn)最小二乘曲線擬合。3”是根據(jù)樣氣濃度選擇的待測氣體的測量點,x為傳感器輸出電壓值,/為對應(yīng)的樣氣中的氧含量值,n為擬合多項式的次數(shù)。其中x和v取值分別為表2中的標準氣值和傳感器輸出電壓。從n=2即二次多項式擬合開始,經(jīng)過試驗,當n=5時,即擬合多項式的格式為:
y=f(x)=ax+bx+cx+dx+ex
設(shè)計以該5次方程替代能斯特方程,能夠精確地計算出氧氣含量,精度滿足儀器設(shè)計要求[3]。Excel最小二乘法實現(xiàn)氧含量與對應(yīng)輸出電壓曲線擬合如圖8所示。圖中曲線為輸出電壓的擬合曲線。擬合多項式系數(shù)和擬合精度評定如表1所列。
表1擬合多項式系數(shù)和擬合精
多項式系數(shù) |
多項式糸數(shù)值 |
a |
-8.384E-18 |
b |
9.05305E-14 |
c |
-3.21524E-10 |
d |
12317E-07 |
e |
1.19545E-05 |
將擬合多項式系數(shù)a,b,c,d,e通過儀表鍵盤輸入到儀表系統(tǒng)中,當開啟儀表“非線性校準”功能時,儀表將根據(jù)5次方程將檢測到的電壓信號換算成濃度信號并顯示在測量界面。將氧化錯傳感器加熱到700控制標準氣體流量280ml/min,分別通入五組標準樣氣,測量結(jié)果如表2所列。
表2五組標準樣氣測量結(jié)果
標準樣氣 % |
輸出電壓mV |
儀器顯示值 % |
誤差 |
0 |
-23 |
0.000 |
0.000 |
0.763 |
2183 |
0.761 |
-0.003 |
1.52 |
3301 |
1.52 |
0.000 |
2.24 |
3984 |
2.23 |
-0.004 |
2.97 |
4749 |
2.97 |
0.000 |
由表2可見,用最小二乘原理擬合曲線代替能斯特計算公式,儀器測量的氧含量整體誤差小于0.5%,達到0.5級表的要求。換幾組氣測試,測試結(jié)果也在誤差范圍內(nèi)。其測試結(jié)果如表3所列。
表3其他氣體測量結(jié)果
標準樣氣 % |
輸出電壓mV |
儀器顯示值 % |
誤差 |
0.0919 |
199 |
0.091 |
-0.001 |
0.778 |
2355 |
0.779 |
0.001 |
1.973 |
3295 |
1.971 |
-0.001 |
本文首先對上位機的信息管理的核心做了部分設(shè)計,包括了非線性驗證和TCP/IP通訊的實現(xiàn);然后對基于SOPC的在線分析儀器智能平臺的數(shù)據(jù)處理做了驗證,結(jié)果表明,本儀表能達到0.5級表的要求。
20211106_61865a96bae4e__SOPC分析儀器信息管理及系統(tǒng)調(diào)試