陸枳屹,項(xiàng) 前,徐志翔,程茂上,楊光輝
(1.東華大學(xué) 機(jī)械工程學(xué)院,上海 201620;2.上海精星物流設(shè)備工程有限公司,上海 201611)
倉(cāng)儲(chǔ)監(jiān)控系統(tǒng)[1~4]是利用計(jì)算機(jī)控制工業(yè)執(zhí)行器完成識(shí)別、行走、定位、裝卸等動(dòng)作,達(dá)到自動(dòng)化存取物料目的。然而,現(xiàn)代物流倉(cāng)儲(chǔ)具有訂單量大、批次多、小批量[5]、異構(gòu)設(shè)備多等特點(diǎn),使得傳統(tǒng)單體式架構(gòu)下的倉(cāng)儲(chǔ)監(jiān)控系統(tǒng)在作業(yè)效率、并發(fā)響應(yīng)能力等方面,已無法應(yīng)對(duì)多作業(yè)任務(wù)并行、多設(shè)備遠(yuǎn)程可視化監(jiān)控等需求。
實(shí)現(xiàn)設(shè)備虛擬化、作業(yè)虛擬化是滿足倉(cāng)儲(chǔ)系統(tǒng)高效作業(yè)的關(guān)鍵,且為復(fù)雜倉(cāng)儲(chǔ)監(jiān)控系統(tǒng)的實(shí)時(shí)遠(yuǎn)程可視化監(jiān)控提供了解決方案。虛擬化技術(shù)是指將硬件資源中的屬性、行為以及軟件資源中的功能實(shí)現(xiàn)機(jī)制進(jìn)行封裝,并映射到虛擬空間中,通過對(duì)虛擬資源集成與訪問,實(shí)現(xiàn)軟、硬件資源相互感知與反饋控制[6,7]。國(guó)內(nèi)外學(xué)者在設(shè)備資源的虛擬化技術(shù)下開展了大量的研究,并取得一定的進(jìn)展。Angrish A[8]等圍繞構(gòu)建網(wǎng)絡(luò)物理系統(tǒng),針對(duì)物理機(jī)器的數(shù)字實(shí)體,提出了基于文檔模式的存儲(chǔ)方式,并采用第三方應(yīng)用程序與數(shù)字實(shí)體進(jìn)行交互,達(dá)到控制制造設(shè)備目的;湯華茂[9]等通過構(gòu)建分布式語(yǔ)義描述模型,解決了在分布式環(huán)境下底層異構(gòu)設(shè)備數(shù)據(jù)結(jié)構(gòu)不一致性問題;王一斌[10]針對(duì)現(xiàn)代倉(cāng)儲(chǔ)作業(yè)量高、設(shè)備繁雜造成的可靠性差、集成難等問題,采用面向服務(wù)的方法設(shè)計(jì)了基于Web的倉(cāng)儲(chǔ)監(jiān)控系統(tǒng);吳嬌[11]等提出了制造資源虛擬化框架,利用云制造資源適配器對(duì)制造資源進(jìn)行統(tǒng)籌管理。
然而,國(guó)內(nèi)外學(xué)者在將虛擬化方法應(yīng)用到密集倉(cāng)儲(chǔ)設(shè)備、作業(yè)流程監(jiān)控等方面的研究相對(duì)較少。因此,針對(duì)以上密集倉(cāng)儲(chǔ)監(jiān)控系統(tǒng)亟需解決的問題,提出倉(cāng)儲(chǔ)監(jiān)控系統(tǒng)的虛擬化技術(shù)。
如圖1所示,本文以某企業(yè)的密集倉(cāng)庫(kù)為例,其中包括1套貨架、1臺(tái)提升機(jī)、5臺(tái)輸送機(jī)、4臺(tái)環(huán)軌穿梭車RGV(Rail Guided Vehicle)、4臺(tái)穿梭板SRGV(Shuttle Rail Guided Vehicle)、1套環(huán)形車軌道、一套提升機(jī)軌道。如圖2所示,以入庫(kù)作業(yè)為例,具體流程如下:

圖1 密集倉(cāng)庫(kù)布局

