朱建紅,顧菊平,姚 娟
(南通大學(xué) 電氣工程學(xué)院,南通 226007)
隨著市場貨物需求向著小批量、多品種和時效性方向發(fā)展,貨物流動頻率、品種和數(shù)量迅速增加[1],立體倉庫在配送中心運作中的儲存作業(yè),信息管理內(nèi)容不斷擴(kuò)展,主要是提高下位機(jī)的存取效率和上位機(jī)有效維護(hù)倉庫的動態(tài)信息。高效的倉庫分類信息管理,將提高企業(yè)內(nèi)部運作效率,降低運作成本,提高企業(yè)對市場需求的反應(yīng)速度,增強企業(yè)的競爭力[2]。本論文在文獻(xiàn)[3]中就機(jī)械手不同庫位之間快速移動路徑的最短化(直線)問題研究的基礎(chǔ)上,設(shè)計了下位機(jī)控制系統(tǒng)。同時基于貨位優(yōu)化的策略,采用SQL Server數(shù)據(jù)庫技術(shù)對庫位信息的動態(tài)快速查詢系統(tǒng)進(jìn)行了設(shè)計與實現(xiàn),實現(xiàn)了立體倉庫現(xiàn)場的遠(yuǎn)程監(jiān)控,提高了生產(chǎn)線的自動化水平。
圖1 立體倉庫庫位分配示意圖
小型倉庫的庫位分配示意圖如圖1所示,根據(jù)待存貨種類分為C1、C2、C3存儲區(qū),庫位按存放貨質(zhì)量大小分為重、較重、較輕三個層次,重型存于下幾層,較重放于中間,較輕的放于上幾層。存取信息動態(tài)管理系統(tǒng)設(shè)計的核心主要是結(jié)合上位機(jī)對下位機(jī)系統(tǒng)機(jī)械手位置的動態(tài)監(jiān)控信息及倉庫數(shù)據(jù)信息,采用相關(guān)尋優(yōu)策略對數(shù)據(jù)庫進(jìn)行相關(guān)操作,實現(xiàn)動態(tài)管理功能。
分類存取系統(tǒng)在對存儲區(qū)域進(jìn)行分類基礎(chǔ)上,主要實現(xiàn)取到所需貨物品種的功能,也就是在相應(yīng)類別動態(tài)查詢結(jié)果中隨機(jī)取貨,或?qū)ο鄳?yīng)的存放區(qū)的空庫位進(jìn)行隨機(jī)放貨。
在分類存取基礎(chǔ)上加以條件約束,即移庫、入庫或出庫都要在該區(qū)域中選擇最近庫位來調(diào)庫,這就實現(xiàn)了分類就近存取的功能,這種存取方式下,所有的物品調(diào)庫都遵循最近原則,因而可以節(jié)省大量時間,獲取更高效率。關(guān)鍵技術(shù)就是最優(yōu)庫位點位選擇、查詢和點點之間路徑優(yōu)化,生產(chǎn)實際中更需要功能兼顧效益的存取模式,系統(tǒng)設(shè)計采用分類存取與就近原則相結(jié)合的存取模式,即在分類查詢基礎(chǔ)上按就近距離來進(jìn)行存取操作。由于系統(tǒng)涉及較大數(shù)目的貨物信息與庫位信息的復(fù)雜管理,且涉及到相關(guān)數(shù)量運算,所以引進(jìn)SQL Server數(shù)據(jù)庫對倉庫信息進(jìn)行動態(tài)管理。
系統(tǒng)設(shè)計主要涉及庫位信息的查詢與動態(tài)更新、下位機(jī)機(jī)械手位置的實時跟蹤及每次存取動作總行程的計算與尋優(yōu),所包含的主要功能如下:
1)倉庫總體信息的動態(tài)查詢與管理:為了實施可視化的管理,系統(tǒng)為倉庫所有庫位信息建立數(shù)據(jù)庫,并記錄庫中貨物的相關(guān)信息,如ID、排、層、條碼、貨號、區(qū)位號、庫存標(biāo)志、類別和重量等;
2)關(guān)系數(shù)據(jù)表建立:在分類存取和就近存取原則基礎(chǔ)上,結(jié)合上位機(jī)監(jiān)控的動態(tài)信息及可操作存取庫位,建立相關(guān)表數(shù)據(jù)庫;
3)貨位動態(tài)尋優(yōu)設(shè)計:根據(jù)存取路徑最小化對目的取貨位置與目的放貨進(jìn)行位置動態(tài)尋優(yōu),實現(xiàn)堆垛機(jī)的路徑最優(yōu);
4)數(shù)據(jù)庫的更新:存入和取出貨物后數(shù)據(jù)庫中的信息實時更新,以便下次存取貨查詢。
立體倉庫動態(tài)信息緊密結(jié)合下位機(jī)的存取操作。對貨位優(yōu)化來說,就近存貨就是在現(xiàn)有貨存狀況已知的條件下,結(jié)合機(jī)械手的當(dāng)前位置,查詢機(jī)械手經(jīng)過庫入口點至庫位總行程的最短路徑,確定入貨庫位地址。就近取貨就是結(jié)合機(jī)械手的當(dāng)前位置,查詢機(jī)械手經(jīng)過庫出口點至庫位總行程的最短路徑,確定出貨庫位地址。
在貨位尋優(yōu)時,可采用窮舉法。比如,在放貨時,機(jī)械手任意位置,找出所有的空庫位,計算出它們到機(jī)械手的距離與入貨點距離,對照區(qū)域號與質(zhì)量進(jìn)行查詢,找出總距離最短的點。該方法算法簡單,不過當(dāng)數(shù)據(jù)很多時計算量比較大。不適合大型倉庫的數(shù)據(jù)管理。
其次,采用分塊法位置查詢,先比較所有空庫輻射區(qū)域的x方向上坐標(biāo)到xi最遠(yuǎn)的距離為m,確定區(qū)間,y方向到y(tǒng)i最遠(yuǎn)的距離為n,確定區(qū)間,對照區(qū)域類別查看在這區(qū)間內(nèi)是否有空庫,若有則m和n都減1,在繼續(xù)檢查,直至該區(qū)間內(nèi)不再有空庫,找出該邊界線上所有的空庫,再計算它們到機(jī)械手的距離及入貨點距離,選擇距離最短的點。取貨算法類似,該方法計算量要比上一種方法計算量要小,不過它的程序設(shè)計要復(fù)雜。
考慮到系統(tǒng)在信息維護(hù)方面需求的重要地位,且兩種方案都離不開庫位的查詢,為了庫位的直接跟蹤與管理,必須建立一系列關(guān)系數(shù)據(jù)表。因此設(shè)計中采用庫的分層管理法,對數(shù)據(jù)進(jìn)行分層動態(tài)查詢與計算,在一定程度上減少了計算復(fù)雜程度,本系統(tǒng)擬采用在庫中穿插采用窮舉法進(jìn)行存取庫位的查詢與管理。同時為方便計算與管理,在計算庫位間距時只計算平方和非開方。當(dāng)對所需庫位區(qū)域進(jìn)行查詢比較時,以首條記錄作為基準(zhǔn),逐一與其他記錄相比,保留距離最小對應(yīng)的庫位作為所要查找的位置。這種方法易于實現(xiàn),容易理解。
數(shù)據(jù)庫管理系統(tǒng)設(shè)計的核心技術(shù)為關(guān)系數(shù)據(jù)表的建立,所用字段如下:ID、層、排條碼(XXXXXXX)、貨號(XXXX)、分區(qū)號(C1、C2、C3)、質(zhì)量權(quán)重()庫存標(biāo)志 (1、0)、貨物類別(B1、B2、B3)和機(jī)械手至入貨口距離,入貨時入貨口至候選庫位距離,出貨時機(jī)械
1)系統(tǒng)總表A字段:排、層、條碼、質(zhì)量權(quán)重、存貨標(biāo)志、貨號、類別和區(qū)位號;
2)可存貨位表A1:排、層、條碼、質(zhì)量權(quán)重、存貨標(biāo)志(0)、類別B*和區(qū)位號C*;
4)可取貨位表A2:排、層、條碼、質(zhì)量權(quán)重、存貨標(biāo)志(1)、類別B*和區(qū)位號C*;
整個系統(tǒng)數(shù)據(jù)庫系統(tǒng)的貨位動態(tài)尋優(yōu)示意圖如圖2所示,尋優(yōu)步驟如下:
1)出貨時按貨號及類別關(guān)鍵字查詢,得數(shù)據(jù)庫A2;
2)入貨時按分區(qū)、質(zhì)量權(quán)重查詢,得數(shù)據(jù)庫A1;
3)調(diào)取下位機(jī)機(jī)械手當(dāng)前位置,等待上位機(jī)存取命令,判斷存取貨命令,動態(tài)搜尋最優(yōu)貨位并發(fā)送命令給下位機(jī),更新數(shù)據(jù)庫;具體如下:
結(jié)合當(dāng)前機(jī)械手位置,按照需出貨貨號及存貨標(biāo)志(1)兩條件邏輯“與”關(guān)系對當(dāng)前數(shù)據(jù)庫進(jìn)行查詢,得數(shù)據(jù)庫A2;添加字段“排層至機(jī)械手”,“距離”,生成數(shù)據(jù)庫A21,對庫中字段距離由小到大進(jìn)行篩選,第一條記錄對應(yīng)的層、排即是所要求取的貨位。原數(shù)據(jù)庫相應(yīng)貨位的存貨標(biāo)志(1)更新為“0”。貨號更新為“空”。更新機(jī)械手當(dāng)前的位置。
結(jié)合當(dāng)前機(jī)械手位置,按照需入貨分區(qū)號及質(zhì)量權(quán)重及存貨標(biāo)志(0)條件邏輯“與”關(guān)系對當(dāng)前數(shù)據(jù)庫進(jìn)行查詢,得數(shù)據(jù)庫A1;添加字段“排層至入貨點”“距離”,生成數(shù)據(jù)庫A11,對庫中字段距離由小到大進(jìn)行篩選,選中第一條記錄對應(yīng)的層、排即是所要求取的貨位。原數(shù)據(jù)庫貨位的存貨標(biāo)志(0)更新為“1”,貨號由空更新為相應(yīng)的貨號,條碼更新,機(jī)械手更新當(dāng)前位置。
圖3 監(jiān)控示意圖
如圖3所示的組態(tài)王主監(jiān)控畫面設(shè)計,當(dāng)按下控件“庫存信息”時,系統(tǒng)顯示當(dāng)前貨存的情況,比如:有無貨物、貨物的顏色、重量、條碼、所在庫位、時間及日期;當(dāng)按下控件“就近存貨”或“就近放貨”時,系統(tǒng)經(jīng)過詢問待存取貨信息,切換至“可存貨信息表”或“可放貨信息表”畫面,點擊“取貨”按鈕,通過尋優(yōu)“目的取排”、“目的取層”顯示,系統(tǒng)會把所要的貨物信息提取出;同理,當(dāng)按下 “放貨”時,跟取貨類似,通過尋優(yōu)“目的放排”、“目的放層”顯示,系統(tǒng)會把所取貨物信息提取出。同時把所提取信息通過數(shù)據(jù)通信網(wǎng)絡(luò)傳至下位機(jī)PLC,系統(tǒng)根據(jù)程序設(shè)計自動啟動設(shè)備運行,進(jìn)行取貨、放貨操作。下位機(jī)系統(tǒng)邏輯控制的算法流圖如圖4所示,同時數(shù)據(jù)庫同步動態(tài)更新顯示當(dāng)前貨架上貨物信息。
在數(shù)據(jù)庫管理中,上位機(jī)根據(jù)存取策略獲取存取貨位置信息,然后根據(jù)不同取放貨位置信息給出相應(yīng)的變量控制信息,如:各傳輸方向電機(jī)拖動的運行速度、方向等,最后系統(tǒng)把各數(shù)據(jù)信息通過通信網(wǎng)絡(luò)傳輸給下位機(jī),系統(tǒng)才能按預(yù)定的目的軌跡運行[3]。
當(dāng)機(jī)械手完成從取貨或放貨一次動作結(jié)束時,倉庫總體信息數(shù)據(jù)庫也要同步更新。在檢測到當(dāng)前下位機(jī)根據(jù)上位機(jī)發(fā)出數(shù)據(jù)信息執(zhí)行完成時,數(shù)據(jù)庫更新一次,原來有貨的庫位在取貨以后標(biāo)志位要由1變?yōu)?,同時清除貨物的信息,即顏色、條形碼、重量等。而原來無貨的庫位在放貨以后標(biāo)志位要由0變?yōu)?,同時增加相應(yīng)的貨物的信息,畫面信息同步變化,實現(xiàn)動態(tài)監(jiān)控。
圖4 堆垛機(jī)邏輯控制算法示意圖
系統(tǒng)設(shè)計結(jié)合實際應(yīng)用,采用分類就近存取策略進(jìn)行設(shè)計,把SQL Server數(shù)據(jù)庫技術(shù)引入工程設(shè)計,并對動態(tài)監(jiān)控進(jìn)行了程序設(shè)計。在組態(tài)王監(jiān)控環(huán)境下,可以很方便的查看數(shù)據(jù)庫的相關(guān)信息并能實現(xiàn)立體倉庫信息的實時更新。設(shè)計成果經(jīng)現(xiàn)場實驗平臺調(diào)試,成功運行,實現(xiàn)了調(diào)庫系統(tǒng)的跟蹤與管理。
文中設(shè)計方案經(jīng)過適當(dāng)?shù)男薷目蓱?yīng)用到實際規(guī)模較大的工業(yè)現(xiàn)場調(diào)庫系統(tǒng)中。實現(xiàn)現(xiàn)場遠(yuǎn)程監(jiān)控,提高企業(yè)運作的自動化水平,滿足企業(yè)信息系統(tǒng)管理的要求。
[1] 李曉林,劉波濤.配送中心儲位動態(tài)管理模型研究[J].軟件導(dǎo)刊,2007(1).
[2] 吳和平,陳建宏.基于生產(chǎn)數(shù)據(jù)監(jiān)控與動態(tài)管理系統(tǒng)的礦業(yè)集團(tuán)信息化研究[J].工礦自動化,2007.
[3] 朱建紅,顧菊平等.堆垛機(jī)實時控制系統(tǒng)優(yōu)化設(shè)計[J].制造業(yè)自動化,2011(4).