《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 業(yè)界動態(tài) > 儲油罐實時監(jiān)測與管理系統(tǒng)的設(shè)計與實現(xiàn)

儲油罐實時監(jiān)測與管理系統(tǒng)的設(shè)計與實現(xiàn)

2009-08-10
作者:杜英坤, 林開顏

??? 摘 要: 國內(nèi)多數(shù)加油站依靠手工或液位儀對儲油罐油品進(jìn)行管理,其測量準(zhǔn)確性、實時性、快捷性均難以滿足加油站信息化需求。在深入研究液位儀通信技術(shù)的基礎(chǔ)上,將液位儀和計算機信息技術(shù)結(jié)合起來,設(shè)計出一種新的儲油罐監(jiān)測系統(tǒng),實現(xiàn)了實時測量并自動記錄油罐內(nèi)的各類參數(shù)以及自動進(jìn)銷存管理、自動油罐校準(zhǔn)技術(shù)、遠(yuǎn)程監(jiān)測等功能。實踐證明,系統(tǒng)的測量準(zhǔn)確性、高效性及實時性在加油站管理中發(fā)揮了重大的作用,具有廣闊的應(yīng)用前景。
??? 關(guān)鍵詞:儲油罐;測量;液位儀;信息技術(shù)

?

??? 加油站是油料收、發(fā)、儲藏等作業(yè)的基層單元,加油站信息化建設(shè)對于方便生產(chǎn)生活、加快石油產(chǎn)業(yè)建設(shè)步伐都有重要意義。在我國,由于受經(jīng)濟(jì)水平、技術(shù)條件等諸多因素的制約,加油站對儲油罐的監(jiān)測手段中靠手工檢尺、人工計量、人工巡檢還占有相當(dāng)大的比例[1]。人工計量不僅測量精度、效率、可靠性以及可維護(hù)性難以滿足油庫信息化建設(shè)的需求,而且對罐內(nèi)是否進(jìn)水更無從檢查。有些規(guī)模大、效益較好的加油站雖然采用了現(xiàn)代化液位儀器具,但僅靠液位儀同樣難以滿足加油站信息化管理的要求。其不足之處主要體現(xiàn)在以下:
??? (1)功能單一,管理和操作液位儀數(shù)據(jù)不便。普通液位儀提供了儲油罐各類數(shù)據(jù)的監(jiān)測功能,但往往需要人工在液位儀面板上多次按下對應(yīng)按鍵才能完成,而且有些品牌的液位儀控制器不具備液晶顯示、鍵盤等人機接口,這給管理和維護(hù)帶來不便;
??? (2)無法自動獲取加油機的銷售數(shù)據(jù),進(jìn)而自動形成油罐的進(jìn)銷存數(shù)據(jù);
??? (3)數(shù)據(jù)不能遠(yuǎn)程傳輸和共享,管理部門難以掌握庫存數(shù)據(jù),油品配送不方便。
??? 鑒于此,本文設(shè)計了一種儲油罐監(jiān)測與管理系統(tǒng)。該管理系統(tǒng)將信息技術(shù)與液位儀測量技術(shù)結(jié)合起來,不僅可以自動采集、存儲及管理油庫收、發(fā)、存信息及報警信息,而且還可以自動生成庫存記錄和自動進(jìn)油記錄,減少操作人員的數(shù)量,提高操作效率和油庫安全管理水平等,并可將各類存儲數(shù)據(jù)進(jìn)行遠(yuǎn)程傳輸,方便油品配送。
1 儲油罐監(jiān)測系統(tǒng)總體方案設(shè)計
1.1 系統(tǒng)結(jié)構(gòu)和配置
??? 加油站管理系統(tǒng)的拓?fù)浣Y(jié)構(gòu)如圖1所示。其中,計算機、加油機通信控制器和液位儀控制器放置于營業(yè)房內(nèi)(如圖1中虛線框所示)。同時,計算機與加油機通信控制器通過RS232通信方式相連,采集加油機的銷售數(shù)據(jù),而液位儀控制器與油罐內(nèi)的各個探棒相連接,實時測量油罐的庫存、進(jìn)油、溫度、液位等信息。采集到有效數(shù)據(jù)后將這些信息以RS232通信方式傳輸?shù)接嬎銠C中。計算機既可以通過液位儀控制器獲取庫存、進(jìn)油數(shù)據(jù),又可以通過加油機通信控制器獲取加油機銷售數(shù)據(jù),進(jìn)而可形成進(jìn)銷存數(shù)據(jù)。

