陸枳屹,項 前,徐志翔,程茂上,楊光輝
(1.東華大學(xué) 機(jī)械工程學(xué)院,上海 201620;2.上海精星物流設(shè)備工程有限公司,上海 201611)
倉儲監(jiān)控系統(tǒng)[1~4]是利用計算機(jī)控制工業(yè)執(zhí)行器完成識別、行走、定位、裝卸等動作,達(dá)到自動化存取物料目的。然而,現(xiàn)代物流倉儲具有訂單量大、批次多、小批量[5]、異構(gòu)設(shè)備多等特點,使得傳統(tǒng)單體式架構(gòu)下的倉儲監(jiān)控系統(tǒng)在作業(yè)效率、并發(fā)響應(yīng)能力等方面,已無法應(yīng)對多作業(yè)任務(wù)并行、多設(shè)備遠(yuǎn)程可視化監(jiān)控等需求。
實現(xiàn)設(shè)備虛擬化、作業(yè)虛擬化是滿足倉儲系統(tǒng)高效作業(yè)的關(guān)鍵,且為復(fù)雜倉儲監(jiān)控系統(tǒng)的實時遠(yuǎn)程可視化監(jiān)控提供了解決方案。虛擬化技術(shù)是指將硬件資源中的屬性、行為以及軟件資源中的功能實現(xiàn)機(jī)制進(jìn)行封裝,并映射到虛擬空間中,通過對虛擬資源集成與訪問,實現(xiàn)軟、硬件資源相互感知與反饋控制[6,7]。國內(nèi)外學(xué)者在設(shè)備資源的虛擬化技術(shù)下開展了大量的研究,并取得一定的進(jìn)展。Angrish A[8]等圍繞構(gòu)建網(wǎng)絡(luò)物理系統(tǒng),針對物理機(jī)器的數(shù)字實體,提出了基于文檔模式的存儲方式,并采用第三方應(yīng)用程序與數(shù)字實體進(jìn)行交互,達(dá)到控制制造設(shè)備目的;湯華茂[9]等通過構(gòu)建分布式語義描述模型,解決了在分布式環(huán)境下底層異構(gòu)設(shè)備數(shù)據(jù)結(jié)構(gòu)不一致性問題;王一斌[10]針對現(xiàn)代倉儲作業(yè)量高、設(shè)備繁雜造成的可靠性差、集成難等問題,采用面向服務(wù)的方法設(shè)計了基于Web的倉儲監(jiān)控系統(tǒng);吳嬌[11]等提出了制造資源虛擬化框架,利用云制造資源適配器對制造資源進(jìn)行統(tǒng)籌管理。
然而,國內(nèi)外學(xué)者在將虛擬化方法應(yīng)用到密集倉儲設(shè)備、作業(yè)流程監(jiān)控等方面的研究相對較少。因此,針對以上密集倉儲監(jiān)控系統(tǒng)亟需解決的問題,提出倉儲監(jiān)控系統(tǒng)的虛擬化技術(shù)。
如圖1所示,本文以某企業(yè)的密集倉庫為例,其中包括1套貨架、1臺提升機(jī)、5臺輸送機(jī)、4臺環(huán)軌穿梭車RGV(Rail Guided Vehicle)、4臺穿梭板SRGV(Shuttle Rail Guided Vehicle)、1套環(huán)形車軌道、一套提升機(jī)軌道。如圖2所示,以入庫作業(yè)為例,具體流程如下:
圖1 密集倉庫布局
圖2 入庫作業(yè)流程圖
1)庫房工作人員將貨物放置托盤,進(jìn)行組盤操作,設(shè)置目標(biāo)貨位,并將托盤運至輸送機(jī)(1、2或3);
2)輸送機(jī)將托盤運送至末端,動態(tài)選配RGV取托盤后沿環(huán)形軌道將托盤運至目標(biāo)輸送機(jī)4處;
3)動態(tài)選擇空閑、距離最近的SRGV,并用提升機(jī)搬運至目標(biāo)通道的讓車位;
4)提升機(jī)運行至輸送機(jī)4處并申叉取貨,將貨物送至目標(biāo)通道位;
5)SRGV取貨后將托盤運送至指定目標(biāo)貨位,完成入庫操作。
由此可見,密集倉儲中存在同構(gòu)和異構(gòu)設(shè)備協(xié)同作業(yè)多、實時響應(yīng)能力需求高、多作業(yè)并行時設(shè)備資源有限,以及各搬運設(shè)備狀態(tài)、調(diào)度和控制邏輯復(fù)雜等問題。
針對以上密集倉儲作業(yè)過程的難點,構(gòu)建倉儲監(jiān)控虛擬化模型,通過工業(yè)設(shè)備通信技術(shù)、數(shù)據(jù)庫技術(shù)及互聯(lián)網(wǎng)技術(shù),將倉儲資源實體、流程實體逐步轉(zhuǎn)化為軟件中的關(guān)系數(shù)據(jù)實體、對象及服務(wù)等數(shù)字實體,通過對虛擬化的數(shù)字實體的交互操作,達(dá)到對倉儲物理資源和作業(yè)過程的遠(yuǎn)程監(jiān)控目的。其中,倉儲資源實體包括貨架、搬運設(shè)備、物料、托盤等;流程實體是出/入庫作業(yè)過程的概念抽象;數(shù)字實體是采用面向?qū)ο蟮挠嬎銠C(jī)語言描述的對象類型。
如圖3所示,倉儲監(jiān)控虛擬化模型包括:設(shè)備、貨架等資源虛擬化與作業(yè)流程虛擬化。在倉儲資源實體虛擬化過程中,通過實體關(guān)系(ER,Entity Relationship)分析,描述倉儲物理實體間的關(guān)系,基于對象關(guān)系映射(ORM,Object Relational Mapping),建立倉儲對象模型與關(guān)系數(shù)據(jù)實體之間的映射關(guān)系,為倉儲監(jiān)控系統(tǒng)提供數(shù)據(jù)訪問的基礎(chǔ)。通過構(gòu)建設(shè)備資源虛擬化模型,降低系統(tǒng)軟件和設(shè)備之間的緊耦合關(guān)系,利用通信技術(shù)實時跟蹤、獲取物理實體的狀態(tài)。在設(shè)備實時狀態(tài)獲取的基礎(chǔ)上,將作業(yè)流程劃分為若干活動并構(gòu)建作業(yè)流程虛擬化模型。通過對設(shè)備變量的讀操作支持倉儲作業(yè)流程的監(jiān)控與決策,其中,倉儲作業(yè)流程的決策包括貨位優(yōu)化、設(shè)備調(diào)度、故障診斷;通過對設(shè)備變量的寫操作控制設(shè)備的搬運動作。
圖3 倉儲監(jiān)控虛擬化模型
如圖4所示,通過采用面向?qū)ο螅∣O,Oriented object)的方法為各設(shè)備建立數(shù)字實體,以實現(xiàn)倉儲實體與數(shù)字實體之間的相互映射,并將其封裝成設(shè)備監(jiān)控服務(wù)。其中,OPC(OLE for Process Control)[12]通信技術(shù)是實現(xiàn)設(shè)備虛擬化的關(guān)鍵技術(shù),通過采用OPC通信技術(shù)統(tǒng)一通訊服務(wù)接口、屏蔽設(shè)備異構(gòu)特性,實現(xiàn)程序與設(shè)備之間的數(shù)據(jù)交互。
圖4 設(shè)備虛擬化模型
基于OPC通信技術(shù),按照四個階段實現(xiàn)設(shè)備與數(shù)字實體之間的映射,具體步驟如下:
1)從PLC控制器到OPC服務(wù)器
OPC服務(wù)器由通信通道、組對象及數(shù)據(jù)項組成,通過TCP/IP協(xié)議與底端控制器相連,并將PLC中的數(shù)據(jù)塊地址與值同步映射成OPC服務(wù)器中的設(shè)備可讀寫變量名與值。
2)從OPC服務(wù)器到OPC客戶端
基于統(tǒng)一的OPC協(xié)議,上位機(jī)設(shè)計OPC客戶端,封裝OPC服務(wù)器的數(shù)據(jù)項的訪問和賦值方法,與OPC服務(wù)器連接。
3)從OPC客戶端到設(shè)備對象
設(shè)備對象是倉儲物理設(shè)備在計算機(jī)內(nèi)的面向?qū)ο竺枋?,即設(shè)備的數(shù)字實體。基于OPC客戶端,連接OPC服務(wù)器,將訂閱的OPC變量映射為設(shè)備對象的實時狀態(tài)屬性,通常通過1個OPC客戶端的連接可映射多個設(shè)備對象。
4)從設(shè)備對象到服務(wù)
在分布式倉儲監(jiān)控系統(tǒng)環(huán)境下,要求各模塊能夠響應(yīng)高并發(fā)的需求,因此,對設(shè)備的數(shù)字實體進(jìn)行服務(wù)化封裝,實現(xiàn)的技術(shù)包括Web的可視化監(jiān)控技術(shù)及遠(yuǎn)程控制技術(shù)。使用ASP.NET Core Web API[13]的Web服務(wù)技術(shù)統(tǒng)一設(shè)備的控制方法,將數(shù)字實體封裝成監(jiān)控服務(wù);通過數(shù)據(jù)實時交互的框架——SignalR[14]技術(shù),實時向監(jiān)控端發(fā)送設(shè)備更新的數(shù)據(jù);同時,結(jié)合Html、CSS等Web可視化技術(shù)實現(xiàn)對接收數(shù)據(jù)的Web可視化監(jiān)控。
如圖5構(gòu)建作業(yè)流程虛擬化模型,采用面向?qū)ο螅∣O)的方法,將流程實體抽象為出/入庫數(shù)字流程實體;通過Web API的Web服務(wù)技術(shù)將其封裝成作業(yè)流程服務(wù),融入SignalR服務(wù)技術(shù)實時推送從服務(wù)接受的數(shù)據(jù)至監(jiān)控端,并結(jié)合Html、CSS等前端技術(shù)實現(xiàn)作業(yè)流程服務(wù)監(jiān)控界面可視化。
圖5 基于事件驅(qū)動的作業(yè)流程模型
將倉儲作業(yè)流程按階段劃分并進(jìn)行活動描述,每個活動需要由事件規(guī)則觸發(fā)并按順序執(zhí)行,以滿足作業(yè)流程的有序性、事件響應(yīng)性;基于事件規(guī)則驅(qū)動控制作業(yè)活動調(diào)度,并實現(xiàn)作業(yè)調(diào)度和車輛交通管制的決策。其中,事件規(guī)則指的是每一個事件都攜帶有事件的觸發(fā)與響應(yīng),只有當(dāng)觸發(fā)條件發(fā)生時,才執(zhí)行相應(yīng)的響應(yīng)內(nèi)容。按作業(yè)優(yōu)先級驅(qū)動出/入庫作業(yè),優(yōu)先級高的作業(yè)先行執(zhí)行;為避免多個作業(yè)同時占用同一設(shè)備的情況,構(gòu)建設(shè)備資源分配規(guī)則表,根據(jù)作業(yè)及設(shè)備的實時狀態(tài)分配合理的設(shè)備。
在倉儲作業(yè)過程中,當(dāng)輸送機(jī)末端有托盤時觸發(fā)小車分配的事件,由于多臺RGV同時行走在環(huán)形軌道中,可能存在交通擁堵的問題,從而影響作業(yè)流程的推進(jìn),因此,還需對已分配的小車進(jìn)行故障分析診斷。在RGV執(zhí)行搬運作業(yè)的過程中,RGV自身能夠?qū)崟r監(jiān)測前方是否存在障礙,在監(jiān)測過程中,基于事件驅(qū)動機(jī)制設(shè)計RGV的觸發(fā)與響應(yīng)規(guī)則,即當(dāng)RGV前方擁堵時觸發(fā)事件,當(dāng)前小車應(yīng)原地待命以響應(yīng);當(dāng)前方不再擁堵時觸發(fā)事件,當(dāng)前小車應(yīng)繼續(xù)前進(jìn)以響應(yīng)。
基于設(shè)備監(jiān)控服務(wù),采用SignalR技術(shù)向監(jiān)控端提供設(shè)備狀態(tài)數(shù)據(jù),并通過Html、CSS等Web前端技術(shù)向監(jiān)控端提供可視化視圖界面,如圖6、圖7所示。操作人員能夠通過設(shè)備監(jiān)控可視化界面實時掌握設(shè)備的OPC通信、運行、故障以及電量等健康狀態(tài)信息。
圖6 設(shè)備監(jiān)控可視化界面
圖7 設(shè)備監(jiān)聽狀態(tài)健康界面
以入庫作業(yè)為例,在入庫作業(yè)過程中,可以通過作業(yè)場景監(jiān)控界面查看作業(yè)在整個倉庫的執(zhí)行狀態(tài)。如圖8所示,當(dāng)設(shè)備出現(xiàn)故障時,圖標(biāo)將閃爍警報,此時,通過點擊設(shè)備圖標(biāo)跳轉(zhuǎn)到單設(shè)備監(jiān)控頁面,實現(xiàn)對設(shè)備的手動控制以保證作業(yè)正常運行。如圖9所示,通過可視化作業(yè)流程監(jiān)控界面,實時跟蹤多任務(wù)作業(yè)流程的狀態(tài)。
圖8 作業(yè)場景可視化監(jiān)控圖
圖9 可視化作業(yè)監(jiān)控界面
如圖10 某企業(yè)密集倉儲作業(yè)現(xiàn)場所示,基于設(shè)備及作業(yè)流程虛擬化的監(jiān)控系統(tǒng)已經(jīng)在某企業(yè)中應(yīng)用,與傳統(tǒng)的倉儲監(jiān)控系統(tǒng)相比,在提高倉儲效率、監(jiān)控可視化及訂單應(yīng)對能力等方面,具有一定的優(yōu)勢,具體如表1 系統(tǒng)應(yīng)用效果對比所示。
圖10 某企業(yè)密集倉儲作業(yè)現(xiàn)場
表1 系統(tǒng)應(yīng)用效果對比
采用OPC通信、實時Web推送服務(wù)等技術(shù)構(gòu)件設(shè)備虛擬化模型,通過倉儲實體的逐層數(shù)字化映射,簡化了對設(shè)備的遠(yuǎn)程管理與監(jiān)控,結(jié)合Html、CSS等Web前端技術(shù),實現(xiàn)了倉儲設(shè)備及作業(yè)流程的Web可視化?;谑录憫?yīng)機(jī)制,建立了作業(yè)流程虛擬化模型,提高了并行作業(yè)系統(tǒng)的魯棒性。目前,該監(jiān)控系統(tǒng)已在企業(yè)投入應(yīng)用,并取得良好效果。