管家駒 向忠
摘? 要: 液化天然氣傳統(tǒng)的耐壓檢測(cè)方式在數(shù)據(jù)獲取、自動(dòng)化方面存在一定局限性。開(kāi)發(fā)一套LNG氣瓶?jī)?nèi)膽耐壓測(cè)試系統(tǒng),主要介紹了上位機(jī)軟件的設(shè)計(jì)與實(shí)現(xiàn),包括系統(tǒng)信息配置、數(shù)據(jù)采集和狀態(tài)監(jiān)控功能、通訊端口與參數(shù)設(shè)置、數(shù)據(jù)保存和歷史信息查閱等功能。上位機(jī)軟件由VB.NET設(shè)計(jì)和編寫(xiě),使用SQL Server搭建耐壓測(cè)試數(shù)據(jù)庫(kù)。實(shí)驗(yàn)表明,上位機(jī)軟件系統(tǒng)可以提高測(cè)試的效率和精度,有一定的實(shí)用性和可靠性。
關(guān)鍵詞: VB.net; LNG; 耐壓測(cè)試; 上位機(jī); SQL Server
中圖分類(lèi)號(hào):TP206? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ?文章編號(hào):1006-8228(2023)06-138-04
Development and application of upper computer for LNG
cylinder liner pressure resistance test
Guan Jiaju, Xiang Zhong
(Faculty of Mechanical Engineering,Zhejiang Sci-Tech University, Hangzhou, Zhejiang 310018, China)
Abstract: The traditional LNG pressure test method has some limitations in data acquisition and automation. To solve these problems, a set of LNG cylinder liner pressure resistance test system is developed, and the design and implementation of the upper computer software are mainly introduced, including system information configuration, data acquisition and status monitoring, communication port and parameter settings, data storage and historical information retrieval. The upper computer software is provided by VB.net, and the database of pressure resistance test is built by using SQL Server. The experiment shows that the upper computer software system can improve the efficiency and accuracy of the test, and has certain practicability and reliability.
Key words: VB.net; LNG; pressure resistance test; upper computer; SQL Server
0 引言
液化天然氣(Liquefied Natural Gas,簡(jiǎn)稱(chēng)LNG),其主要成分是甲烷,是世界上公認(rèn)的最干凈的化石能源。自二十世紀(jì)七十年代初以來(lái),中國(guó)成為全球最大LNG進(jìn)口國(guó)[1]。LNG應(yīng)用十分廣泛,除了發(fā)電、家用燃料、車(chē)載燃料,還應(yīng)用于陶瓷玻璃等行業(yè)。我國(guó)目前對(duì)于存儲(chǔ)運(yùn)輸裝置LNG氣瓶檢測(cè)的研究相對(duì)落后,這也導(dǎo)致目前無(wú)法更大規(guī)模的推廣使用LNG氣瓶。根據(jù)國(guó)家相關(guān)標(biāo)準(zhǔn)和規(guī)程,LNG氣瓶在生產(chǎn)制造和正常工作一定的時(shí)間后,都要對(duì)其進(jìn)行耐壓試驗(yàn)。
耐壓試驗(yàn)方式有水壓試驗(yàn)、氣壓試驗(yàn)等。傳統(tǒng)方法檢驗(yàn)精度低、檢驗(yàn)效率差,同時(shí)當(dāng)內(nèi)膽測(cè)試過(guò)程中壓力值變化不明顯時(shí),僅僅依靠人工辨別難度極大且不易于實(shí)現(xiàn)自動(dòng)化[2]。本文提出利用工控機(jī)、采集卡、傳感器結(jié)合智能控制技術(shù),實(shí)現(xiàn)LNG氣瓶?jī)?nèi)膽耐壓測(cè)試實(shí)時(shí)監(jiān)測(cè)和控制,基于VB.net設(shè)計(jì)了一款LNG氣瓶?jī)?nèi)膽耐壓測(cè)試系統(tǒng)上位機(jī)軟件,軟件可以實(shí)時(shí)獲取當(dāng)前系統(tǒng)的工況和系統(tǒng)參數(shù),實(shí)時(shí)獲取各種傳感器數(shù)據(jù)并保存,同時(shí)可為用戶(hù)提供查閱等操作。
1 系統(tǒng)整體設(shè)計(jì)
本系統(tǒng)總體方案如圖1所示。包括工控機(jī)、PCI數(shù)據(jù)采集卡、端子排和傳感器等。數(shù)據(jù)采集卡通過(guò)PCI總線(xiàn)與上位機(jī)實(shí)現(xiàn)通訊[3]。數(shù)據(jù)采集卡采集接近開(kāi)關(guān)信號(hào)、工位壓力傳感器信號(hào)、流量信號(hào)、溫度信號(hào)、氣源壓力傳感器信號(hào)等,經(jīng)過(guò)邏輯運(yùn)算,輸出信號(hào)給驅(qū)動(dòng)電路,實(shí)現(xiàn)增壓泵控制、電磁閥控制等。
2 上位機(jī)軟件設(shè)計(jì)
2.1 上位機(jī)軟件系統(tǒng)架構(gòu)
LNG氣瓶?jī)?nèi)膽耐壓測(cè)試上位機(jī)軟件系統(tǒng)架構(gòu)如圖2所示。本文通過(guò)對(duì)LNG氣瓶?jī)?nèi)膽耐壓試驗(yàn)工藝過(guò)程分析,設(shè)計(jì)的LNG氣瓶?jī)?nèi)膽耐壓測(cè)試上位機(jī)系統(tǒng)需要具備以下功能:
⑴ 耐壓測(cè)試系統(tǒng)信息配置;
⑵ 耐壓測(cè)試過(guò)程中的信息采集和狀態(tài)監(jiān)控;
⑶ 耐壓測(cè)試過(guò)程中通訊端口及參數(shù)設(shè)置;
⑷ 耐壓測(cè)試過(guò)程中數(shù)據(jù)保存和歷史信息查閱。
2.2 系統(tǒng)信息配置
在耐壓測(cè)試開(kāi)始之前,需要進(jìn)行一些系統(tǒng)信息的配置,例如:委托客戶(hù)、生產(chǎn)廠(chǎng)家、試驗(yàn)代碼、設(shè)備信息、常見(jiàn)問(wèn)題等等。試驗(yàn)代碼即測(cè)試工藝,針對(duì)不同的內(nèi)膽型號(hào),不同的試驗(yàn)壓力選擇不同的代碼。同時(shí)軟件還可以對(duì)試驗(yàn)代碼進(jìn)行增、刪、改、查四種功能,對(duì)于工作人員的使用非常便利。測(cè)試系統(tǒng)信息配置如圖3所示。
2.3 信息采集和狀態(tài)監(jiān)控
在LNG氣瓶?jī)?nèi)膽耐壓測(cè)試系統(tǒng)對(duì)氣瓶?jī)?nèi)膽打壓過(guò)程中,需要對(duì)測(cè)試的溫度、氣源壓力、保壓壓力、當(dāng)前壓力、保壓時(shí)間、試驗(yàn)步驟等進(jìn)行實(shí)時(shí)采集和監(jiān)控,以檢測(cè)氣瓶?jī)?nèi)膽是否泄露,是否符合合格標(biāo)準(zhǔn)。同時(shí)利用C1.Chart控件繪制測(cè)試過(guò)程曲線(xiàn)圖,通過(guò)該圖可以直觀(guān)的顯示當(dāng)前壓力值,保壓時(shí)間和保壓壓力等情況,如圖4所示。
2.4 通訊端口及參數(shù)設(shè)置
LNG氣瓶?jī)?nèi)膽耐壓測(cè)試上位機(jī)需要在測(cè)試過(guò)程中進(jìn)行信號(hào)的輸入與輸出,輸入信號(hào)主要包括壓力傳感器、溫度傳感器和開(kāi)關(guān)量,如圖5所示。
測(cè)試開(kāi)始,上位機(jī)軟件通過(guò)PCI數(shù)據(jù)采集卡獲取傳感器的當(dāng)前值。輸出信號(hào)主要包括供氣閥、進(jìn)氣閥、出氣閥、放空閥等開(kāi)關(guān)信號(hào),如圖6所示。通過(guò)上位機(jī)軟件發(fā)出測(cè)試指令通過(guò)PCI總線(xiàn)發(fā)送至數(shù)據(jù)采集卡,利用端子排繼電器驅(qū)動(dòng)電磁閥開(kāi)關(guān)動(dòng)作。本軟件只需要在測(cè)試開(kāi)始前選擇測(cè)試工位后,上位機(jī)軟件將會(huì)根據(jù)工藝的要求,自動(dòng)控制各個(gè)電磁閥的開(kāi)關(guān)直至測(cè)試結(jié)束[4,5]。
2.5 數(shù)據(jù)保存和歷史信息查閱
在耐壓測(cè)試過(guò)程中,不僅需要可以實(shí)時(shí)顯示各個(gè)階段的參數(shù)變化,還要求上位機(jī)軟件可以存儲(chǔ)整個(gè)測(cè)試過(guò)程的數(shù)據(jù)信息[6]。在試驗(yàn)結(jié)束后,按照數(shù)據(jù)庫(kù)中預(yù)先設(shè)定的屬性進(jìn)行保存,自動(dòng)存儲(chǔ)試驗(yàn)時(shí)間、壓力參數(shù)、試驗(yàn)介質(zhì)、壓力表編號(hào)等等。本設(shè)計(jì)選用SQL Server數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù),上位機(jī)軟件利用ADO.NET方式連接SQL Server數(shù)據(jù)庫(kù),部分代碼如下:
Private Sub saveTstRst()
'將信息保存到數(shù)據(jù)庫(kù)當(dāng)中
'以氣瓶編號(hào)+測(cè)試日期為當(dāng)前編號(hào)進(jìn)行保存
DimcnAsNewSqlConnection(dbConnString)
Dim sqlStr As String
Dim ndbh, sydm, sykssj, syjssj, sywd, sfxl, syyl As String
Dim strTstDate As String = ""
strTstDate=Now.ToString("yyyy-MM-dd hh:mm:ss")
Dim tmpCmd As SqlCommand
Dim tmpTstNo As String = ""
Try
'保存實(shí)驗(yàn)數(shù)據(jù)
ndbh = TB1.Text ''內(nèi)膽編號(hào)
sykssj = sTstStartTme ''試驗(yàn)開(kāi)始時(shí)間
syjssj = sTstStopTme ''試驗(yàn)結(jié)束時(shí)間
sywd = mForm.FrmRealTimeData.TxtEnvTemp.Text ''試驗(yàn)溫度
sydm = mForm.frmTstCtrl.sCylCode ''試驗(yàn)代碼
syyl = mForm.frmTstCtrl.sTstPre
If bWarning Then? ?'是否泄漏
sfxl = "1"
Else
sfxl = "0"
End If
sqlStr = "select * from SaveData where 內(nèi)膽編號(hào)
= '" & ndbh & "'"
If SearchOledbCyl(cn, sqlStr) = True Then
'''''更新當(dāng)前數(shù)據(jù)庫(kù)
sqlStr="update? SaveData set 內(nèi)膽編號(hào)='" & ndbh
&"',試驗(yàn)代碼='" & sydm & "',試驗(yàn)壓力='" & syyl &"',試驗(yàn)開(kāi)始時(shí)間='" & sykssj & "',試驗(yàn)結(jié)束時(shí)間='" & syjssj & "',試驗(yàn)溫度='" & sywd & "',是否泄漏='" & sfxl & "' where 內(nèi)膽編號(hào)='" & ndbh & "'"
cn.Open()
tmpCmd = New SqlCommand(sqlStr, cn)
tmpCmd.ExecuteNonQuery()
cn.Close()
Else
''''新建數(shù)據(jù)庫(kù)記錄
sqlStr = "insert into SaveData(內(nèi)膽編號(hào), 試驗(yàn)代碼,
試驗(yàn)壓力, 試驗(yàn)開(kāi)始時(shí)間,試驗(yàn)結(jié)束時(shí)間, 試驗(yàn)溫度, 是否泄漏) values('" _ & ndbh & "','" & sydm & "','" & syyl & "','" & sykssj & "','" & syjssj & "','" & sywd & "','" & sfxl & "')"
cn.Open()
tmpCmd = New SqlCommand(sqlStr, cn)
tmpCmd.ExecuteNonQuery()
cn.Close()
End If
Dim saveChartString As String=
txtSavePath & "\" & ndbh
'保存文件
MainChart.SaveChartToFile(saveChartString)
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
End Try
End Sub
同時(shí),針對(duì)測(cè)試系統(tǒng)上位機(jī)要求,開(kāi)發(fā)數(shù)據(jù)瀏覽窗口可供工作人員或檢查機(jī)構(gòu)對(duì)試驗(yàn)數(shù)據(jù)進(jìn)行快速查找和檢驗(yàn)。根據(jù)三種查詢(xún)條件進(jìn)行查詢(xún):內(nèi)膽編號(hào)、試驗(yàn)開(kāi)始時(shí)間和試驗(yàn)結(jié)束時(shí)間進(jìn)行精確查找。當(dāng)查詢(xún)到對(duì)應(yīng)測(cè)試結(jié)果,選中后點(diǎn)擊報(bào)表,可以完整地查看到試驗(yàn)數(shù)據(jù)和試驗(yàn)過(guò)程曲線(xiàn)圖。數(shù)據(jù)瀏覽窗口界面設(shè)計(jì)如圖7所示。
3 軟件應(yīng)用
該系統(tǒng)已經(jīng)應(yīng)用于企業(yè)中,與傳統(tǒng)的測(cè)試方式相比,大幅度提高了測(cè)試效率和精確度。以1000L氣瓶?jī)?nèi)膽打壓試驗(yàn)為例,額定壓力值3.2Mpa,泵端壓力為3.8Mpa,實(shí)時(shí)動(dòng)態(tài)曲線(xiàn)如圖8所示。在打壓試驗(yàn)過(guò)程中,軟件界面實(shí)時(shí)顯示壓力隨著時(shí)間變化的曲線(xiàn),同時(shí)反映當(dāng)前工作狀態(tài)。
4 結(jié)束語(yǔ)
通過(guò)分析傳統(tǒng)耐壓測(cè)試方法,根據(jù)現(xiàn)代自動(dòng)化耐壓測(cè)試工藝的要求,本文基于VB.net語(yǔ)言和DLL動(dòng)態(tài)鏈接庫(kù)設(shè)計(jì)了LNG氣瓶?jī)?nèi)膽耐壓測(cè)試系統(tǒng)上位機(jī)軟件,并給出邏輯流程圖和部分代碼。該軟件針對(duì)測(cè)試工藝進(jìn)行自動(dòng)控制,能很好的完成對(duì)生產(chǎn)測(cè)試的數(shù)據(jù)采集存儲(chǔ)和精確控制,提高氣瓶?jī)?nèi)膽測(cè)試過(guò)程的效率和精度,為我國(guó)LNG氣瓶測(cè)試技術(shù)提供一些參考價(jià)值。
參考文獻(xiàn)(References):
[1] 崔巍,魏文治,孫曉琪,等.中國(guó)液化天然氣進(jìn)口脆弱性研究[J].
世界石油工業(yè),2022,29(1):20-29
[2] 周暢業(yè).低溫絕熱氣瓶智能化檢驗(yàn)系統(tǒng)的設(shè)計(jì)和優(yōu)化[D].
碩士,大連海事大學(xué),2019
[3] 李江全,湯智輝,朱東芹.Visual Basic數(shù)據(jù)采集與串口通信測(cè)
控應(yīng)用實(shí)戰(zhàn)[M].北京人民郵電出版社,2010
[4] 黃燁翔.多工位液化石油氣鋼瓶水壓試驗(yàn)流水線(xiàn)設(shè)計(jì)與
開(kāi)發(fā)[D].碩士,浙江理工大學(xué),2018
[5] Aydin C,Ozerdem B.Air leakage measurement and analysis
in duct systems[J]. Energy & Buildings,2006,38(3):207-213
[6] 費(fèi)曉昕,吳述園,朱紅生,等.面向地表水水質(zhì)檢測(cè)的無(wú)人船上
位機(jī)軟件設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)時(shí)代,2022(9):49-52