?


??? 本系統(tǒng)中,現(xiàn)場探測設(shè)備選用美國維德路特公司的TLS系列數(shù)字式磁致伸縮液位儀和探棒,計算機采用普通工控機。
1.2 系統(tǒng)主要功能
??? 系統(tǒng)的主要功能如表1所示。

?


2 系統(tǒng)通信技術(shù)及實現(xiàn)方法
2.1系統(tǒng)通信的硬件連接

??? 通信方式采用RS-232標(biāo)準(zhǔn)串行通信,硬件連接可采用標(biāo)準(zhǔn)9針或25針接口。以9針為例:第2針為液位儀發(fā)送數(shù)據(jù),第3針為液位儀接收數(shù)據(jù),第5針為公共接地。液位儀通信接口可以直接連在計算機上,也可通過Modem連在計算機上。
2.2 通信命令格式
??? (1)通信數(shù)據(jù)字節(jié)傳輸格式
??? 液位儀接收和發(fā)送數(shù)據(jù)都是以ASCII碼的形式進(jìn)行的,字節(jié)數(shù)據(jù)格式為:

???

??? 主機和液位儀的通信數(shù)據(jù)格式必須一致,否則通信不能進(jìn)行。液位儀通信數(shù)據(jù)格式選擇可以通過面板上的鍵盤進(jìn)行設(shè)置。波特率可以選擇為以下幾個中的一個:300 b/s、1200 b/s、2400 b/s、4800 b/s、9600 b/s;同樣地,主機波特率的設(shè)置也必須和液位儀一致才能進(jìn)行通信。
??? (2)通信命令格式[2]
??? ① PC向液位儀發(fā)送的所有命令都要遵循如下通信格式:

???

??? 其中,SOH:控制字符,ASCII值為01,命令起始標(biāo)志。
??? Security Code:命令安全碼,由6個數(shù)字密碼或一些字母組成,它可以用面板上的開關(guān)設(shè)定,也可以配置命令設(shè)定,也可以是通過接口通信傳遞過來的配置命令設(shè)定。此項出于安全考慮而設(shè)的,為可選項。
??? Function Code:功能代碼,由6個字符組成。功能代碼是液位儀用來向主機作出響應(yīng)或者接收主機命令的,不同的密碼代表不同的具體含義。如代碼“I201”是灌內(nèi)油品存量報告,代碼“I202”是油品銷售報告等。
??? Data Field:數(shù)據(jù)域,包含完成選定功能的必要信息,比如配置信息等。
??? ②液位儀作出的響應(yīng)則遵循下列格式:

???

??? 其中,SOH:控制字符。
??? Function Code:功能代碼,和液位儀收到的功能代碼應(yīng)該一致。
??? Data Field:通常是選定功能的必要信息,如日期、時間和狀態(tài)等。
??? &&:表示數(shù)據(jù)位停止,后面的是校驗位。
??? Checksum:校驗位,對此位以前的數(shù)據(jù)進(jìn)行校驗(包括控制字符),由4個表示十六進(jìn)制的ASCII字符構(gòu)成(即2B)。校驗碼是從此位以前所有數(shù)據(jù)的二進(jìn)制下累加和的補碼形式。
??? ETX:ASCII值為03的命令結(jié)束控制字符。下面以讀取庫存數(shù)據(jù)的I201命令為例來說明液位儀通信命令格式。
??? 主機命令格式:
??? i201TT
??? 典型的液位儀回答:
??? i201TTYYMMDDHHmm-TTpssssNNFFFFFFFF...TTpssssNNFFFFFFFF...&&CCCC
??? 其字段具體含義如表2所示。

?


