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

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

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

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

?

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

?


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

?


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

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

???

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

???

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

???

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

?


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

?

?


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

?

?

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

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