田輝倫
(中國石油吐哈油田公司銷售事業部,新疆 吐魯番 838202)
溫度變送器校準結果數據處理軟件的開發與應用
田輝倫
(中國石油吐哈油田公司銷售事業部,新疆 吐魯番 838202)
采用Visual staio 2010和QT編程軟件編寫溫度變送器校準結果數據處理軟件,通過校準結果對比分析驗證得出該軟件的有效性。
溫度變送器 Visual staio 2010 QT編程軟件 校準結果 數據處理
溫度變送器具有測溫準確、精度高、穩定性能好、測溫范圍寬及便于遠距離測量等優點,在石油化工生產和科學實驗中有著非常廣泛的應用,它測得溫度的準確與否直接影響產品的質量和實驗的結果,因此需要準確計量。溫度變送器作為溫度測量的常用傳感器,對它準確計量具有重要意義,在日常校準過程中,對溫度變送器的校準結果進行處理時會有繁瑣的數據計算程序,手工處理時容易造成錯誤,且在計算過程中數據的取舍也會對校準結果有一定的影響,而以往設計的Excel表格計算過程不能對所有儀表信息進行對應存儲,所以為了更好地解決計算中遇到的實際問題、更方便地存儲儀表校準信息,筆者采用Visual staio 2010和QT編程軟件編寫了溫度變送器校準結果數據處理軟件,克服了原有方法的不便,達到更高的計量計算準確性。
1.1 電流誤差、溫度誤差參數
參照JJF 1183-2007《溫度變送器》校準規范,對每支溫度變送器各校準點的電流誤差值和溫度誤差值進行計算,判定是否滿足相應等級要求,判定公式如下(其中溫度和電流的最大允許誤差均為0.5%):
Δti=ΔIi×(溫度最大允許誤差×溫度量程)/(電流
最大允許誤差×電流量程)
式中 ΔIi——溫度變送器各校準點的電流誤差值;
Δti——溫度變送器各校準點的溫度誤差值。
1.2測量結果不確定度參數
若電流誤差值和溫度誤差值滿足要求,則接下來的重要步驟是計算測量結果的擴展不確定度,首先建立測量誤差的數學模型,公式如下:
ΔIt=Id-[Im/tm(ts-t0)+I0]
式中I0——變送器輸出電流的理論下限值;
Id——變送器的輸出電流值;
Im——變送器的輸出量程;
ΔIt——變送器在溫度t時的測量誤差;
t0——變送器輸入的下限溫度值;
tm——變送器的溫度輸入量程;
ts——變送器的輸入溫度值。
再確定各標準不確定度分量值,主要包括由測量重復性引入的標準不確定度分量、由所用的FLUKE744多功能校準儀引入的標準不確定度分量和二等標準水銀溫度計引入的標準不確定度分量。根據分量的靈敏系數合成標準不確定度,計算出測量結果的擴展不確定度為最終結果,取得最大值為實驗校準結果。
在校準過程中,涉及到了電流誤差、溫度誤差和各種標準不確定分量值的大量數據交叉計算,整個過程得到的數據量很大,稍不注意就會出錯,進而對校準結果產生影響。這就要求檢定員在工作量大的情況下費時費力耐心計算,工作效率更加低下。為了使復雜、繁瑣的計算過程和公式更為簡化,避免人為計算的錯誤和對數據精度取舍不適當的問題,設計了比較簡便、適用的Excel表格計算公式,如圖1所示。

