李 東
(上海海勃物流軟件有限公司,上海 200080)
大型港口生產(chǎn)供油業(yè)務(wù)具有場地封閉、站點分散、用油量大、不均衡的特點,傳統(tǒng)加油采用手工簽字記錄模式,效率低下,數(shù)據(jù)不精確;報表實時性差,油品損耗難以計量,結(jié)算困難,安全度低,不能滿足港口能耗管理和節(jié)能減排的要求,針對以上問題,結(jié)合港口集團(tuán)總部、港口碼頭現(xiàn)場、油品供應(yīng)商、系統(tǒng)維護(hù)人員的需求,設(shè)計開發(fā)了油品集中管控系統(tǒng)(Oil centralized management and control system,OCMC),該系統(tǒng)主要應(yīng)用卡機聯(lián)動系統(tǒng)進(jìn)行加油數(shù)據(jù)的控制和采集,建立了以O(shè)GG為紐帶的三級ORACLE數(shù)據(jù)庫,基于JAVA開發(fā)的油品管控平臺等,整個系統(tǒng)業(yè)務(wù)流程清晰、功能模塊完整、數(shù)據(jù)實時準(zhǔn)確,科學(xué)集中管控,節(jié)省了大量人力物力,取得了良好社會效益和經(jīng)濟(jì)效益。
油品集中管控系統(tǒng)由供油采集系統(tǒng)(OCS)、油品數(shù)據(jù)中心(ODC)、油品管理平臺(OMP)三個子系統(tǒng)組成,OCS部署在碼頭加油站,主要有非接觸式卡機聯(lián)動、油卡管理、ZigBee無線傳輸、通信控制,并通過局域網(wǎng)實時上傳到ODC,對加油站的進(jìn)、銷、付、存的智能控制和數(shù)據(jù)采集;ODC部署在港口總部,以星型結(jié)構(gòu)和OCS站通信連接;OMP系統(tǒng)部署在混合云上,使用Web技術(shù),服務(wù)器端采用Java開發(fā)語言,基于業(yè)界廣泛通用的SSH2架構(gòu),Web服務(wù)器采用Tomcat中間件服務(wù)器,Web客戶端采用JQuery框架,WebUI采用基于JQuery的商業(yè)產(chǎn)品MiniUI。這樣能保證服務(wù)器端安全、速度快,包含油品、進(jìn)油、付油、庫存、交接班、統(tǒng)計報表等管理模塊。[1]
圖1 總體架構(gòu)
考慮到大型港口封閉性的特點,需要在港口場地內(nèi)設(shè)置加油站,站級OCS主要由加油機系統(tǒng)、移動加油車系統(tǒng)、站級管理系統(tǒng)三部分組成,加油機系統(tǒng)卡機聯(lián)動控制器通過RS485通信總線和射頻卡控制單元相連,對非接觸式IC卡進(jìn)行讀取,獲取雙卡(司機卡、車卡)授權(quán)驗證信息,加油機卡機聯(lián)動控制器接口與加油機數(shù)控主板進(jìn)行數(shù)據(jù)通信,通過授權(quán)驗證后允許油槍加油,加油結(jié)束后,打印加油小票,加油數(shù)據(jù)傳送到加油站PC,在通信正常的情況下,卡機聯(lián)動控制器會自動下載授權(quán)卡信息,保證卡機聯(lián)動控制系統(tǒng)能夠完成脫機加油,通信恢復(fù)后,加油數(shù)據(jù)斷點續(xù)至加油站PC,加油機主要為方便移動的加油設(shè)備(集卡、鏟車、叉車、場地車等)提供加油業(yè)務(wù);移動加油車上需要安裝卡機聯(lián)動控制器,在出油管道上安裝流量計(DN40/12V/0.1),電磁閥(DN40/24V),卡機聯(lián)動控制器讀卡授權(quán)后,打開電磁閥進(jìn)行加油,加油完畢后,把流量表加油數(shù)據(jù)采集到卡機聯(lián)動控制器MEM中,移動加油車完成加油后,返回加油站移動加油車存放區(qū),移動加加油機卡機聯(lián)動控制器通過ZigeBee無線模塊和加油站PC相連,完成加油數(shù)據(jù)的長傳,移動加油車主要為移動不便的加油設(shè)備(輪胎吊、龍門吊等)加油;站級管理系統(tǒng)和油罐液位儀系統(tǒng)、加油機系統(tǒng)、移動加油車系統(tǒng)、監(jiān)控系統(tǒng)相連,完成進(jìn)、銷油數(shù)據(jù)采集、庫存管理、視頻監(jiān)控、數(shù)據(jù)查詢及打印等業(yè)務(wù),并且采集到的加油數(shù)據(jù)由通信控制器通過LAN上傳到ODC。[2]
油品集中管控系統(tǒng)設(shè)立三級Oracle數(shù)據(jù)庫,主要由站級DB、ODCDB、OMPDB,DB之間通過Oracle GoldenGate(OGG)實現(xiàn)大量數(shù)據(jù)亞秒級的異構(gòu)實時復(fù)制同步,保證供油邏輯業(yè)務(wù)數(shù)據(jù)的一致性;多家站級DB(stationA/B…)通過OGG多對一集中復(fù)制到ODCDB,ODC搭建雙活SERVER,雙SAN光纖交換機和主備存儲盤陣相連,利用oracle RAC集群技術(shù)和RMAN工具,保證了供油數(shù)據(jù)的高精度、高冗余、高安全;ODCDB通過OGG一對一單項復(fù)制到部署在混合云上的OMPDB,OMP系統(tǒng)基于OMPDB的基礎(chǔ)上進(jìn)行油品管理平臺開發(fā)。
OMP系統(tǒng)通過Web應(yīng)用發(fā)布到INTERNET上,用戶主要包括港口總部、加油站、用油單位、供應(yīng)商以及系統(tǒng)維護(hù)人員,通過WAN/LAN登錄網(wǎng)址訪問。港口總部管理和分析全港油品采購情況;加油站用戶管理加油站的日常運行,進(jìn)行進(jìn)貨、加油、移庫、盤點等操作;加油單位用戶查詢本單位油品使用情況;供應(yīng)商用戶查看加油站油品實時庫存,維護(hù)油品價格,管理油泵的校泵等并作為結(jié)賬依據(jù)和用油單位進(jìn)行結(jié)算。
OMP系統(tǒng)主要包括系統(tǒng)配置、生產(chǎn)用油、查詢盤點等三個模塊(詳見圖2)。
圖2 功能模塊
CARD_BALANCE_VIEW視圖用于查詢加油卡余額時后臺程序調(diào)用。
create view [dbo].[CARD_BALANCE_VIEW] as
SELECT EDU_IC_NUM,EDU_COUNT
FROM [OMPDB_Link]. OMPDB.dbo.TBL_EDU
GetLossedTTC實現(xiàn)功能:根據(jù)時間范圍、加油站號、油槍號查詢該油槍的TTC號缺失列表,代碼片段如下:
Create function GetLossedTTC(
@REFD_DT_Start VARCHAR(20)
,@REFD_DT_End VARCHAR(20)
,@REFD_STATION_ID VARCHAR(20)
,@REFD_OILNOZZLE_ID int
)
RETURNS @LossedTTCList TABLE(
REFD_STATION_ID VARCHAR(20)
,REFD_OILNOZZLE_ID int
,REFD_DT_Start VARCHAR(20)
,REFD_DT_End VARCHAR(20)
,TTC VARCHAR(1000)
)
as
begin
declare @ttc_prev int, @DT_prev VARCHAR(30);
declare Refuel_cursor cursor for
SELECT CONVERT(varchar(100),r.REFD_DT,
120) as REFD_DT,r.REFD_OIL_SERIAL
FROM GSS_REFUEL_DETAIL r
where r.REFD_STATION_ID=@REFD_STATION_ID
a n d r.R E F D_O I L N O Z Z L E_I D = @R E F D_OILNOZZLE_ID
and r.REFD_DT >= dateadd(day,0,@REFD_DT_Start)
and REFD_DT <= dateadd(day,0,@REFD_DT_End)
order by r.REFD_OIL_SERIAL asc;
open Refuel_cursor;
fetch from Refuel_cursor into @DT_prev,@ttc_prev ;
while(@@fetch_status=0) begin
declare @ttc_curr int, @DT_curr VARCHAR(30) ;
fetch from Refuel_cursor into @DT_curr,@ttc_curr ;
if(@@fetch_status=0) begin
if(@ttc_curr > @ttc_prev + 1) begin
declare @ttc VARCHAR(1000) ;
set @ttc = cast(@ttc_prev+1 as VARCHAR) ;
declare @idx int ;
set @idx = @ttc_prev + 2 ;
while(@idx < @ttc_curr) begin
set @ttc = @ttc + ',' + cast(@idx as VARCHAR) ;
set @idx = @idx + 1 ;
end ;
insert into @LossedTTCList
s e l e c t @R E F D_S TAT I O N_I D,@R E F D_OILNOZZLE_ID,@DT_prev,@DT_curr,@ttc;
end;
end
else
begin
break;
end;
set @DT_prev = @DT_curr;
set @ttc_prev = @ttc_curr;
end;
——關(guān)閉和釋放游標(biāo)
CLOSE Refuel_cursor ;
return ;
end
refresRefuelData_FuelStation將加油站數(shù)據(jù)庫系統(tǒng)中的異常加油記錄同步到OMP系統(tǒng)中。用戶登錄異常加油記錄處理界面,系統(tǒng)自動調(diào)用該存儲過程同步本加油站的異常加油記錄,也可以手工啟動同步過程;存儲過程的輸入為加油站號,返回數(shù)據(jù)同步狀態(tài),“1”表示成功,“0”表示失敗。
隨著時代的進(jìn)步,傳統(tǒng)人工作業(yè)和管理的弊端逐漸顯現(xiàn),基于信息化、自動化、數(shù)據(jù)化的管理系統(tǒng)已經(jīng)深入滲透到傳統(tǒng)行業(yè),顛覆了傳統(tǒng)的管理模式和思維,展現(xiàn)了強大的生命力。