??? 摘 要: 國內(nèi)多數(shù)加油站依靠手工或液位儀對儲油罐油品進行管理,,其測量準確性、實時性,、快捷性均難以滿足加油站信息化需求,。在深入研究液位儀通信技術的基礎上,將液位儀和計算機信息技術結(jié)合起來,,設計出一種新的儲油罐監(jiān)測系統(tǒng),,實現(xiàn)了實時測量并自動記錄油罐內(nèi)的各類參數(shù)以及自動進銷存管理、自動油罐校準技術,、遠程監(jiān)測等功能,。實踐證明,系統(tǒng)的測量準確性,、高效性及實時性在加油站管理中發(fā)揮了重大的作用,,具有廣闊的應用前景。
??? 關鍵詞:儲油罐,;測量,;液位儀;信息技術
?
??? 加油站是油料收,、發(fā),、儲藏等作業(yè)的基層單元,加油站信息化建設對于方便生產(chǎn)生活,、加快石油產(chǎn)業(yè)建設步伐都有重要意義,。在我國,由于受經(jīng)濟水平,、技術條件等諸多因素的制約,,加油站對儲油罐的監(jiān)測手段中靠手工檢尺、人工計量,、人工巡檢還占有相當大的比例[1],。人工計量不僅測量精度、效率,、可靠性以及可維護性難以滿足油庫信息化建設的需求,而且對罐內(nèi)是否進水更無從檢查,。有些規(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)將信息技術與液位儀測量技術結(jié)合起來,不僅可以自動采集,、存儲及管理油庫收,、發(fā)、存信息及報警信息,,而且還可以自動生成庫存記錄和自動進油記錄,,減少操作人員的數(shù)量,提高操作效率和油庫安全管理水平等,,并可將各類存儲數(shù)據(jù)進行遠程傳輸,,方便油品配送。
1 儲油罐監(jiān)測系統(tǒng)總體方案設計
1.1 系統(tǒng)結(jié)構和配置
??? 加油站管理系統(tǒng)的拓撲結(jié)構如圖1所示,。其中,,計算機、加油機通信控制器和液位儀控制器放置于營業(yè)房內(nèi)(如圖1中虛線框所示),。同時,,計算機與加油機通信控制器通過RS232通信方式相連,采集加油機的銷售數(shù)據(jù),,而液位儀控制器與油罐內(nèi)的各個探棒相連接,,實時測量油罐的庫存、進油,、溫度,、液位等信息,。采集到有效數(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”是灌內(nèi)油品存量報告,代碼“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的命令結(jié)束控制字符。下面以讀取庫存數(shù)據(jù)的I201命令為例來說明液位儀通信命令格式,。
??? 主機命令格式:
???
??? 典型的液位儀回答:
???
??? 其字段具體含義如表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
??? 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ù)通信。
3.2管理系統(tǒng)軟件流程
??? 液位儀主機開始實現(xiàn)管理系統(tǒng)軟件后,,管理軟件首先會根據(jù)各項設置生成一個主界面,,如圖2所示。用來模擬加油站各個油罐的液位,、水位,、余空的高度,并以不同的顏色顯示,,便于用戶直觀觀察,。而界面的下方列表中則詳細顯示了油位、油量、水位,、水量,、余空、溫度等重要數(shù)據(jù)的具體值,。所用命令的種類和功能如表3所示,液位儀管理軟件依次向每個油罐發(fā)送命令,,每個命令處理完所有油罐后才會轉(zhuǎn)入下一命令繼續(xù)執(zhí)行,,命令循環(huán)往復進行。這樣液位儀管理軟件就可以獲取各個油罐的庫存信息,、進油信息,、狀態(tài)及報警記錄,并保存在數(shù)據(jù)庫中供用戶查詢,。液位儀管理系統(tǒng)能結(jié)合加油機管理軟件獲得的加油數(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結(jié)構體裝載要發(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ù)后就和油罐內(nèi)液位量的變化作對比,進而計算出由于油罐傾斜,、溫度變化,、油罐不規(guī)則等因素所產(chǎn)生的誤差。
??? (3)當液位儀控制器接收到了足夠有效的數(shù)據(jù)時,,就會為每個油罐建立一個最佳的容積表,,最佳容積表一旦建立就完成了校準過程。因此,、自動油罐校準流程如圖3所示,。
?
?
??? 油罐的校準過程在加油站正常售油時即可進行,而且不需要任何人工干預,。在油罐容積表校準期間,,油位的浮動范圍應該覆蓋整個油罐的運營范圍。一旦采集了足夠的數(shù)據(jù)后,,控制器就會自動生成新的油罐容積表,,從而完成整個校準過程。通常,,校準過程一般需要1個多月,,加油站內(nèi)的所有油罐可以同時進行校準。
??? 基于數(shù)字式磁致伸縮液位儀的儲油罐實時監(jiān)測與計量管理系統(tǒng),,與單純用液位儀相比,,具有可靠性高、性能穩(wěn)定,、效率高,、管理方便等顯著優(yōu)點。結(jié)合了VEEDER ROOT的高精度液位儀控制器和信息技術,,本系統(tǒng)不僅實現(xiàn)了精確測量各類參數(shù),、方便銷存管理和自動生成各類報告記錄的功能,而且實現(xiàn)了遠程管理和配送油品,、自動油罐校準等高級功能,。為加油站自動化監(jiān)測和管理提供了完善的解決方案,。目前該系統(tǒng)已經(jīng)在上海、遼寧,、安徽等多家加油站內(nèi)獲得成功運行,,獲得較好評價。
參考文獻
[1]?王鵬飛,,李著信,,方雪.幾種常見油罐液位計的性能特點及選用[J].重慶工業(yè)高等專科學校學報,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.