前言:本站為你精心整理了裝備倉(cāng)庫(kù)管理系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)范文,希望能為你的創(chuàng)作提供參考價(jià)值,我們的客服老師可以幫助你提供個(gè)性化的參考范文,歡迎咨詢(xún)。
摘要:為解決裝備倉(cāng)庫(kù)管理出入庫(kù)、調(diào)撥、作業(yè)、庫(kù)存等流程繁瑣的問(wèn)題,設(shè)計(jì)并實(shí)現(xiàn)了一套裝備倉(cāng)庫(kù)管理系統(tǒng),以此來(lái)實(shí)現(xiàn)對(duì)全生命周期裝備的信息化管理,該系統(tǒng)提高了裝備管理的效率,節(jié)省了人力資源。系統(tǒng)采用B/S架構(gòu),使用Spring-Boot+MyBatis的高效開(kāi)發(fā)框架,采用Redis緩存技術(shù)以及MySQL數(shù)據(jù)庫(kù)進(jìn)行開(kāi)發(fā),通過(guò)使用改進(jìn)的A*算法來(lái)進(jìn)行路徑規(guī)劃,提高了AGV的作業(yè)效率。
關(guān)鍵詞:倉(cāng)庫(kù)管理系統(tǒng);SpringBoot;reids;MyBatis;AGV
在公司或企業(yè)的生產(chǎn)管理過(guò)程中,物資監(jiān)管尤為重要,特別是對(duì)倉(cāng)庫(kù)的管理和監(jiān)控,是一項(xiàng)極其復(fù)雜的工作[1],可能會(huì)涉及到物資種類(lèi)多、物資出入庫(kù)頻繁、出入庫(kù)作業(yè)浪費(fèi)人力、調(diào)撥麻煩、貨位分配不均衡、倉(cāng)庫(kù)助理員處理各種單據(jù)等問(wèn)題和困難[2]。為解決上述出現(xiàn)的問(wèn)題,越來(lái)越多的企業(yè)選擇使用倉(cāng)庫(kù)管理系統(tǒng),來(lái)使得倉(cāng)庫(kù)管理整個(gè)流程智能化、明確化,減少人工操作帶來(lái)的人力成本以及操作失誤[3]。結(jié)合以上需求本文設(shè)計(jì)了一套以實(shí)現(xiàn)倉(cāng)庫(kù)管理智能化為目標(biāo)的倉(cāng)庫(kù)管理系統(tǒng),以器材、裝備為基礎(chǔ)數(shù)據(jù),將物資出入庫(kù),作業(yè)管理,庫(kù)存管理等流程細(xì)分化,以MySQL作為數(shù)據(jù)庫(kù),建立一套倉(cāng)庫(kù)信息化管理系統(tǒng)[4]。
本文設(shè)計(jì)的裝備倉(cāng)庫(kù)管理系統(tǒng)采用了B/S架構(gòu),將整個(gè)系統(tǒng)分為三層架構(gòu),具體分為表示層、業(yè)務(wù)層、數(shù)據(jù)訪(fǎng)問(wèn)層,提高了系統(tǒng)的穩(wěn)定性和可拓展性。表示層即用戶(hù)界面層,負(fù)責(zé)直接與用戶(hù)進(jìn)行交互,倉(cāng)庫(kù)管理員可通過(guò)直接操作該層來(lái)實(shí)現(xiàn)對(duì)倉(cāng)庫(kù)的管理、業(yè)務(wù)層主要作用是具體處理某些業(yè)務(wù),調(diào)用Service層的接口來(lái)對(duì)該系統(tǒng)的具體業(yè)務(wù)實(shí)現(xiàn)控制、數(shù)據(jù)訪(fǎng)問(wèn)層主要是實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操控,實(shí)現(xiàn)數(shù)據(jù)的增刪改查功能。該系統(tǒng)主要由基礎(chǔ)數(shù)據(jù)模塊、出入庫(kù)管理模塊、庫(kù)存管理模塊、系統(tǒng)配置模塊、作業(yè)管理模塊五個(gè)大模塊所組成。
1.1系統(tǒng)架構(gòu)
為實(shí)現(xiàn)倉(cāng)庫(kù)裝備智能化管理,為達(dá)到其實(shí)用、實(shí)時(shí)、精確的目的,本系統(tǒng)采用SpringBoot+MyBatis的架構(gòu)實(shí)現(xiàn)了PC端的后臺(tái)裝備管理系統(tǒng)[5],系統(tǒng)整體架構(gòu)如圖1所示。整個(gè)系統(tǒng)的PC端采用的是B/S架構(gòu),提高用戶(hù)與系統(tǒng)的交互體驗(yàn),通過(guò)瀏覽器就可以操作整個(gè)倉(cāng)庫(kù)管理的流程,從某種程度上解決了現(xiàn)有單位倉(cāng)庫(kù)管理效率底下、分工不明確等問(wèn)題。采用這套系統(tǒng)可以極大地減少了單位一些不必要的人力和物力開(kāi)支,保證物資在整個(gè)流程中的流轉(zhuǎn)情況的透明化,更利于單位對(duì)物資的監(jiān)管。另外根據(jù)登錄的角色不同,所具有的權(quán)限也不相同,登錄所看到的頁(yè)面與操作也不同,這樣更便于倉(cāng)庫(kù)管理分工明確化。
1.2系統(tǒng)模塊組成
根據(jù)裝備倉(cāng)庫(kù)管理的需求,將整個(gè)系統(tǒng)主要設(shè)計(jì)成五個(gè)模塊,分別為基礎(chǔ)數(shù)據(jù)模塊、出入庫(kù)管理模塊、庫(kù)存管理模塊、系統(tǒng)配置模塊、作業(yè)管理模塊。每個(gè)模塊擁有一些子模塊,這些模塊之間緊密相連,共同組成了整個(gè)倉(cāng)庫(kù)管理系統(tǒng)。系統(tǒng)功能模塊圖如圖2所示:1)基礎(chǔ)數(shù)據(jù)模塊:該模塊主要是對(duì)裝備倉(cāng)庫(kù)管理系統(tǒng)的器材目錄、裝備目錄、單位目錄、基數(shù)標(biāo)準(zhǔn)進(jìn)行管理、支持?jǐn)?shù)據(jù)源的導(dǎo)入、導(dǎo)出,信息的完善以及數(shù)據(jù)更新;2)出入庫(kù)管理模塊:該模塊主要是對(duì)裝備倉(cāng)庫(kù)管理系統(tǒng)的出入庫(kù)以及調(diào)撥流程全面、系統(tǒng)的操作和展示;3)庫(kù)存管理模塊:該模塊主要是對(duì)裝備倉(cāng)庫(kù)管理系統(tǒng)的庫(kù)存進(jìn)行管理,可以對(duì)各單位庫(kù)存、庫(kù)房、貨位庫(kù)存進(jìn)行管理、調(diào)配、統(tǒng)計(jì);4)作業(yè)管理模塊:該模塊主要是對(duì)供倉(cāng)庫(kù)保管員使用的,保管員可以根據(jù)助理員下達(dá)的任務(wù),來(lái)進(jìn)行實(shí)際的作業(yè);5)系統(tǒng)配置模塊:該模塊主要是對(duì)裝備倉(cāng)庫(kù)管理系統(tǒng)的角色、用戶(hù)、單位權(quán)限分配,對(duì)系統(tǒng)年度、標(biāo)識(shí)碼設(shè)定以及提供日志管理功能。
2關(guān)鍵技術(shù)
2.1基于Redis的數(shù)據(jù)緩存的設(shè)計(jì)
該裝備倉(cāng)庫(kù)管理系統(tǒng)在登錄模塊以及角色管理模塊該系統(tǒng)采用了Redis做緩存。一方面主要用來(lái)做用戶(hù)信息的緩存,存放登錄用戶(hù)的信息與權(quán)限,避免每次訪(fǎng)問(wèn)后端都要去訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),由于Redis是基于內(nèi)存的,所以訪(fǎng)問(wèn)速度較之于訪(fǎng)問(wèn)數(shù)據(jù)存放在硬盤(pán)MySQL數(shù)據(jù)庫(kù)會(huì)快得多,提高了該系統(tǒng)的高并發(fā)能力,也提高了用戶(hù)的體驗(yàn);另一方面主要用來(lái)做部門(mén)樹(shù)狀圖的緩存,因?yàn)樵搯挝唤M織結(jié)構(gòu)比較復(fù)雜,每次放數(shù)據(jù)庫(kù)里面查找部門(mén)數(shù)據(jù)然后在去遍歷成樹(shù)狀結(jié)構(gòu)的話(huà),可能速度比較慢,很影響用戶(hù)的體驗(yàn),所以當(dāng)要去獲得部門(mén)樹(shù)狀圖的話(huà),可以先去緩存找,找不到的話(huà)再去數(shù)據(jù)庫(kù)去尋找部門(mén)數(shù)據(jù),然后再去遍歷成樹(shù)狀結(jié)構(gòu),再把這個(gè)樹(shù)狀結(jié)構(gòu)緩存到Redis數(shù)據(jù)庫(kù)中,當(dāng)下次需要去獲取部門(mén)樹(shù)狀圖的話(huà)就可以直接從緩存中獲取出來(lái)。由于倉(cāng)庫(kù)管理整個(gè)系統(tǒng)中大量模塊涉及到訂單編號(hào)的生成,并且要保證這些訂單編號(hào)在高并發(fā)的情況下實(shí)現(xiàn)唯一,所以本系統(tǒng)涉及到訂單編號(hào)生成的模塊中采用了Redis去實(shí)現(xiàn)訂單編號(hào)的生成,在集群架構(gòu)的情況下,由于整個(gè)系統(tǒng)可以共用一個(gè)Redis服務(wù)器,而Reids是一種單線(xiàn)程的技術(shù)并且Redis自身也提供了分布式鎖,所以可以采用Redis去生成全局唯一的一個(gè)訂單編號(hào),來(lái)解決在多線(xiàn)程情況下生成訂單編號(hào)不安全的問(wèn)題。在性能方面,由于Redis是單線(xiàn)程所以沒(méi)有線(xiàn)程上下文切換帶來(lái)的損耗,Redis也采用I/O多路復(fù)用的技術(shù)來(lái)優(yōu)化IO的讀寫(xiě),最后Redis是基于內(nèi)存操作的,所以Redis處理請(qǐng)求會(huì)很快。而且Redis支持多種數(shù)據(jù)結(jié)構(gòu),可以滿(mǎn)足我們對(duì)數(shù)據(jù)的操作。
2.2采用AGV小車(chē)進(jìn)行作業(yè)管理
隨著現(xiàn)代倉(cāng)庫(kù)越來(lái)越智能化,越來(lái)越多的企業(yè)利用AGV小車(chē)進(jìn)行智能化作業(yè)管理工作,不僅解決了人工對(duì)貨物作業(yè)的效率低、耗時(shí)長(zhǎng)問(wèn)題還降低了人力消耗大、人力成本高的弊端[6]。本系統(tǒng)采用的AGV小車(chē)為二維碼導(dǎo)航的AGV小車(chē),由于裝備倉(cāng)庫(kù)的私密性,所以倉(cāng)庫(kù)的出入人員相對(duì)較少,這樣對(duì)二維碼的破壞較少,并且二維碼導(dǎo)航相較于電磁導(dǎo)航更精確,比激光導(dǎo)航以及慣性導(dǎo)航成本更低。針對(duì)出入庫(kù)作業(yè)不頻繁的情況下,該系統(tǒng)的AGV路徑規(guī)劃算法采用了改進(jìn)A*算法,而針對(duì)出入庫(kù)作業(yè)比較頻繁的倉(cāng)庫(kù)采用了一種基于短期預(yù)測(cè)的路徑規(guī)劃算法。A*(A-Star)算法是一種靜態(tài)路網(wǎng)中求解最短路徑的最有效直接搜索方法,也是許多其他問(wèn)題的常用啟發(fā)式算法。針對(duì)裝備出入庫(kù)作業(yè)不是很頻繁的倉(cāng)庫(kù),可采用單AGV小車(chē),然后采用了一種改進(jìn)的A*算法,因?yàn)锳*算法是一種靜態(tài)路網(wǎng)中求解最短路徑最有效的直接搜索方法,但是很多時(shí)候找到的最短路徑并不一定效率最高,我們要考慮時(shí)間的損耗,所以我們可以采用在A*算法上面加一種“獎(jiǎng)懲機(jī)制”,來(lái)解決這個(gè)問(wèn)題[9],一方面對(duì)出現(xiàn)拐點(diǎn)的時(shí)候?qū)ζ湓u(píng)價(jià)函數(shù)予以“懲罰”,即增加其代價(jià)值,另一方面引入“AGV的方向感”概念,對(duì)符合條件的節(jié)點(diǎn)給予一定獎(jiǎng)勵(lì),即減少其代價(jià)值來(lái)不斷修正啟發(fā)函數(shù)。我們對(duì)A*算法進(jìn)行改進(jìn)也可以在單AGV的條件下很好地完成對(duì)裝備倉(cāng)庫(kù)路徑的規(guī)劃。針對(duì)出入庫(kù)作業(yè)比較頻繁的倉(cāng)庫(kù),可采用多AGV的倉(cāng)庫(kù)管理系統(tǒng),我們?cè)趩我蛔鳂I(yè)的基礎(chǔ)上采用一種基于短期預(yù)測(cè)的路徑規(guī)劃算法。通過(guò)時(shí)間軸的手段來(lái)預(yù)測(cè)短期時(shí)間段內(nèi)道路的AGV通行量以及可能發(fā)生沖突碰撞的情況,從而降低沖突次數(shù),優(yōu)化作業(yè)任務(wù)完成所花費(fèi)的時(shí)間。具體操作就是利用改進(jìn)的A*算法對(duì)每個(gè)AGV小車(chē)進(jìn)行路徑規(guī)劃,然后將它們的路徑節(jié)點(diǎn)存放在數(shù)組中。通過(guò)判斷時(shí)間軸上同一位置的節(jié)點(diǎn)是否相同來(lái)決策是否為沖突節(jié)點(diǎn),同時(shí)由于每個(gè)路徑節(jié)點(diǎn)與各個(gè)路段一一對(duì)應(yīng)[10],因此可以對(duì)短期內(nèi)各道路的小車(chē)通行量進(jìn)行預(yù)測(cè),然后在此基礎(chǔ)上面重新規(guī)劃路徑方案,最后各個(gè)小車(chē)根據(jù)此方案來(lái)進(jìn)行作業(yè)。
3結(jié)束語(yǔ)
本文主要依據(jù)實(shí)際的需求,介紹了裝備倉(cāng)庫(kù)管理系統(tǒng)具體的設(shè)計(jì)與實(shí)現(xiàn)。以SpringBoot+MyBatis作為后臺(tái)框架、Redis作為緩存、MySQL作為數(shù)據(jù)庫(kù),搭建了一套完整的倉(cāng)庫(kù)管理系統(tǒng),完成了出入庫(kù)管理、庫(kù)存管理、權(quán)限管理、作業(yè)管理、基礎(chǔ)數(shù)據(jù)管理功能。采用AGV來(lái)優(yōu)化作業(yè)管理,實(shí)現(xiàn)人力的解放。
作者:陸松林 張捷 王震 單位:南京理工大學(xué)自動(dòng)化學(xué)院 陸軍裝備部駐重慶地區(qū)軍事代表局駐重慶地區(qū)第一軍事代表室