3軟件設(shè)計
3.1 串口通信設(shè)計
??? 串口通信利用VC++6.0開發(fā)環(huán)境里封裝的MSComm控件來完成主機與液位儀之間的通信。MSComm控件在串口編程時非常方便,其使用步驟可概括如下[3]
??? (1)定義一個串口對象
? ? 如? CMSComm?m_MSComm
??? (2) 串口初始化
? ? //選擇COM1
??? m_MSComm.SetCommPort(1)?
??? //設(shè)置接收緩沖區(qū)
??? m_MSComm.SetInBufferSize(1024)?
????//設(shè)置發(fā)送緩沖區(qū)
?? ?m_MSComm.SetOutBufferSize(1024)
? ? //全部接收數(shù)據(jù)
??? m_MSComm.SetInputLen(0)
? ? //二進(jìn)制方式讀寫數(shù)據(jù)
??? m_MSComm.SetInputMode(1)
?? ?//一接收就引發(fā)OnComm事件???
??? m_MSComm.SetRThreshold(1)???
? ? //設(shè)置波特率校驗位等。
??? m_MSComm.SetSettings('9600,n,8,1')
? ? //打開串口
??? m_MSComm.SetPortOpen(TRUE)
??? (3)串口數(shù)據(jù)發(fā)送
??? CByteArray arr;
??? arr.RemoveAll();
??? arr.SetSize(nSize);
??? for(i=0;i??? ?? {//pData指向發(fā)送緩沖區(qū)
??? arr.SetAt(i,pData[i]);
??? }
??? if(m_commctrl.GetPortOpen())
??? ? {//向串口發(fā)送數(shù)據(jù)??? m_commctrl.SetOutput(Cole
??? Variant(arr));
????}
??? (4)接收數(shù)據(jù):
??? 當(dāng)串口接收到數(shù)據(jù)時,會產(chǎn)生串口事件中斷,在相應(yīng)中斷函數(shù)中:
??? VARIANT vaRecData;
??? int k; short nCommValue;
??? nCommValue= m_commctrl.GetCommEvent();
??? unsigned char pRecDataBuffer[1000];
??? if(nCommValue == 2)
??? {//接收數(shù)據(jù)中斷
??? k=m_commctrl.GetInBufferCount();
??? if(k>0)
??? m_commctrl.SetInputLen(k);
??? vaRecData = m_commctrl.GetInput();
??? unsigned char * pData;
??? pData =(unsigned char*)vaRecData.parray->pvData;
??? for(int i=0;i??? {//讀取數(shù)據(jù)到接收緩沖區(qū)???pRecDataBuffer[i]= pData[i];
??? }
??? …
??? }
??? 通過以上步驟,就可以進(jìn)行串口數(shù)據(jù)通信。
3.2管理系統(tǒng)軟件流程
??? 液位儀主機開始實現(xiàn)管理系統(tǒng)軟件后,管理軟件首先會根據(jù)各項設(shè)置生成一個主界面,如圖2所示。用來模擬加油站各個油罐的液位、水位、余空的高度,并以不同的顏色顯示,便于用戶直觀觀察。而界面的下方列表中則詳細(xì)顯示了油位、油量、水位、水量、余空、溫度等重要數(shù)據(jù)的具體值。所用命令的種類和功能如表3所示,液位儀管理軟件依次向每個油罐發(fā)送命令,每個命令處理完所有油罐后才會轉(zhuǎn)入下一命令繼續(xù)執(zhí)行,命令循環(huán)往復(fù)進(jìn)行。這樣液位儀管理軟件就可以獲取各個油罐的庫存信息、進(jìn)油信息、狀態(tài)及報警記錄,并保存在數(shù)據(jù)庫中供用戶查詢。液位儀管理系統(tǒng)能結(jié)合加油機管理軟件獲得的加油數(shù)據(jù)(銷售數(shù)據(jù)),生成進(jìn)銷存報表,并可通過通信軟件把報表發(fā)送到遠(yuǎn)程服務(wù)器,方便職能部門進(jìn)行分析、統(tǒng)計,達(dá)到遠(yuǎn)程可了解油罐庫存狀態(tài),方便油品配送的目的。

?

?


4自動油罐校準(zhǔn)技術(shù)的實現(xiàn)方法
??? 自動油罐校準(zhǔn)技術(shù)是對油罐容積表動態(tài)地進(jìn)行校準(zhǔn)。普通油罐由于長期深埋于地下,在運行過程中受壓力、土石層變化、地下水位等儲多因素的影響,不可避免地產(chǎn)生變形、傾斜,因此會導(dǎo)致預(yù)先設(shè)置在液位儀控制器中的容積表不準(zhǔn)確。本管理系統(tǒng)基于VEEDER ROOT公司AccuChart技術(shù)的基礎(chǔ)上,由程序自動向液位儀控制器發(fā)送數(shù)據(jù),實現(xiàn)自動油罐校正,從而保證了油品的進(jìn)、銷、存管理的準(zhǔn)確性。下面就本系統(tǒng)中采用的自動油罐校準(zhǔn)技術(shù)作一闡述。
??? 實現(xiàn)自動油罐校準(zhǔn)可分為以下3個步驟:
??? (1)實現(xiàn)自動校準(zhǔn)需要獲取加油機的提槍、掛槍信號及本次加油量及加油機的累計泵碼數(shù),這些數(shù)據(jù)可通過加油機管理軟件獲得。加油機管理軟件和液位儀管理軟件運行在同一計算機上,兩者可通過進(jìn)程通信來完成數(shù)據(jù)交互。而進(jìn)程間通信程可通過以下步驟實現(xiàn)(在加油機管理軟件系統(tǒng)中):
??? ①首先得到液位儀系統(tǒng)管理進(jìn)程的句柄。用 FindWinTitle函數(shù)得到。
??? ②用COPYDATASTRUCT結(jié)構(gòu)體裝載要發(fā)送的數(shù)據(jù)。
??? ③把裝載的數(shù)據(jù)通過WM_COPYDATA消息發(fā)送至液位儀管理軟件。
??? (2)液位儀管理軟件響應(yīng)WM_COPYDATA消息,獲取相應(yīng)數(shù)據(jù)并發(fā)送到液位儀控制器,液位儀控制器接收到命令后就會把此次交易所產(chǎn)生的數(shù)據(jù)進(jìn)行保存。發(fā)送的數(shù)據(jù)即是從加油槍加油時傳遞過來的數(shù)據(jù)。液位儀控制器接收到此數(shù)據(jù)后就和油罐內(nèi)液位量的變化作對比,進(jìn)而計算出由于油罐傾斜、溫度變化、油罐不規(guī)則等因素所產(chǎn)生的誤差。
??? (3)當(dāng)液位儀控制器接收到了足夠有效的數(shù)據(jù)時,就會為每個油罐建立一個最佳的容積表,最佳容積表一旦建立就完成了校準(zhǔn)過程。因此、自動油罐校準(zhǔn)流程如圖3所示。

?

?

??? 油罐的校準(zhǔn)過程在加油站正常售油時即可進(jìn)行,而且不需要任何人工干預(yù)。在油罐容積表校準(zhǔn)期間,油位的浮動范圍應(yīng)該覆蓋整個油罐的運營范圍。一旦采集了足夠的數(shù)據(jù)后,控制器就會自動生成新的油罐容積表,從而完成整個校準(zhǔn)過程。通常,校準(zhǔn)過程一般需要1個多月,加油站內(nèi)的所有油罐可以同時進(jìn)行校準(zhǔn)。
??? 基于數(shù)字式磁致伸縮液位儀的儲油罐實時監(jiān)測與計量管理系統(tǒng),與單純用液位儀相比,具有可靠性高、性能穩(wěn)定、效率高、管理方便等顯著優(yōu)點。結(jié)合了VEEDER ROOT的高精度液位儀控制器和信息技術(shù),本系統(tǒng)不僅實現(xiàn)了精確測量各類參數(shù)、方便銷存管理和自動生成各類報告記錄的功能,而且實現(xiàn)了遠(yuǎn)程管理和配送油品、自動油罐校準(zhǔn)等高級功能。為加油站自動化監(jiān)測和管理提供了完善的解決方案。目前該系統(tǒng)已經(jīng)在上海、遼寧、安徽等多家加油站內(nèi)獲得成功運行,獲得較好評價。
參考文獻(xiàn)
[1]?王鵬飛,李著信,方雪.幾種常見油罐液位計的性能特點及選用[J].重慶工業(yè)高等??茖W(xué)校學(xué)報,2004,19(1):31.
[2]?VEEDRE. Veedee? root serial inteface manual for TLS-300 and TLS-350 UST monitoring systems[R].2006,Manual Number 576013-635 Revision L.
[3]?張筠莉,劉書智.Visual C++實踐與提高串口通信與工程應(yīng)用篇 [M]. 北京:中國鐵道出版社,2006.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。