引言
隨著我國經濟高速發(fā)展,現代物流行業(yè)和智能制造工廠也在快速發(fā)展,倉儲作為物流和工廠流水線中的重要環(huán)節(jié),對整個系統(tǒng)運作起著至關重要的作用。立體倉庫能有效提高空間利用率和出入庫能力,是倉儲發(fā)展的大勢所趨,在倉儲流程中的使用越來越多。在實際使用過程中,對立體倉庫中的工件按照一定規(guī)則進行預先排序優(yōu)化,有助于減少后續(xù)工作流程的復雜度,提高工作效率。
1立體倉庫介紹
立體倉庫的工件排序問題具有一定的復雜性,本文以上下兩層共6個倉位的立體倉庫為研究對象,研究其工件排序問題。此立體倉庫的6個倉位分別安裝有光電傳感器,用于檢測當前是否存放有工件,并用雙色指示燈進行指示,綠色表示有料,紅色表示無料,如圖1如示。
圖16個倉位的立體倉庫模型
立體倉庫中工件的取放操作由工業(yè)機器人協(xié)助完成,為了使工業(yè)機器人存取工件方便,使用電磁閥控制氣缸實現工件托盤的推出和縮回,氣缸推出、縮回的狀態(tài)信號由安裝在氣缸兩頭的磁性開關檢測。這些信號都接入了PLC控制器,由PLC編程實現按要求推出或縮回料倉。
立體倉庫中的6個倉位分別編號為1~6號倉位,6個倉位最多能放6個工件,這6個工件分別編碼為0001~0006,用二維碼標簽貼紙將編碼粘貼在工件正表面,可用工業(yè)相機獲取。初始狀態(tài)下6個倉位可以放滿工件,也可以不放滿,由于人眼無法自動識別二維碼,初始狀態(tài)下6個工件的順序是亂的,本文將研究通過排序算法將亂序的工件,按順序或逆序或工藝要求的其他排序方式進行排序。
另外,由于表示工件編碼的二維碼標簽貼紙粘貼在工件正表面,在用工業(yè)相機去檢測編碼前,必須確保工件是正面朝上擺放的。為了判斷工件是正面朝上還是反面朝上,工業(yè)機器人的末端工具采用吸盤工具,通過吸盤工具氣動回路上的真空表裝置返回的信號判定工件是正面朝上還是反面朝上,如果是反面朝上,則在用工業(yè)相機進行視覺檢測之前,還必須再加上一道對工件進行翻轉的工序。
立體倉庫的工件編碼通過工業(yè)相機和視覺檢測控制器進行檢測識別,并通過視覺控制器上的通信接口傳輸給工業(yè)機器人或PLC,在工業(yè)機器人或PLC控制器上編寫排序算法,則可實現對立體倉庫中的工件按工藝要求進行排序。
整個立體倉庫的系統(tǒng)框圖如圖2所示,立體倉庫上安裝有用于檢測和指示各料倉有無工件的光電開關和雙色指示燈,以及用于控制及檢測各料倉氣缸推出、縮回的電磁閥和磁性開關,這些信號都通過I/0接口接入PLC控制器,由PLC進行監(jiān)測與控制。
立體倉庫中工件的取放操作由安裝在工業(yè)機器人末端的吸盤工具或夾爪工具完成,為了能與立體倉庫上的各信號進行配合工作,工業(yè)機器人上安裝有I/0板卡,并與PLC的擴展1/o模塊之間有輸入、輸出信號連接,通過兩者之間的信號傳輸,可實現PLC推出、縮回倉庫和工業(yè)機器人取放料動作之間的配合等操作。
2立體倉庫工件排序方法
本文以上述六倉位立體倉庫為研究對象,研究在其基礎上進行6個工件按編碼排序的問題。
2.1排序過程中需要用到的數據
除了立體倉庫中的6個倉位,為了實現工件的排序,在立體倉庫之外還要加一個可放置工件的過渡位,作為排序時的臨時工件存放地,給這個過渡位編號為7。工業(yè)機器人對7個工位進行求教對點,并將它們存放在一個一維數組ArraysStraoe[7]中,從而實現對工件的取放動作。
倉庫中工件排序的目標編號存在一維數組ArrayTaroeS[6]中,有效編號在1~6之間,值為0表示對應的倉位無工件。如按從小到大順序進行排放,則ArrayTaroeS[6]:=(1,2,3,4,5,6):反之,如果按從大到小逆序排放,則ArrayTaroeS[6]:=(6,5,4,3,2,1):如果有其他排序規(guī)則,修改ArrayTaroeS[6]的值即可實現。
倉庫中各工件初始編號由工業(yè)相機檢測得到,并存入一維數組ArrayCurrenS[7]中,第7個數據是過渡位當前工件的編號,初始為0,表示空倉。隨著工件排序過程的進行,當前工件編號ArrayCurrenS[7]中的值會發(fā)生變動,直到與目標工件編號ArrayTaroeS[6]中的值完全一致。
2.2經典排序算法
筆者對計算機算法中的十大經典排序算法進行了詳細分析,并用經典的冒泡排序法和插入排序法進行了工件排序的程序編寫和調試。經典排序算法具有算法簡單、編程量少的優(yōu)點。實際測試下來發(fā)現存在頻繁使用過渡位導致取放動作過多、操作時間過長的問題,如冒泡排序法,每交換兩個相鄰的倉位編號,都需要使用到過渡位,最壞的情況下,需要使用15次:而每一次用到過渡位需要工業(yè)機器人和PLC配合執(zhí)行3次工件取放操作,操作過程過于費時,生產效率低下。
另外,經典排序算法主要用于順序排序,如從小到大或從大到小排序,而對于有特殊要求的非順序排序方式,實現困難。
2.3空位排序法
為了解決經典排序算法操作過程太費時費力的問題,本文使用了空位排序法,即排序過程中一直關注空位(如果當前倉庫沒有空位,則利用過渡位先制造一個空位),查找當前空位的目標工件編號所在的工位號,從中取出工件,從而創(chuàng)建出一個新的空位,再循環(huán)查空位和取空位目標工件多次,直到完成排序。圖3為空位排序法的一個示例。
3工業(yè)機器人編程實現空位排序法
空位排序法排序過程中一直關注空位,先查找當前空倉在ArrayTaroeS[6]數組中對應的目標工件編號,再查找空倉對應目標編號在當前工件編號ArrayCurrenS[7]中所在的倉位號,從而將當前空倉對應的目標工件取放過來。
在ABB工業(yè)機器人上,首先利用TCP/1P協(xié)議,通過stckeS通信的方法,實現工業(yè)機器人與工業(yè)相機之間的通信,從而獲得工件上的標簽編碼,并存儲在工業(yè)機器人自身的存儲器中(存在當前工件編號數組ArrayCurrenS[7]中),以備后續(xù)程序調用。
在ABB工業(yè)機器人上采用RAP1D程序編寫空位排序算法,流程圖如圖4所示。
如果當前6個倉位全滿沒有空位,則將第一個未排序倉位上的輪轂先取放至過渡位,制造出一個空位來。制造空倉的例行程序如下:
在當前倉庫中有空倉的情況下,需要再在ArrayTargut數組中查找當前空倉所對應的目標工件編號,查找空
倉對應的目標工件編號的例行程序如下:
4 PLC編程實現空位排序法
工業(yè)相機的視覺檢測控制器可通過S7通信方式將二維碼編碼信息傳送給西門子PLC控制器,PLC得到初始編碼數據之后,使用SCL語言進行編程,其思路基本與使用ABB工業(yè)機器人編程一致,亦可實現空位排序法的操作。
5結語
本文詳細介紹了一個具有6個倉位的立體倉庫的基本結構,以此立體倉庫為研究對象,結合視覺檢測和網絡通信功能,研究了對立體倉庫的工件按編碼進行排序的方法,并在工業(yè)機器人及PLC控制器上進行了編程實現和驗證,為立體倉庫工件排序問題提出了一種具體的解決方案。