原標(biāo)題:自動(dòng)化立體倉(cāng)庫(kù)wcs的設(shè)計(jì)與實(shí)現(xiàn)!
作為典型的自動(dòng)化物流倉(cāng)儲(chǔ)設(shè)備之一,自動(dòng)化立體倉(cāng)庫(kù)在各行業(yè)中的應(yīng)用越來(lái)越廣泛,它代替了傳統(tǒng)的平面?zhèn)}庫(kù)和貨架,通過(guò)充分利用空間高度,增加了相同占地面積上的可用存儲(chǔ)空間;通過(guò)堆垛機(jī)和貨叉的移動(dòng),實(shí)現(xiàn)了由物到人的便捷存取;通過(guò)配套信息管理系統(tǒng),提高了庫(kù)房及物料管理的工作效率和信息化程度。自動(dòng)化立體倉(cāng)庫(kù)的主體由貨架、堆垛機(jī)、輸送機(jī)及操作控制系統(tǒng)組成,可引入agv小車(chē)完成托盤(pán)或料箱的流轉(zhuǎn)及搬運(yùn)任務(wù),提高了整個(gè)系統(tǒng)的自動(dòng)化程度,能同時(shí)完成物料的存取及信息存儲(chǔ)功能。這其中,操作控制系統(tǒng)主要由倉(cāng)庫(kù)控制系統(tǒng)(wcs)和wms組成,在自動(dòng)化立體倉(cāng)庫(kù)系統(tǒng)中起著主導(dǎo)性的作用。
wcs體系架構(gòu)
wcs系統(tǒng)的整體架構(gòu)采用四層結(jié)構(gòu)自上至下進(jìn)行構(gòu)建,分別為:應(yīng)用層、服務(wù)層、功能層和數(shù)據(jù)層。