圖1 溫度變送器校準數據計算表
在如圖1所示的對應表格中,Excel表格數據處理分了3塊,第1塊是各校準點電流值的輸入版塊,共5個點6組數據值,實驗標準偏差值的計算一般采用貝塞爾公式,筆算較復雜。通過一步步的計算可得到最大的實驗標準偏差值或者在Exce1中輸入公式“=STDEV(A2:A7)/SQRT(COUNT(A2:A7))”就可自動計算出結果;第2塊右上部分為對應各校準點詳細的電流誤差和溫度誤差自動計算版塊;第3塊為圖的下面部分,主要自動計算各標準不確定度分量值和最后給出的擴展不確定度值,各值旁邊的備注情況簡單明了,對結果更易于觀察。
通過上述步驟基本完成了溫度變送器整個校準數據的處理過程。另外,把填寫公式部分和手動輸入部分用不同顏色區分開,這樣在實際操作過程中可更直觀地知道哪些數據是可以自動運算的,簡單方便。
雖然Excel表格計算溫度變送器校準結果使計算結果得到簡化,但缺點是沒有對溫度變送器的詳細信息進行存儲,不能將信息情況、數據計算、結果查詢和證書打印功能都結合一體。
由于溫度變送器校準結果常用處理方法的不足、統計信息不全面等原因,采用Visual staio 2010和QT編程軟件編寫了溫度變送器校準結果數據處理軟件,該軟件主要由四大功能模塊組成:信息錄入、數據計算、證書打印和信息查詢,該軟件的功能結構框圖如圖2所示。

