喻子涵,簡(jiǎn)獻(xiàn)忠
(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 221000)
本文建立的標(biāo)準(zhǔn)表法流量標(biāo)準(zhǔn)裝置系統(tǒng)中有3個(gè)臺(tái)位,每個(gè)臺(tái)位上都有一臺(tái)標(biāo)準(zhǔn)流量計(jì),被檢管路可以最多支持2臺(tái)被檢流量計(jì)進(jìn)行串聯(lián)標(biāo)定。標(biāo)準(zhǔn)裝置原理如圖1所示。
圖1 流量標(biāo)準(zhǔn)裝置原理示意圖
上位機(jī)軟件用于監(jiān)控整個(gè)系統(tǒng)的運(yùn)行狀態(tài),需要得到系統(tǒng)中數(shù)據(jù)的即時(shí)變化情況,因此系統(tǒng)具有數(shù)據(jù)采集功能,可將PLC、變送器、計(jì)數(shù)器等設(shè)備采集到的數(shù)據(jù)傳輸至上位機(jī)組態(tài)軟件中進(jìn)行顯示。每次檢定獲得的流量計(jì)類型、型號(hào)等參數(shù)不盡相同,為了將這些數(shù)據(jù)寫入PLC,系統(tǒng)還需要設(shè)計(jì)參數(shù)設(shè)置功能。系統(tǒng)向PLC下發(fā)指令,使其執(zhí)行檢定操作,因此還需在系統(tǒng)中設(shè)置檢定操作按鈕。為了防止非專業(yè)人士誤操作,系統(tǒng)需要有操作人員管理功能。在一次標(biāo)定作業(yè)完成后,需要生成本次標(biāo)定的檢定報(bào)告,故需在系統(tǒng)中設(shè)置報(bào)表的保存與查詢功能[11-15]?;谝陨显O(shè)想,本文設(shè)計(jì)的軟件框架簡(jiǎn)圖如圖2所示。
圖2 軟件框架圖
上位機(jī)軟件服務(wù)于系統(tǒng)運(yùn)行,所以軟件設(shè)計(jì)流程應(yīng)當(dāng)滿足標(biāo)準(zhǔn)裝置的檢定流程,具體如下:進(jìn)入系統(tǒng)前,首先進(jìn)行被檢表參數(shù)設(shè)置,設(shè)定本次標(biāo)定的被檢表參數(shù);進(jìn)入系統(tǒng)后,進(jìn)行操作員登錄,解鎖界面;隨后進(jìn)行標(biāo)定參數(shù)設(shè)置,設(shè)置本次標(biāo)定過程的系統(tǒng)參數(shù);待現(xiàn)場(chǎng)準(zhǔn)備工作完成后,按下界面上的檢定操作按鈕開始標(biāo)定過程;組態(tài)軟件實(shí)時(shí)讀取串口中的數(shù)據(jù),進(jìn)行數(shù)據(jù)單位轉(zhuǎn)換后顯示在界面上。完成全部標(biāo)定后,可以按下界面上的保存按鈕,將這一次檢定結(jié)果保存為Execl文件,在數(shù)據(jù)查詢界面可以查看并修改報(bào)表文件。軟件設(shè)計(jì)流程如圖3所示。
圖3 軟件設(shè)計(jì)流程圖
參數(shù)設(shè)置模塊包括被校表參數(shù)設(shè)置、標(biāo)準(zhǔn)表法參數(shù)設(shè)置和環(huán)境參數(shù)設(shè)置。
2.1.1 被校表參數(shù)設(shè)置
在每次標(biāo)定工作前設(shè)置被校表參數(shù)是進(jìn)入軟件主界面前必須進(jìn)行的操作。在這一步中,標(biāo)定人員需要對(duì)照被校流量計(jì)的銘牌,在界面上填寫類型、量程、最大頻率、傳感器參數(shù)與轉(zhuǎn)換器參數(shù)等信息,這些信息將會(huì)在標(biāo)定結(jié)束后被填入生成的報(bào)表內(nèi)。同時(shí),還需要在此界面指定在標(biāo)定報(bào)表內(nèi)計(jì)算儀表系數(shù)的方法(A類或B類)。被校表參數(shù)設(shè)置界面如圖4所示。
圖4 被校表參數(shù)設(shè)置
2.1.2 標(biāo)準(zhǔn)表法標(biāo)定參數(shù)設(shè)置
由于標(biāo)準(zhǔn)表法標(biāo)定參數(shù)的設(shè)置關(guān)系到PLC的正常運(yùn)行,所以在操作人員登錄后,才能對(duì)該頁(yè)面的數(shù)據(jù)進(jìn)行修改。該參數(shù)組包含需要標(biāo)定的5個(gè)流量點(diǎn)的變頻器頻率、閥門的開度以及標(biāo)定時(shí)間。為了提高標(biāo)定作業(yè)的速度,標(biāo)準(zhǔn)表法標(biāo)定參數(shù)組還支持從文件導(dǎo)入:完成一次標(biāo)定參數(shù)設(shè)定后,點(diǎn)擊保存至文件,可向調(diào)取參數(shù)ListBox中寫入一條Item,并將輸入的這一組參數(shù)數(shù)據(jù)寫入本地磁盤。當(dāng)退出這個(gè)界面時(shí),將ListBox中的每一條Item保存至本地。下一次標(biāo)定作業(yè)開始前,打開參數(shù)設(shè)置界面,系統(tǒng)會(huì)將可用的標(biāo)定參數(shù)組顯示于界面的調(diào)取參數(shù)ListBox中。此時(shí),操作人員可以選擇讀取之前保存過的任意一組參數(shù)。系統(tǒng)參數(shù)設(shè)置界面如圖5所示。
圖5 系統(tǒng)參數(shù)設(shè)置界面
2.1.3 環(huán)境參數(shù)設(shè)置
環(huán)境參數(shù)組包括當(dāng)前檢定環(huán)境的溫度、濕度、壓力以及流體溫度。這些參數(shù)可將環(huán)境變量下檢定的結(jié)果修正為標(biāo)準(zhǔn)狀態(tài)(20 ℃,一個(gè)標(biāo)準(zhǔn)大氣壓)下的數(shù)據(jù)。
操作人員管理功能已被內(nèi)置于組態(tài)軟件中,開發(fā)人員在開發(fā)界面中即可對(duì)用戶進(jìn)行管理、添加和刪除,縮短了軟件開發(fā)周期。系統(tǒng)將用戶分成4個(gè)等級(jí),類似于Linux中的用戶組概念,每個(gè)用戶組都只能對(duì)不高于該用戶組權(quán)限的數(shù)據(jù)進(jìn)行操作,提高了系統(tǒng)的安全性。操作人員管理界面如圖6所示。
圖6 操作人員管理界面
本流量標(biāo)準(zhǔn)裝置采用上位機(jī)間接采集數(shù)據(jù)的方式,即數(shù)據(jù)先通過ModBus協(xié)議采集至PLC中進(jìn)行存儲(chǔ),PLC再通過串口將數(shù)據(jù)傳輸至上位機(jī)中進(jìn)行顯示。組態(tài)軟件自帶驅(qū)動(dòng)對(duì)數(shù)據(jù)的傳輸與修改進(jìn)行封裝,使得開發(fā)人員無(wú)需關(guān)心底層數(shù)據(jù)傳輸邏輯,僅需自定義數(shù)據(jù)點(diǎn),并將其綁定至PLC的某個(gè)寄存器上,訪問或修改數(shù)據(jù)點(diǎn)就相當(dāng)于對(duì)PLC寄存器做同樣的操作[16-17]。數(shù)據(jù)采集過程如圖7所示。
圖7 數(shù)據(jù)采集過程
本文使用的組態(tài)軟件是一款基于事件觸發(fā)型的開發(fā)軟件,當(dāng)監(jiān)測(cè)到界面上有動(dòng)作產(chǎn)生時(shí),軟件就會(huì)轉(zhuǎn)而執(zhí)行該動(dòng)作后的邏輯。本文建立的流量標(biāo)準(zhǔn)裝置系統(tǒng)所使用的編程模型為MVVM(Model-View-View Model),其圖形界面與檢定邏輯分離,上位機(jī)不需要有復(fù)雜的動(dòng)作。當(dāng)開發(fā)人員按下界面內(nèi)的按鈕,下發(fā)開始標(biāo)定的指令后,僅需將PLC內(nèi)部的標(biāo)定開始寄存器置位即可。當(dāng)下位機(jī)PLC檢測(cè)到標(biāo)定開始寄存器置位后,會(huì)根據(jù)在上位機(jī)界面中設(shè)置的標(biāo)定參數(shù),執(zhí)行PLC內(nèi)事先寫好的控制邏輯,完成一次標(biāo)定過程。本文設(shè)計(jì)的流量標(biāo)準(zhǔn)裝置還有其他功能:如果需要暫時(shí)停止標(biāo)定過程,可以按下界面的暫停按鈕;如果需要更改標(biāo)定流體流動(dòng)方向,可以按下主界面上的換向器按鈕。
當(dāng)某個(gè)流量點(diǎn)的一次標(biāo)定結(jié)束后,PLC將置位標(biāo)定結(jié)束寄存器。這個(gè)動(dòng)作會(huì)被上位機(jī)捕捉到,轉(zhuǎn)而執(zhí)行事先寫好的記錄數(shù)據(jù)邏輯,利用軟件的系統(tǒng)函數(shù)SetCellDouble在主界面上的報(bào)表區(qū)域中,根據(jù)報(bào)表的格式記錄一行數(shù)據(jù),并從PLC的相應(yīng)寄存器中讀取校準(zhǔn)流量、標(biāo)準(zhǔn)表與被校表的脈沖數(shù)與累計(jì)流量、校準(zhǔn)時(shí)間,將其填入主界面的報(bào)表中,并將標(biāo)定次數(shù)計(jì)數(shù)器加1。
組態(tài)軟件中的專家報(bào)表功能類似于Excel表格,用于記錄標(biāo)定過程中的數(shù)據(jù)。使用ImportExcelFile函數(shù)可以將Excel模板導(dǎo)入力控專家報(bào)表;而使用ExportExcelFile函數(shù)可以將專家報(bào)表導(dǎo)出Excel文件存儲(chǔ)在本地磁盤上,方便后期進(jìn)行數(shù)據(jù)查詢。
當(dāng)5個(gè)流量點(diǎn)的所有標(biāo)定操作完成后,位于主界面上的專家報(bào)表將會(huì)被填滿。操作人員可以選擇將本次標(biāo)定結(jié)果存入磁盤。點(diǎn)擊保存按鈕后,程序?qū)⑸梢粡埿碌膱?bào)表。將進(jìn)入系統(tǒng)時(shí)設(shè)定的被校表類型、傳感器型號(hào)和編號(hào)以及當(dāng)前環(huán)境變量填入新的報(bào)表作為表頭,將本次標(biāo)定的數(shù)據(jù)作為表體,并將計(jì)算出的每一個(gè)流量點(diǎn)的儀表系數(shù)、基本誤差和重復(fù)性作為表尾。完成新報(bào)表數(shù)據(jù)填充后,程序?qū)⑹褂肊xportExcelFile函數(shù)把報(bào)表導(dǎo)出為Excel文件,并將其命名為標(biāo)定結(jié)束時(shí)間。與此同時(shí),使用ListAddItem函數(shù)向標(biāo)定記錄ListBox中寫入該文件Item,并使用ListSave將標(biāo)定記錄ListBox保存為本地文件。
被校表的儀表系數(shù)有A類和B類兩種計(jì)算方法:
(1)A類儀表系數(shù)指的是被檢流量計(jì)脈沖N與標(biāo)準(zhǔn)流量計(jì)累計(jì)流量Vs的比值,計(jì)算式為
(1)
(2)B類儀表系數(shù)指的是被檢流量計(jì)累計(jì)流量V與標(biāo)準(zhǔn)流量計(jì)累計(jì)流量Vs的比值,具體為
(2)
使用時(shí),需在被校表參數(shù)設(shè)置界面選擇A類或者B類計(jì)算方式。
當(dāng)5個(gè)流量點(diǎn)標(biāo)定結(jié)束后,儀表的平均儀表系數(shù)K0為
(3)
被校表的相對(duì)示值誤差EL為
(4)
被校表的重復(fù)性誤差Er如式(5)所示。
(5)
本文所設(shè)計(jì)的流量標(biāo)準(zhǔn)裝置系統(tǒng)有兩種數(shù)據(jù)查詢方式:一種是實(shí)時(shí)趨勢(shì)曲線;另一種是歷史報(bào)表查詢。
2.6.1 實(shí)時(shí)趨勢(shì)曲線
在實(shí)時(shí)趨勢(shì)曲線圖中,可以觀察到本次標(biāo)定過程中總瞬時(shí)流量的變化趨勢(shì)。在實(shí)時(shí)趨勢(shì)曲線中能夠觀察到最早一分鐘前的流量瞬時(shí)值?,F(xiàn)場(chǎng)操作人員能夠根據(jù)實(shí)時(shí)趨勢(shì)曲線圖判斷標(biāo)定進(jìn)程與標(biāo)定過程是否正常。實(shí)時(shí)趨勢(shì)曲線如圖8所示。
圖8 實(shí)時(shí)趨勢(shì)曲線圖
2.6.2 歷史報(bào)表查詢
為了溯源標(biāo)定結(jié)果,本軟件設(shè)計(jì)了歷史報(bào)表查詢功能。在歷史報(bào)表查詢界面,可以查詢到之前所有的標(biāo)定記錄。在打開歷史報(bào)表查詢界面時(shí),程序?qū)⒆x取本地標(biāo)定記錄ListBox數(shù)據(jù),使用ListLoad函數(shù)從本地文件中調(diào)入標(biāo)定記錄信息,顯示在界面的標(biāo)定記錄名中。點(diǎn)擊任一標(biāo)定文件Item后,會(huì)在右側(cè)顯示報(bào)表內(nèi)容,使得操作人員能夠可視化地對(duì)標(biāo)定完成的報(bào)表進(jìn)行修改。
軟件測(cè)試分為兩部分:(1)對(duì)被校表的測(cè)試。將本文軟件測(cè)試結(jié)果與被校表標(biāo)定證書結(jié)果進(jìn)行對(duì)比,驗(yàn)證本文所設(shè)計(jì)的軟件標(biāo)定結(jié)果與被校表前次標(biāo)定結(jié)果的一致性;(2)對(duì)本文設(shè)計(jì)的系統(tǒng)進(jìn)行不確定度分析,驗(yàn)證系統(tǒng)是否滿足流量標(biāo)準(zhǔn)裝置的國(guó)家標(biāo)準(zhǔn)。
軟件編寫完畢后,選擇準(zhǔn)確度等級(jí)為0.2級(jí)的渦輪流量計(jì),根據(jù)JJG 1037-2008《渦輪流量計(jì)檢定規(guī)程》國(guó)家標(biāo)準(zhǔn)中的測(cè)試流程在實(shí)際生產(chǎn)環(huán)境中測(cè)試。對(duì)90%、63%、36%、18%和15%總共5個(gè)流量點(diǎn)進(jìn)行測(cè)試,每個(gè)流量點(diǎn)檢定3次,共得到15組數(shù)據(jù)。每一次標(biāo)定的數(shù)據(jù)如表1所示。測(cè)試結(jié)果顯示,系統(tǒng)運(yùn)行良好,被檢表重復(fù)性在0.02%以下,基本誤差在±0.2%之間,與該被檢表前次檢定證書所給的0.2級(jí)準(zhǔn)確度等級(jí)結(jié)果一致[18]。
表1 渦輪流量計(jì)檢定結(jié)果
對(duì)于式(1),被檢流量計(jì)的平均合成相對(duì)不確定度為
(6)
式中,ur(Vsij)指的是標(biāo)準(zhǔn)裝置的不確定度。標(biāo)準(zhǔn)表的擴(kuò)展不確定度Urel(k=2)已在標(biāo)定證書上給出,為0.32%,則有
(7)
式中,ur(Nij)指的是被檢表脈沖的不確定度,假設(shè)其測(cè)量值均勻分布于可能值區(qū)間,則可如式(8)所示。
(8)
通過計(jì)算得到標(biāo)定的5個(gè)流量點(diǎn)的ur(Nij),分別為0.008%、0.013%、0.022%、0.044%和0.059%。
ur(Kij)為檢定儀表系數(shù)的不確定度,主要來(lái)源是測(cè)量重復(fù)性,如式(9)所示。
ur(Kij)=s(Kij)
(9)
根據(jù)式(6)可計(jì)算出5個(gè)流量點(diǎn)下被校表儀表系數(shù)的相對(duì)擴(kuò)展不確定度(k=2)分別為0.32%、0.32%、0.32%、0.33%與0.34%。
對(duì)于式(2),被檢流量計(jì)的平均合成相對(duì)不確定度如式(10)所示。
(10)
利用式(7)計(jì)算出ur(Vsij)為0.16%,ur(Kij)可根據(jù)式(9)計(jì)算獲得。根據(jù)式(10)可計(jì)算出5個(gè)流量點(diǎn)下被校表儀表系數(shù)相對(duì)擴(kuò)展不確定度(k=2)均為0.32%。
根據(jù)上述計(jì)算結(jié)果可知,裝置的擴(kuò)展不確定度在整個(gè)被校表流量區(qū)間內(nèi)均小于0.4%,符合JJG 643-2003《標(biāo)準(zhǔn)表法流量標(biāo)準(zhǔn)裝置》的標(biāo)定要求[19]。
本文設(shè)計(jì)了一套上位機(jī)軟件,該軟件提供了操作人員管理、標(biāo)定過程實(shí)時(shí)監(jiān)控以及標(biāo)定報(bào)表生成等功能,實(shí)現(xiàn)了標(biāo)準(zhǔn)表法氣體法流量標(biāo)準(zhǔn)裝置的標(biāo)定自動(dòng)化。經(jīng)過測(cè)試,本文所設(shè)計(jì)的標(biāo)準(zhǔn)表法流量標(biāo)準(zhǔn)裝置軟件能夠?qū)I(yè)中常用的幾種流量計(jì)進(jìn)行檢定,檢驗(yàn)流量計(jì)的合格性。得益于組態(tài)軟件的擴(kuò)展性,后續(xù)還可將上位機(jī)軟件遷移至云服務(wù)器中,利用Websocket技術(shù)實(shí)現(xiàn)真正的遠(yuǎn)程標(biāo)定操作,減少標(biāo)定現(xiàn)場(chǎng)環(huán)境的限制。