圖2 入庫(kù)作業(yè)流程圖
1)庫(kù)房工作人員將貨物放置托盤,進(jìn)行組盤操作,設(shè)置目標(biāo)貨位,并將托盤運(yùn)至輸送機(jī)(1、2或3);
2)輸送機(jī)將托盤運(yùn)送至末端,動(dòng)態(tài)選配RGV取托盤后沿環(huán)形軌道將托盤運(yùn)至目標(biāo)輸送機(jī)4處;
3)動(dòng)態(tài)選擇空閑、距離最近的SRGV,并用提升機(jī)搬運(yùn)至目標(biāo)通道的讓車位;
4)提升機(jī)運(yùn)行至輸送機(jī)4處并申叉取貨,將貨物送至目標(biāo)通道位;
5)SRGV取貨后將托盤運(yùn)送至指定目標(biāo)貨位,完成入庫(kù)操作。
由此可見,密集倉(cāng)儲(chǔ)中存在同構(gòu)和異構(gòu)設(shè)備協(xié)同作業(yè)多、實(shí)時(shí)響應(yīng)能力需求高、多作業(yè)并行時(shí)設(shè)備資源有限,以及各搬運(yùn)設(shè)備狀態(tài)、調(diào)度和控制邏輯復(fù)雜等問題。
針對(duì)以上密集倉(cāng)儲(chǔ)作業(yè)過程的難點(diǎn),構(gòu)建倉(cāng)儲(chǔ)監(jiān)控虛擬化模型,通過工業(yè)設(shè)備通信技術(shù)、數(shù)據(jù)庫(kù)技術(shù)及互聯(lián)網(wǎng)技術(shù),將倉(cāng)儲(chǔ)資源實(shí)體、流程實(shí)體逐步轉(zhuǎn)化為軟件中的關(guān)系數(shù)據(jù)實(shí)體、對(duì)象及服務(wù)等數(shù)字實(shí)體,通過對(duì)虛擬化的數(shù)字實(shí)體的交互操作,達(dá)到對(duì)倉(cāng)儲(chǔ)物理資源和作業(yè)過程的遠(yuǎn)程監(jiān)控目的。其中,倉(cāng)儲(chǔ)資源實(shí)體包括貨架、搬運(yùn)設(shè)備、物料、托盤等;流程實(shí)體是出/入庫(kù)作業(yè)過程的概念抽象;數(shù)字實(shí)體是采用面向?qū)ο蟮挠?jì)算機(jī)語(yǔ)言描述的對(duì)象類型。
如圖3所示,倉(cāng)儲(chǔ)監(jiān)控虛擬化模型包括:設(shè)備、貨架等資源虛擬化與作業(yè)流程虛擬化。在倉(cāng)儲(chǔ)資源實(shí)體虛擬化過程中,通過實(shí)體關(guān)系(ER,Entity Relationship)分析,描述倉(cāng)儲(chǔ)物理實(shí)體間的關(guān)系,基于對(duì)象關(guān)系映射(ORM,Object Relational Mapping),建立倉(cāng)儲(chǔ)對(duì)象模型與關(guān)系數(shù)據(jù)實(shí)體之間的映射關(guān)系,為倉(cāng)儲(chǔ)監(jiān)控系統(tǒng)提供數(shù)據(jù)訪問的基礎(chǔ)。通過構(gòu)建設(shè)備資源虛擬化模型,降低系統(tǒng)軟件和設(shè)備之間的緊耦合關(guān)系,利用通信技術(shù)實(shí)時(shí)跟蹤、獲取物理實(shí)體的狀態(tài)。在設(shè)備實(shí)時(shí)狀態(tài)獲取的基礎(chǔ)上,將作業(yè)流程劃分為若干活動(dòng)并構(gòu)建作業(yè)流程虛擬化模型。通過對(duì)設(shè)備變量的讀操作支持倉(cāng)儲(chǔ)作業(yè)流程的監(jiān)控與決策,其中,倉(cāng)儲(chǔ)作業(yè)流程的決策包括貨位優(yōu)化、設(shè)備調(diào)度、故障診斷;通過對(duì)設(shè)備變量的寫操作控制設(shè)備的搬運(yùn)動(dòng)作。

圖3 倉(cāng)儲(chǔ)監(jiān)控虛擬化模型
如圖4所示,通過采用面向?qū)ο螅∣O,Oriented object)的方法為各設(shè)備建立數(shù)字實(shí)體,以實(shí)現(xiàn)倉(cāng)儲(chǔ)實(shí)體與數(shù)字實(shí)體之間的相互映射,并將其封裝成設(shè)備監(jiān)控服務(wù)。其中,OPC(OLE for Process Control)[12]通信技術(shù)是實(shí)現(xiàn)設(shè)備虛擬化的關(guān)鍵技術(shù),通過采用OPC通信技術(shù)統(tǒng)一通訊服務(wù)接口、屏蔽設(shè)備異構(gòu)特性,實(shí)現(xiàn)程序與設(shè)備之間的數(shù)據(jù)交互。

