??? 摘 要: 國內多數加油站依靠手工或液位儀對儲油罐油品進行管理,其測量準確性、實時性、快捷性均難以滿足加油站信息化需求。在深入研究液位儀通信技術的基礎上,將液位儀和計算機信息技術結合起來,設計出一種新的儲油罐監測系統,實現了實時測量并自動記錄油罐內的各類參數以及自動進銷存管理、自動油罐校準技術、遠程監測等功能。實踐證明,系統的測量準確性、高效性及實時性在加油站管理中發揮了重大的作用,具有廣闊的應用前景。
??? 關鍵詞:儲油罐;測量;液位儀;信息技術
?
??? 加油站是油料收、發、儲藏等作業的基層單元,加油站信息化建設對于方便生產生活、加快石油產業建設步伐都有重要意義。在我國,由于受經濟水平、技術條件等諸多因素的制約,加油站對儲油罐的監測手段中靠手工檢尺、人工計量、人工巡檢還占有相當大的比例[1]。人工計量不僅測量精度、效率、可靠性以及可維護性難以滿足油庫信息化建設的需求,而且對罐內是否進水更無從檢查。有些規模大、效益較好的加油站雖然采用了現代化液位儀器具,但僅靠液位儀同樣難以滿足加油站信息化管理的要求。其不足之處主要體現在以下:
??? (1)功能單一,管理和操作液位儀數據不便。普通液位儀提供了儲油罐各類數據的監測功能,但往往需要人工在液位儀面板上多次按下對應按鍵才能完成,而且有些品牌的液位儀控制器不具備液晶顯示、鍵盤等人機接口,這給管理和維護帶來不便;
??? (2)無法自動獲取加油機的銷售數據,進而自動形成油罐的進銷存數據;
??? (3)數據不能遠程傳輸和共享,管理部門難以掌握庫存數據,油品配送不方便。
??? 鑒于此,本文設計了一種儲油罐監測與管理系統。該管理系統將信息技術與液位儀測量技術結合起來,不僅可以自動采集、存儲及管理油庫收、發、存信息及報警信息,而且還可以自動生成庫存記錄和自動進油記錄,減少操作人員的數量,提高操作效率和油庫安全管理水平等,并可將各類存儲數據進行遠程傳輸,方便油品配送。
1 儲油罐監測系統總體方案設計
1.1 系統結構和配置
??? 加油站管理系統的拓撲結構如圖1所示。其中,計算機、加油機通信控制器和液位儀控制器放置于營業房內(如圖1中虛線框所示)。同時,計算機與加油機通信控制器通過RS232通信方式相連,采集加油機的銷售數據,而液位儀控制器與油罐內的各個探棒相連接,實時測量油罐的庫存、進油、溫度、液位等信息。采集到有效數據后將這些信息以RS232通信方式傳輸到計算機中。計算機既可以通過液位儀控制器獲取庫存、進油數據,又可以通過加油機通信控制器獲取加油機銷售數據,進而可形成進銷存數據。
?
??? 本系統中,現場探測設備選用美國維德路特公司的TLS系列數字式磁致伸縮液位儀和探棒,計算機采用普通工控機。
1.2 系統主要功能
??? 系統的主要功能如表1所示。
?
2 系統通信技術及實現方法
2.1系統通信的硬件連接
??? 通信方式采用RS-232標準串行通信,硬件連接可采用標準9針或25針接口。以9針為例:第2針為液位儀發送數據,第3針為液位儀接收數據,第5針為公共接地。液位儀通信接口可以直接連在計算機上,也可通過Modem連在計算機上。
2.2 通信命令格式
??? (1)通信數據字節傳輸格式
??? 液位儀接收和發送數據都是以ASCII碼的形式進行的,字節數據格式為:
???
??? 主機和液位儀的通信數據格式必須一致,否則通信不能進行。液位儀通信數據格式選擇可以通過面板上的鍵盤進行設置。波特率可以選擇為以下幾個中的一個:300 b/s、1200 b/s、2400 b/s、4800 b/s、9600 b/s;同樣地,主機波特率的設置也必須和液位儀一致才能進行通信。
??? (2)通信命令格式[2]
??? ① PC向液位儀發送的所有命令都要遵循如下通信格式:
???
??? 其中,SOH:控制字符,ASCII值為01,命令起始標志。
??? Security Code:命令安全碼,由6個數字密碼或一些字母組成,它可以用面板上的開關設定,也可以配置命令設定,也可以是通過接口通信傳遞過來的配置命令設定。此項出于安全考慮而設的,為可選項。
??? Function Code:功能代碼,由6個字符組成。功能代碼是液位儀用來向主機作出響應或者接收主機命令的,不同的密碼代表不同的具體含義。如代碼“I201”是灌內油品存量報告,代碼“I202”是油品銷售報告等。
??? Data Field:數據域,包含完成選定功能的必要信息,比如配置信息等。
??? ②液位儀作出的響應則遵循下列格式:
???
??? 其中,SOH:控制字符。
??? Function Code:功能代碼,和液位儀收到的功能代碼應該一致。
??? Data Field:通常是選定功能的必要信息,如日期、時間和狀態等。
??? &&:表示數據位停止,后面的是校驗位。
??? Checksum:校驗位,對此位以前的數據進行校驗(包括控制字符),由4個表示十六進制的ASCII字符構成(即2B)。校驗碼是從此位以前所有數據的二進制下累加和的補碼形式。
??? ETX:ASCII值為03的命令結束控制字符。下面以讀取庫存數據的I201命令為例來說明液位儀通信命令格式。
??? 主機命令格式:
???
??? 典型的液位儀回答:
???
??? 其字段具體含義如表2所示。
?
3軟件設計
3.1 串口通信設計
??? 串口通信利用VC++6.0開發環境里封裝的MSComm控件來完成主機與液位儀之間的通信。MSComm控件在串口編程時非常方便,其使用步驟可概括如下[3]:
??? (1)定義一個串口對象
? ? 如? CMSComm?m_MSComm
??? (2) 串口初始化
? ? //選擇COM1
??? m_MSComm.SetCommPort(1)?
??? //設置接收緩沖區
??? m_MSComm.SetInBufferSize(1024)?
????//設置發送緩沖區
?? ?m_MSComm.SetOutBufferSize(1024)
? ? //全部接收數據
??? m_MSComm.SetInputLen(0)
? ? //二進制方式讀寫數據
??? m_MSComm.SetInputMode(1)
?? ?//一接收就引發OnComm事件???
??? m_MSComm.SetRThreshold(1)???
? ? //設置波特率校驗位等。
??? m_MSComm.SetSettings('9600,n,8,1')
? ? //打開串口
??? m_MSComm.SetPortOpen(TRUE)
??? (3)串口數據發送
??? CByteArray arr;
??? arr.RemoveAll();
??? arr.SetSize(nSize);
??? for(i=0;i
??? arr.SetAt(i,pData[i]);
??? }
??? if(m_commctrl.GetPortOpen())
??? ? {//向串口發送數據??? m_commctrl.SetOutput(Cole
??? Variant(arr));
????}
??? (4)接收數據:
??? 當串口接收到數據時,會產生串口事件中斷,在相應中斷函數中:
??? VARIANT vaRecData;
??? int k; short nCommValue;
??? nCommValue= m_commctrl.GetCommEvent();
??? unsigned char pRecDataBuffer[1000];
??? if(nCommValue == 2)
??? {//接收數據中斷
??? 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
??? }
??? …
??? }
??? 通過以上步驟,就可以進行串口數據通信。
3.2管理系統軟件流程
??? 液位儀主機開始實現管理系統軟件后,管理軟件首先會根據各項設置生成一個主界面,如圖2所示。用來模擬加油站各個油罐的液位、水位、余空的高度,并以不同的顏色顯示,便于用戶直觀觀察。而界面的下方列表中則詳細顯示了油位、油量、水位、水量、余空、溫度等重要數據的具體值。所用命令的種類和功能如表3所示,液位儀管理軟件依次向每個油罐發送命令,每個命令處理完所有油罐后才會轉入下一命令繼續執行,命令循環往復進行。這樣液位儀管理軟件就可以獲取各個油罐的庫存信息、進油信息、狀態及報警記錄,并保存在數據庫中供用戶查詢。液位儀管理系統能結合加油機管理軟件獲得的加油數據(銷售數據),生成進銷存報表,并可通過通信軟件把報表發送到遠程服務器,方便職能部門進行分析、統計,達到遠程可了解油罐庫存狀態,方便油品配送的目的。
?
?
4自動油罐校準技術的實現方法
??? 自動油罐校準技術是對油罐容積表動態地進行校準。普通油罐由于長期深埋于地下,在運行過程中受壓力、土石層變化、地下水位等儲多因素的影響,不可避免地產生變形、傾斜,因此會導致預先設置在液位儀控制器中的容積表不準確。本管理系統基于VEEDER ROOT公司AccuChart技術的基礎上,由程序自動向液位儀控制器發送數據,實現自動油罐校正,從而保證了油品的進、銷、存管理的準確性。下面就本系統中采用的自動油罐校準技術作一闡述。
??? 實現自動油罐校準可分為以下3個步驟:
??? (1)實現自動校準需要獲取加油機的提槍、掛槍信號及本次加油量及加油機的累計泵碼數,這些數據可通過加油機管理軟件獲得。加油機管理軟件和液位儀管理軟件運行在同一計算機上,兩者可通過進程通信來完成數據交互。而進程間通信程可通過以下步驟實現(在加油機管理軟件系統中):
??? ①首先得到液位儀系統管理進程的句柄。用 FindWinTitle函數得到。
??? ②用COPYDATASTRUCT結構體裝載要發送的數據。
??? ③把裝載的數據通過WM_COPYDATA消息發送至液位儀管理軟件。
??? (2)液位儀管理軟件響應WM_COPYDATA消息,獲取相應數據并發送到液位儀控制器,液位儀控制器接收到命令后就會把此次交易所產生的數據進行保存。發送的數據即是從加油槍加油時傳遞過來的數據。液位儀控制器接收到此數據后就和油罐內液位量的變化作對比,進而計算出由于油罐傾斜、溫度變化、油罐不規則等因素所產生的誤差。
??? (3)當液位儀控制器接收到了足夠有效的數據時,就會為每個油罐建立一個最佳的容積表,最佳容積表一旦建立就完成了校準過程。因此、自動油罐校準流程如圖3所示。
?
?
??? 油罐的校準過程在加油站正常售油時即可進行,而且不需要任何人工干預。在油罐容積表校準期間,油位的浮動范圍應該覆蓋整個油罐的運營范圍。一旦采集了足夠的數據后,控制器就會自動生成新的油罐容積表,從而完成整個校準過程。通常,校準過程一般需要1個多月,加油站內的所有油罐可以同時進行校準。
??? 基于數字式磁致伸縮液位儀的儲油罐實時監測與計量管理系統,與單純用液位儀相比,具有可靠性高、性能穩定、效率高、管理方便等顯著優點。結合了VEEDER ROOT的高精度液位儀控制器和信息技術,本系統不僅實現了精確測量各類參數、方便銷存管理和自動生成各類報告記錄的功能,而且實現了遠程管理和配送油品、自動油罐校準等高級功能。為加油站自動化監測和管理提供了完善的解決方案。目前該系統已經在上海、遼寧、安徽等多家加油站內獲得成功運行,獲得較好評價。
參考文獻
[1]?王鵬飛,李著信,方雪.幾種常見油罐液位計的性能特點及選用[J].重慶工業高等專科學校學報,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.