應(yīng)用層:系統(tǒng)應(yīng)用的前端形式,可根據(jù)客戶需求進(jìn)行不同平臺(tái)的搭建。應(yīng)用層負(fù)責(zé)用戶界面的呈現(xiàn)和數(shù)據(jù)信息的顯示,以及部分控制功能的入口,不對(duì)業(yè)務(wù)邏輯或數(shù)據(jù)操作進(jìn)行處理。
服務(wù)層:與設(shè)備的通訊需要搭建plc通訊服務(wù),完成plc狀態(tài)信息的讀取和操作指令的寫(xiě)入;數(shù)據(jù)庫(kù)訪問(wèn)服務(wù)完成系統(tǒng)內(nèi)部管理和控制信息的記錄及讀取;可視化效果的實(shí)現(xiàn)需要具備資源文件讀寫(xiě)和加載服務(wù);wcs與外部上游管理系統(tǒng)(wms、erp、sap、mes等)或控制系統(tǒng)(pda.rfid、pad、led等)進(jìn)行信息交互和指令下達(dá),通過(guò)外部系統(tǒng)接口完成服務(wù)。
功能層:結(jié)合具體的業(yè)務(wù)邏輯,針對(duì)特定的設(shè)備任務(wù)進(jìn)行操作,負(fù)責(zé)對(duì)訪問(wèn)服務(wù)調(diào)用的數(shù)據(jù)模型進(jìn)行處理,完成數(shù)據(jù)的管理和應(yīng)用功能的實(shí)現(xiàn)。
數(shù)據(jù)層:針對(duì)plc狀態(tài)點(diǎn)進(jìn)行數(shù)據(jù)采集,創(chuàng)建持久化的數(shù)據(jù)模型,供服務(wù)訪問(wèn)和功能調(diào)用。針對(duì)數(shù)據(jù)庫(kù)對(duì)象實(shí)體進(jìn)行存儲(chǔ)和管理,完成編程對(duì)象和數(shù)據(jù)庫(kù)表之間的映射。
通過(guò)該架構(gòu)的設(shè)計(jì),使得軟件系統(tǒng)結(jié)構(gòu)的劃分更為明確,在保證功能模塊獨(dú)立完整的同時(shí)降低了耦合度;有助于開(kāi)發(fā)團(tuán)隊(duì)分工合作,促進(jìn)合作開(kāi)發(fā)和資源共享,解決了協(xié)同開(kāi)發(fā)過(guò)程中的沖突問(wèn)題;提高了各功能模塊的可復(fù)用性,使得開(kāi)發(fā)成本和后期維護(hù)成本都大大降低。
wcs功能實(shí)現(xiàn)
wcs的核心功能模塊如圖2所示。
任務(wù)調(diào)度模塊:對(duì)上游系統(tǒng)發(fā)送的自動(dòng)出入庫(kù)任務(wù)及自身發(fā)起的手動(dòng)出入庫(kù)任務(wù)生成隊(duì)列,并按照插入優(yōu)先級(jí)進(jìn)行排序,如設(shè)備發(fā)生報(bào)警,可對(duì)隊(duì)列進(jìn)行新和清空等操作。
手動(dòng)控制模塊:包括手動(dòng)岀入庫(kù)任務(wù)的發(fā)起,對(duì)巷道進(jìn)行封鎖,控制輸送機(jī)進(jìn)行移動(dòng),對(duì)設(shè)備報(bào)警進(jìn)行總體恢復(fù)。
設(shè)備監(jiān)控模塊:包括整體布局俯視動(dòng)態(tài)圖,堆垛機(jī)水平移動(dòng)實(shí)時(shí)位置監(jiān)控,提升機(jī)實(shí)時(shí)高度顯示,控制模式顯示,移動(dòng)設(shè)備的速度、加速度、功耗、運(yùn)行時(shí)長(zhǎng)、電流值,存儲(chǔ)空間分布,料箱或托盤(pán)狀態(tài),以及部分關(guān)鍵plc狀態(tài)點(diǎn)顯示。
參數(shù)設(shè)置模塊:包括貨位初始化及禁用操作,料箱或托盤(pán)的初始化及凍結(jié)操作,plc通訊必要參數(shù)配置和數(shù)據(jù)庫(kù)服務(wù)必要參數(shù)設(shè)置等。
系統(tǒng)管理模塊:包括用戶角色創(chuàng)建及賬號(hào)密碼管理,角色權(quán)限分配及配置,系統(tǒng)出入庫(kù)操作日志記錄及查詢,設(shè)備報(bào)警記錄瀏覽及檢索,針對(duì)出入庫(kù)頻次、料箱使用頻次、設(shè)備報(bào)警頻次等數(shù)據(jù)的統(tǒng)計(jì)圖表.
系統(tǒng)流程設(shè)計(jì)
wcs可根據(jù)實(shí)際需求接入掃描槍、rfid、pda等眾多周邊設(shè)備,接口對(duì)接方式眾多,應(yīng)囊括絕大部分市面主流的數(shù)據(jù)對(duì)接方式,例如,webservices數(shù)據(jù)庫(kù)中間表、socket報(bào)文、rest、http協(xié)議等,并可根據(jù)客戶實(shí)際需求完成數(shù)據(jù)及功能接口的定制開(kāi)發(fā)。下面以與wms對(duì)接為例進(jìn)行說(shuō)明,wcs服務(wù)檢測(cè)到數(shù)據(jù)表中記錄發(fā)生變化,根據(jù)操作類(lèi)型識(shí)別出入庫(kù)操作類(lèi)型,根據(jù)料箱號(hào)和取貨口號(hào)進(jìn)行設(shè)備動(dòng)作指令發(fā)送,根據(jù)任務(wù)狀態(tài)進(jìn)行作業(yè)條件變更。出入庫(kù)流程如圖3所示。
圖3wcs與wms對(duì)接流程
項(xiàng)目案例
(1)項(xiàng)目簡(jiǎn)介:
客戶為煙臺(tái)某集橡膠油封、ptfe油封、聚氨酯高壓油封等產(chǎn)品的研發(fā)、制造于一體的專(zhuān)業(yè)化公司。通過(guò)為其提供雙存儲(chǔ)位的自動(dòng)化立體倉(cāng)庫(kù)設(shè)備,并在項(xiàng)目中運(yùn)用本文設(shè)計(jì)的wcs,對(duì)其共計(jì)1500多種規(guī)格的系列產(chǎn)品進(jìn)行管控,包括減振器油封、發(fā)動(dòng)機(jī)油封、氣門(mén)油封、傳動(dòng)系統(tǒng)油封、車(chē)橋油封、轉(zhuǎn)向系統(tǒng)油封、軸承油封、液壓缸油封等的原材料、半成品和成品。該項(xiàng)目wcs設(shè)計(jì)與實(shí)現(xiàn),使倉(cāng)庫(kù)的岀入庫(kù)、調(diào)撥、庫(kù)存轉(zhuǎn)移和庫(kù)存盤(pán)點(diǎn)等日常業(yè)務(wù)都能夠穩(wěn)定、高效地進(jìn)行,并能夠應(yīng)對(duì)多用戶協(xié)同使用和任務(wù)交叉排序的情況,促進(jìn)了客戶的信息化建設(shè)和智能生產(chǎn)。
(2)技術(shù)路線:
首先,以本文提出的架構(gòu)搭建思路作為整體設(shè)計(jì)的前提。其次,基于客戶實(shí)際的業(yè)務(wù)特點(diǎn)進(jìn)行需求分析,對(duì)客戶的實(shí)際功能需求和業(yè)務(wù)流程進(jìn)行了歸納總結(jié),完成信息架構(gòu)的搭建。然后,在wcs系統(tǒng)整體的設(shè)計(jì)階段分別對(duì)架構(gòu)、功能和數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì)。相對(duì)于傳統(tǒng)wcs系統(tǒng),本項(xiàng)目的wcs在常規(guī)架構(gòu)基礎(chǔ)上加入了數(shù)據(jù)感知服務(wù),通過(guò)異步方式完成plc信息狀態(tài)的獲取。在通過(guò)訂閱機(jī)制獲取plc狀態(tài)的基礎(chǔ)上,結(jié)合sqldependency技術(shù)實(shí)現(xiàn)任務(wù)的異步更新和優(yōu)先級(jí)排序,從而完成任務(wù)的拆分、調(diào)度和優(yōu)化。在系統(tǒng)的實(shí)現(xiàn)階段,采用mvvm模式搭建系統(tǒng)基礎(chǔ)框架,并基于opcua標(biāo)準(zhǔn)模型進(jìn)行改造和建模,提升了通訊接口的實(shí)時(shí)性和通用性。另外,為了規(guī)范整個(gè)物流系統(tǒng)內(nèi)所有硬件設(shè)備的通訊格式和協(xié)議標(biāo)準(zhǔn),采用相對(duì)更容易序列化和較為主流的json文件格式進(jìn)行傳輸和交互。在任務(wù)分解的過(guò)程中,結(jié)合自身設(shè)備和現(xiàn)場(chǎng)物流環(huán)境的特點(diǎn),將堆垛機(jī)、傳輸線、agv的任務(wù)作為一個(gè)完整任務(wù)的三個(gè)獨(dú)立單元,根據(jù)實(shí)際情況進(jìn)行組合和協(xié)調(diào)。在設(shè)備調(diào)試和用戶后期使用過(guò)程中,對(duì)wcs系統(tǒng)功能和性能展開(kāi)了測(cè)試與分析,通過(guò)用戶真實(shí)使用環(huán)境下的實(shí)際操作和編寫(xiě)測(cè)試用例方式相結(jié)合進(jìn)行測(cè)試,針對(duì)用戶體驗(yàn)進(jìn)行了部分優(yōu)化和調(diào)整。
(3)架構(gòu)設(shè)計(jì):
應(yīng)用層:應(yīng)用層主要針對(duì)ui進(jìn)行設(shè)計(jì)和客戶端開(kāi)發(fā),實(shí)現(xiàn)用戶和業(yè)務(wù)流程及后端數(shù)據(jù)的接入及交互。本項(xiàng)目采用wpf進(jìn)行客戶端開(kāi)發(fā),并利用其mvvm模式進(jìn)行模塊解耦。viewmodel層為view層和model層的中間傳遞層,它將前端view層所需展示的數(shù)據(jù)從model層中進(jìn)行獲取和轉(zhuǎn)化,并完成傳遞。同時(shí),viewmodel層還可以針對(duì)前端用戶指令和功能接口進(jìn)行業(yè)務(wù)流程的封裝。數(shù)據(jù)的更新、增加和刪除等實(shí)際操作則交由model層來(lái)完成,在完成持久化操作的同時(shí),還可感知數(shù)據(jù)綁定視圖的信息和狀態(tài)變化,并在發(fā)生變化時(shí)通知view-model層執(zhí)行相應(yīng)的操作。
服務(wù)層:針對(duì)plc信息獲取的服務(wù)以plc供應(yīng)商提供的opcua服務(wù)作為基礎(chǔ),針對(duì)具體功能流程服務(wù)進(jìn)行自主開(kāi)發(fā),包括plc通訊、路徑規(guī)劃、任務(wù)生成和分解、入庫(kù)單據(jù)服務(wù)、庫(kù)位存儲(chǔ)服務(wù)、電子標(biāo)簽服務(wù)等功能。將上述功能進(jìn)行整合并形成通用功能服務(wù),整體層次以功能流程為基本單位,針對(duì)具體業(yè)務(wù)進(jìn)行開(kāi)發(fā)。該過(guò)程需要使用服務(wù)的通信組件,使每個(gè)服務(wù)將自己提供給其他服務(wù)使用。
功能層:該層主要完成核心業(yè)務(wù)功能,同時(shí)將設(shè)備控制動(dòng)作進(jìn)行串聯(lián),完成設(shè)備與軟件功能的交互,針對(duì)不同的功能需求進(jìn)行邏輯處理和指令響應(yīng)。根據(jù)客戶的需求和設(shè)備的動(dòng)作流程,按照設(shè)備的每個(gè)獨(dú)立結(jié)構(gòu)和功能單元進(jìn)行模塊劃分,控制輸送線和堆垛機(jī)運(yùn)動(dòng)的模塊為內(nèi)部傳輸模塊;控制外形檢測(cè)、稱重的部分為檢測(cè)模塊;控制agv的模塊為搬運(yùn)模塊。
數(shù)據(jù)層:數(shù)據(jù)層是系統(tǒng)數(shù)據(jù)訪問(wèn)與操作的接口,包括數(shù)據(jù)庫(kù)存儲(chǔ)和資源文件的存儲(chǔ)等。根據(jù)客戶要求,數(shù)據(jù)庫(kù)采用sqlserver注行搭建,并利用redis進(jìn)行緩存和遠(yuǎn)程字典服務(wù)。針對(duì)兩種數(shù)據(jù)庫(kù)的操作進(jìn)行通用化封裝,形成數(shù)據(jù)庫(kù)操作組件,供各個(gè)功能模塊進(jìn)行調(diào)用。
(4)功能設(shè)計(jì):
根據(jù)系統(tǒng)的架構(gòu)設(shè)計(jì),將整體wcs系統(tǒng)劃分為功能模塊:基礎(chǔ)管理、庫(kù)位管理、任務(wù)調(diào)度、agv管理、設(shè)備監(jiān)控。
基礎(chǔ)管理包括用戶管理、角色管理、權(quán)限管理。用戶管理對(duì)系統(tǒng)用戶的基本信息進(jìn)行增、刪、改、査,超級(jí)管理員賬戶可對(duì)普通操作用戶進(jìn)行管理,普通操作用戶可對(duì)自己的密碼進(jìn)行修改。角色管理可使管理員對(duì)普通用戶的角色進(jìn)行劃分和分配,如管理員、操作員、審計(jì)員等。權(quán)限管理結(jié)合角色管理進(jìn)行用戶行為的限制和歸類(lèi),如托盤(pán)的使用權(quán)限分配、操作功能入口的可進(jìn)入限制等。
庫(kù)位管理是對(duì)當(dāng)前自動(dòng)化立體倉(cāng)庫(kù)所有庫(kù)位進(jìn)行序列化生成和管理,對(duì)其他設(shè)備外部的平庫(kù)貨架、虛擬貨區(qū)進(jìn)行定義和劃分,釆用統(tǒng)一的編碼規(guī)則進(jìn)行界定和標(biāo)識(shí)。在推薦入庫(kù)貨位時(shí),根據(jù)每個(gè)貨位的狀態(tài)和位置,可以配合agv及堆垛機(jī)完成路線優(yōu)化。結(jié)合用戶權(quán)限,可針對(duì)庫(kù)位進(jìn)行用戶分配、狀態(tài)變化,通過(guò)“禁用”和“啟用”功能來(lái)規(guī)定某貨位是否能放置托盤(pán),通過(guò)“凍結(jié)”和“解凍”功能來(lái)規(guī)定某托盤(pán)是否能用于出入庫(kù)操作。
任務(wù)管理包括任務(wù)的生成、插入、排序、刪除、轉(zhuǎn)化等。根據(jù)任務(wù)操作類(lèi)型的不同和涉及的硬件設(shè)備不同,進(jìn)行整體任務(wù)的串聯(lián)和調(diào)度。在每一條任務(wù)生成時(shí),對(duì)當(dāng)前時(shí)間進(jìn)行序列化,并在當(dāng)前數(shù)據(jù)庫(kù)中最新任務(wù)的基礎(chǔ)上進(jìn)行追加,生成流水號(hào)與當(dāng)前任務(wù)綁定,從而保證任務(wù)的性。如遇到出庫(kù)任務(wù)為內(nèi)側(cè)料箱,需要將外側(cè)料箱首先進(jìn)行轉(zhuǎn)儲(chǔ),則生成一條轉(zhuǎn)儲(chǔ)類(lèi)型的子任務(wù),同當(dāng)前父任務(wù)一同插入任務(wù)隊(duì)列,隊(duì)列中所有任務(wù)根據(jù)優(yōu)先級(jí)進(jìn)行排序。另外,為了防止任務(wù)意外沖突和死鎖,為用戶提供了人工追加和刪除任務(wù)的功能按鈕。
agv管理分為agv調(diào)度、agv本體檢測(cè)、工作站管理、充電站管理、通訊站管理和接駁點(diǎn)管理等。通過(guò)webapi方式進(jìn)行通訊,實(shí)現(xiàn)點(diǎn)位部署、agv配置、搬運(yùn)任務(wù)生成與調(diào)度、交通管制、整體日志管理等功能。
設(shè)備監(jiān)控實(shí)現(xiàn)針對(duì)當(dāng)前任務(wù)隊(duì)列的顯示、所有硬件設(shè)備實(shí)時(shí)狀態(tài)的顯示、用戶操作軌跡的實(shí)時(shí)顯示、物流設(shè)備整體運(yùn)動(dòng)狀態(tài)的可視化。得益于本設(shè)計(jì)架構(gòu)的良好兼容性,在整體可視化系統(tǒng)的實(shí)現(xiàn)方式選擇時(shí),既可采用二維也可采用三維的方式進(jìn)行開(kāi)發(fā)。由于本項(xiàng)目涉及的堆垛機(jī)較多,且堆垛機(jī)兼顧巷道較多,故采用二維俯視圖的方式進(jìn)行展示,用戶可觀測(cè)到每個(gè)硬件設(shè)備的實(shí)時(shí)位置和移動(dòng)速度。
結(jié)語(yǔ)
本文介紹了自動(dòng)化立體倉(cāng)庫(kù)wcs的體系架構(gòu)和核心功能,探討了其系統(tǒng)流程,并以某客戶項(xiàng)目為案例進(jìn)行了設(shè)計(jì)思路驗(yàn)證。文中闡述的設(shè)計(jì)架構(gòu)和搭建方法已經(jīng)在多個(gè)實(shí)際項(xiàng)目中交付客戶并通過(guò)驗(yàn)證,對(duì)同類(lèi)軟件系統(tǒng)具有一定的參考意義。然而,本文中wcs在與plc通訊時(shí)采用的是基于opcua的交互方式,依賴于plc供應(yīng)商提供的opcua服務(wù)器構(gòu)建的服務(wù)環(huán)境,訂閱plc的狀態(tài)點(diǎn)數(shù)量為500個(gè),超過(guò)上限之后會(huì)出現(xiàn)短時(shí)間內(nèi)斷線無(wú)法重連的情況??梢酝ㄟ^(guò)自主研發(fā)opc服務(wù)來(lái)解決這一問(wèn)題,同時(shí)應(yīng)用服務(wù)器冗余守護(hù)進(jìn)程機(jī)制,構(gòu)建冗余狀態(tài)機(jī),對(duì)系統(tǒng)進(jìn)行故障處理,提高了系統(tǒng)的可靠性。
來(lái)源:《物流技術(shù)》
編輯轉(zhuǎn)發(fā)只為傳遞更多信息,并不代表本號(hào)觀點(diǎn)。
如有侵權(quán),請(qǐng)聯(lián)刪。