圖4 設(shè)備虛擬化模型
基于OPC通信技術(shù),按照四個(gè)階段實(shí)現(xiàn)設(shè)備與數(shù)字實(shí)體之間的映射,具體步驟如下:
1)從PLC控制器到OPC服務(wù)器
OPC服務(wù)器由通信通道、組對(duì)象及數(shù)據(jù)項(xiàng)組成,通過TCP/IP協(xié)議與底端控制器相連,并將PLC中的數(shù)據(jù)塊地址與值同步映射成OPC服務(wù)器中的設(shè)備可讀寫變量名與值。
2)從OPC服務(wù)器到OPC客戶端
基于統(tǒng)一的OPC協(xié)議,上位機(jī)設(shè)計(jì)OPC客戶端,封裝OPC服務(wù)器的數(shù)據(jù)項(xiàng)的訪問和賦值方法,與OPC服務(wù)器連接。
3)從OPC客戶端到設(shè)備對(duì)象
設(shè)備對(duì)象是倉(cāng)儲(chǔ)物理設(shè)備在計(jì)算機(jī)內(nèi)的面向?qū)ο竺枋?,即設(shè)備的數(shù)字實(shí)體?;贠PC客戶端,連接OPC服務(wù)器,將訂閱的OPC變量映射為設(shè)備對(duì)象的實(shí)時(shí)狀態(tài)屬性,通常通過1個(gè)OPC客戶端的連接可映射多個(gè)設(shè)備對(duì)象。
4)從設(shè)備對(duì)象到服務(wù)
在分布式倉(cāng)儲(chǔ)監(jiān)控系統(tǒng)環(huán)境下,要求各模塊能夠響應(yīng)高并發(fā)的需求,因此,對(duì)設(shè)備的數(shù)字實(shí)體進(jìn)行服務(wù)化封裝,實(shí)現(xiàn)的技術(shù)包括Web的可視化監(jiān)控技術(shù)及遠(yuǎn)程控制技術(shù)。使用ASP.NET Core Web API[13]的Web服務(wù)技術(shù)統(tǒng)一設(shè)備的控制方法,將數(shù)字實(shí)體封裝成監(jiān)控服務(wù);通過數(shù)據(jù)實(shí)時(shí)交互的框架——SignalR[14]技術(shù),實(shí)時(shí)向監(jiān)控端發(fā)送設(shè)備更新的數(shù)據(jù);同時(shí),結(jié)合Html、CSS等Web可視化技術(shù)實(shí)現(xiàn)對(duì)接收數(shù)據(jù)的Web可視化監(jiān)控。
如圖5構(gòu)建作業(yè)流程虛擬化模型,采用面向?qū)ο螅∣O)的方法,將流程實(shí)體抽象為出/入庫(kù)數(shù)字流程實(shí)體;通過Web API的Web服務(wù)技術(shù)將其封裝成作業(yè)流程服務(wù),融入SignalR服務(wù)技術(shù)實(shí)時(shí)推送從服務(wù)接受的數(shù)據(jù)至監(jiān)控端,并結(jié)合Html、CSS等前端技術(shù)實(shí)現(xiàn)作業(yè)流程服務(wù)監(jiān)控界面可視化。