圖2 軟件功能結構框圖
3.1信息錄入模塊
信息錄入模塊主要錄入溫度變送器的基本信息(證書編號、送檢單位、型號規格、出廠編號、測量范圍、制造單位和校準依據),輸入相應環境條件、填寫被校準點實際輸出值及標準器相關信息等。將錄入諸多條的基本信息、數據存入到數據庫中,這樣以后的輸入會更加簡便,由計算機直接調用,在原始記錄、證書打印中就不會再發生人為操作的錯誤,還可以減少數據的輸入量,從而提高工作效率和工作質量。比如,送檢單位、測量范圍、型號規格、制造單位及校準依據等信息就不用每次輸入,只要調用就會自動生成;此外,校準日期由計算機自動完成設定,不用人工干涉,也就不會發生人為錯誤。
3.2數據計算模塊
數據計算模塊是軟件的核心部分,其一主要對每支溫度變送器各校準點的電流誤差值和溫度誤差值進行計算,其二是計算出測量結果的擴展不確定度為最終結果,取得最大值為實驗校準結果。同時,該模塊將公式的計算過程轉移到后臺進行處理,自動完成繁瑣的計算程序。只要輸入實驗中得到的校準數據,計算機就會立刻計算出校準結果判定參數,且避免了費時費力的人工計算和錯誤現象的發生,操作更加簡便。
數據計算程序代碼如下:
// 計算分量不確定度及擴展不確定度
// 計算 U1
QVector
for(int c=0; c
QVector
for(int r=0; r
if(ui->tableInput->item(r, c) == NULL)
column[r] = 0.0;
else
column[r] = ui->tableInput->item(r, c)->text().toDouble();
}
values[c] = _getColumnValue(column);
}
int imax = std::max_element(values.begin(), values.end()) - values.begin();
double U1 = values[imax];
double I = ui->tableMean->item(0, imax)->text().toDouble();
double Tc = Tm*(I-4.0)/16.0 + Tmin;
// 計算 U2
double U2 = 0.0;
if(ui->groupDianZu->isChecked() || ui->groupShuiYing->isChecked()) {
double Ut_shuiyin = ui->lineEditShuiYingUt->text().toDouble();
double k_shuiyin = ui->lineEditShuiYingK->text().toDouble();
double U2_shuiyin = (Ut_shuiyin/k_shuiyin)*16.0/Tm;
double Ut_zu = ui->lineEditShuiYingUt->text().toDouble();
double k_zu = ui->lineEditShuiYingK->text().toDouble();
double U2_zu = (Ut_zu/k_zu)*16.0/Tm;
U2 = (Tc<=300.0 ? U2_shuiyin : U2_zu);
}
// 計算 U3
// double U3 = (0.02/sqrt(3.0)) * 16.0 / Tm;
// 計算 U3
double U3 = 0.0;
// if(ui->groupBoxSheBei->isChecked())
{
double Ud = ui->lineEditSheBeiUt->text().toDouble();
double Kd = ui->lineEditSheBeiK->text().toDouble();
U3 = Ud/Kd;
}
// 合成不確定分量及得出測量結果的擴展不確定度
double Uc = sqrt(U1*U1 + U2*U2 + U3*U3 );
double U = Uc * 2.0 ;
double Imax = -1.0e64, Imaxv; // Imaxv 帶符號
for(int r=0; r
if(Imax <= fabs(ui->tableOutput->item(r, 2)->text().toDouble())) {
Imax = fabs(ui->tableOutput->item(r, 2)->text().toDouble());
Imaxv = ui->tableOutput->item(r, 2)->text().toDouble();
imax = r;
}
}
if(Imax < 0.08) {
QString text;
text += trUtf8("最大電流誤差值 %1 ").arg(Imaxv);
text += trUtf8("不確定度 %2 ").arg(U);
text += trUtf8("符合 0.5 級要求");
text += trUtf8("U1 = %2 ").arg(U1);
text += trUtf8("U2 = %2 ").arg(U2);
text += trUtf8("U3 = %2 ").arg(U3);
ui->textOut->setText(text);
} else {
QString text;
9text += trUtf8("最大電流誤差值 %1 ").arg(Imaxv);
text += trUtf8("不確定度 %2 ").arg(U);
text += trUtf8("不符合 0.5 級要求");
ui->textOut->setText(text);
}
U_ = U;
k_ = 2.0;
c0_ = ui->tableOutput->item(imax, 0)->text().toDouble();
}
// 導出校準證書
void DialogTempTrans::on_buttonExportHtml_clicked()
{
// 選擇保存路徑
QString path = QFileDialog::getSaveFileName(
this,
trUtf8("導出溫度變送器校準證書"),
trUtf8("~/溫度變送器校準證書.html"),
trUtf8("HTML (*.html)"));
if(path.isEmpty()) return;
3.3證書打印模塊
根據規范的要求編寫校準證書模板,只要完成基本參數的輸入,通過數據計算后即可輸出溫度變送器校準證書的html格式,完成證書的打印工作,從而提高工作效率并降低檢定人員的工作強度。
3.4信息查詢模塊
信息查詢模塊主要是查詢、檢索、核對每一塊溫度變送器的具體信息,進行存檔保存,從而全面了解和掌握油田各單位在用溫度變送器的校準情況。
為了驗證校準結果數據處理軟件的可靠性,如圖1所示的Excel表格中的校準數據,將統一被校數據實際輸出值填寫到校準結果數據處理軟件中進行計算,校準軟件數據計算圖如圖3所示。

圖3 校準軟件數據計算圖
在校準軟件結果欄中,看到最大電流誤差值、各標準不確定度分量值(U1、U2、U3)、測量結果的擴展不確定度U都和圖4計算出的結果值相同。另外,為了增加該軟件計算的可信度,選取了一批30多塊溫度變送器作為校準目標進行實驗校準結果分析驗證,分別用校準結果處理軟件和Excel表格兩種方法按程序各計算一次,將兩者的計算結果進行對比后得到的值都一致相同,且無實驗偏差。說明編制的溫度變送器校準結果數據處理軟件在實驗應用中是可靠可信的,且該軟件的應用使得整個儀表校準時間更短、效率更高。

圖4 Excel數據計算表
溫度變送器校準結果數據處理軟件的開發與應用,結合工作實際,把計量校準過程中繁瑣的計算簡單化,計算數據更精確,校準結果更直觀,為校準人員解決了實際工作難題,提高了工作效率,提升了計量技術水平。
DevelopmentandApplicationofDataProcessingSoftwareforTemperatureTransmitterCalibration
TIAN Hui-lun
(CNPCTuhaOilfieldSalesDivision,Tulufan838202,China)
Visual staio 2010 and QT programming software were applied to prepare data processing software for temperature transmitter calibration. Comparing and analyzing calibration results verifies this software’s validity.
temperature transmitter,Visual staio 2010, QT programming software, result,data processing
TH811
B
1000-3932(2016)12-1302-05
2016-10-30(修改稿)