圖5 基于事件驅(qū)動(dòng)的作業(yè)流程模型
將倉(cāng)儲(chǔ)作業(yè)流程按階段劃分并進(jìn)行活動(dòng)描述,每個(gè)活動(dòng)需要由事件規(guī)則觸發(fā)并按順序執(zhí)行,以滿足作業(yè)流程的有序性、事件響應(yīng)性;基于事件規(guī)則驅(qū)動(dòng)控制作業(yè)活動(dòng)調(diào)度,并實(shí)現(xiàn)作業(yè)調(diào)度和車輛交通管制的決策。其中,事件規(guī)則指的是每一個(gè)事件都攜帶有事件的觸發(fā)與響應(yīng),只有當(dāng)觸發(fā)條件發(fā)生時(shí),才執(zhí)行相應(yīng)的響應(yīng)內(nèi)容。按作業(yè)優(yōu)先級(jí)驅(qū)動(dòng)出/入庫(kù)作業(yè),優(yōu)先級(jí)高的作業(yè)先行執(zhí)行;為避免多個(gè)作業(yè)同時(shí)占用同一設(shè)備的情況,構(gòu)建設(shè)備資源分配規(guī)則表,根據(jù)作業(yè)及設(shè)備的實(shí)時(shí)狀態(tài)分配合理的設(shè)備。
在倉(cāng)儲(chǔ)作業(yè)過程中,當(dāng)輸送機(jī)末端有托盤時(shí)觸發(fā)小車分配的事件,由于多臺(tái)RGV同時(shí)行走在環(huán)形軌道中,可能存在交通擁堵的問題,從而影響作業(yè)流程的推進(jìn),因此,還需對(duì)已分配的小車進(jìn)行故障分析診斷。在RGV執(zhí)行搬運(yùn)作業(yè)的過程中,RGV自身能夠?qū)崟r(shí)監(jiān)測(cè)前方是否存在障礙,在監(jiān)測(cè)過程中,基于事件驅(qū)動(dòng)機(jī)制設(shè)計(jì)RGV的觸發(fā)與響應(yīng)規(guī)則,即當(dāng)RGV前方擁堵時(shí)觸發(fā)事件,當(dāng)前小車應(yīng)原地待命以響應(yīng);當(dāng)前方不再擁堵時(shí)觸發(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í)時(shí)掌握設(shè)備的OPC通信、運(yùn)行、故障以及電量等健康狀態(tài)信息。

圖6 設(shè)備監(jiān)控可視化界面

圖7 設(shè)備監(jiān)聽狀態(tài)健康界面
以入庫(kù)作業(yè)為例,在入庫(kù)作業(yè)過程中,可以通過作業(yè)場(chǎng)景監(jiān)控界面查看作業(yè)在整個(gè)倉(cāng)庫(kù)的執(zhí)行狀態(tài)。如圖8所示,當(dāng)設(shè)備出現(xiàn)故障時(shí),圖標(biāo)將閃爍警報(bào),此時(shí),通過點(diǎn)擊設(shè)備圖標(biāo)跳轉(zhuǎn)到單設(shè)備監(jiān)控頁(yè)面,實(shí)現(xiàn)對(duì)設(shè)備的手動(dòng)控制以保證作業(yè)正常運(yùn)行。如圖9所示,通過可視化作業(yè)流程監(jiān)控界面,實(shí)時(shí)跟蹤多任務(wù)作業(yè)流程的狀態(tài)。

圖8 作業(yè)場(chǎng)景可視化監(jiān)控圖

圖9 可視化作業(yè)監(jiān)控界面
如圖10 某企業(yè)密集倉(cāng)儲(chǔ)作業(yè)現(xiàn)場(chǎng)所示,基于設(shè)備及作業(yè)流程虛擬化的監(jiān)控系統(tǒng)已經(jīng)在某企業(yè)中應(yīng)用,與傳統(tǒng)的倉(cāng)儲(chǔ)監(jiān)控系統(tǒng)相比,在提高倉(cāng)儲(chǔ)效率、監(jiān)控可視化及訂單應(yīng)對(duì)能力等方面,具有一定的優(yōu)勢(shì),具體如表1 系統(tǒng)應(yīng)用效果對(duì)比所示。

圖10 某企業(yè)密集倉(cāng)儲(chǔ)作業(yè)現(xiàn)場(chǎng)

表1 系統(tǒng)應(yīng)用效果對(duì)比
采用OPC通信、實(shí)時(shí)Web推送服務(wù)等技術(shù)構(gòu)件設(shè)備虛擬化模型,通過倉(cāng)儲(chǔ)實(shí)體的逐層數(shù)字化映射,簡(jiǎn)化了對(duì)設(shè)備的遠(yuǎn)程管理與監(jiān)控,結(jié)合Html、CSS等Web前端技術(shù),實(shí)現(xiàn)了倉(cāng)儲(chǔ)設(shè)備及作業(yè)流程的Web可視化?;谑录憫?yīng)機(jī)制,建立了作業(yè)流程虛擬化模型,提高了并行作業(yè)系統(tǒng)的魯棒性。目前,該監(jiān)控系統(tǒng)已在企業(yè)投入應(yīng)用,并取得良好效果。