黃燕燕 楊鑫 曾彥儒
摘 要:以一個(gè)六庫(kù)位立體倉(cāng)庫(kù)為研究對(duì)象,研究了在實(shí)際工作過(guò)程中對(duì)立體倉(cāng)庫(kù)中的工件進(jìn)行預(yù)先排序優(yōu)化的方法。分析了使用經(jīng)典排序算法操作太過(guò)費(fèi)時(shí)費(fèi)力的問(wèn)題,詳細(xì)介紹了空位排序法,并用工業(yè)機(jī)器人和PLC控制器分別進(jìn)行了編程調(diào)試驗(yàn)證。
關(guān)鍵詞:立體倉(cāng)庫(kù);工件排序;工業(yè)機(jī)器人;PLC
0? ? 引言
隨著我國(guó)經(jīng)濟(jì)高速發(fā)展,現(xiàn)代物流行業(yè)和智能制造工廠也在快速發(fā)展,倉(cāng)儲(chǔ)作為物流和工廠流水線中的重要環(huán)節(jié),對(duì)整個(gè)系統(tǒng)運(yùn)作起著至關(guān)重要的作用。立體倉(cāng)庫(kù)能有效提高空間利用率和出入庫(kù)能力,是倉(cāng)儲(chǔ)發(fā)展的大勢(shì)所趨,在倉(cāng)儲(chǔ)流程中的使用越來(lái)越多[1-4]。在實(shí)際使用過(guò)程中,對(duì)立體倉(cāng)庫(kù)中的工件按照一定規(guī)則進(jìn)行預(yù)先排序優(yōu)化,有助于減少后續(xù)工作流程的復(fù)雜度,提高工作效率。
1? ? 立體倉(cāng)庫(kù)介紹
立體倉(cāng)庫(kù)的工件排序問(wèn)題具有一定的復(fù)雜性,本文以上下兩層共6個(gè)倉(cāng)位的立體倉(cāng)庫(kù)為研究對(duì)象,研究其工件排序問(wèn)題。此立體倉(cāng)庫(kù)的6個(gè)倉(cāng)位分別安裝有光電傳感器,用于檢測(cè)當(dāng)前是否存放有工件,并用雙色指示燈進(jìn)行指示,綠色表示有料,紅色表示無(wú)料,如圖1如示。
立體倉(cāng)庫(kù)中工件的取放操作由工業(yè)機(jī)器人協(xié)助完成,為了使工業(yè)機(jī)器人存取工件方便,使用電磁閥控制氣缸實(shí)現(xiàn)工件托盤(pán)的推出和縮回,氣缸推出、縮回的狀態(tài)信號(hào)由安裝在氣缸兩頭的磁性開(kāi)關(guān)檢測(cè)。這些信號(hào)都接入了PLC控制器,由PLC編程實(shí)現(xiàn)按要求推出或縮回料倉(cāng)[5]。
立體倉(cāng)庫(kù)中的6個(gè)倉(cāng)位分別編號(hào)為1~6號(hào)倉(cāng)位,6個(gè)倉(cāng)位最多能放6個(gè)工件,這6個(gè)工件分別編碼為0001~0006,用二維碼標(biāo)簽貼紙將編碼粘貼在工件正表面,可用工業(yè)相機(jī)獲取。初始狀態(tài)下6個(gè)倉(cāng)位可以放滿工件,也可以不放滿,由于人眼無(wú)法自動(dòng)識(shí)別二維碼,初始狀態(tài)下6個(gè)工件的順序是亂的,本文將研究通過(guò)排序算法將亂序的工件,按順序或逆序或工藝要求的其他排序方式進(jìn)行排序。
另外,由于表示工件編碼的二維碼標(biāo)簽貼紙粘貼在工件正表面,在用工業(yè)相機(jī)去檢測(cè)編碼前,必須確保工件是正面朝上擺放的。為了判斷工件是正面朝上還是反面朝上,工業(yè)機(jī)器人的末端工具采用吸盤(pán)工具,通過(guò)吸盤(pán)工具氣動(dòng)回路上的真空表裝置返回的信號(hào)判定工件是正面朝上還是反面朝上,如果是反面朝上,則在用工業(yè)相機(jī)進(jìn)行視覺(jué)檢測(cè)之前,還必須再加上一道對(duì)工件進(jìn)行翻轉(zhuǎn)的工序。
立體倉(cāng)庫(kù)的工件編碼通過(guò)工業(yè)相機(jī)和視覺(jué)檢測(cè)控制器進(jìn)行檢測(cè)識(shí)別,并通過(guò)視覺(jué)控制器上的通信接口傳輸給工業(yè)機(jī)器人或PLC,在工業(yè)機(jī)器人或PLC控制器上編寫(xiě)排序算法,則可實(shí)現(xiàn)對(duì)立體倉(cāng)庫(kù)中的工件按工藝要求進(jìn)行排序。
整個(gè)立體倉(cāng)庫(kù)的系統(tǒng)框圖如圖2所示,立體倉(cāng)庫(kù)上安裝有用于檢測(cè)和指示各料倉(cāng)有無(wú)工件的光電開(kāi)關(guān)和雙色指示燈,以及用于控制及檢測(cè)各料倉(cāng)氣缸推出、縮回的電磁閥和磁性開(kāi)關(guān),這些信號(hào)都通過(guò)I/O接口接入PLC控制器,由PLC進(jìn)行監(jiān)測(cè)與控制。
立體倉(cāng)庫(kù)中工件的取放操作由安裝在工業(yè)機(jī)器人末端的吸盤(pán)工具或夾爪工具完成,為了能與立體倉(cāng)庫(kù)上的各信號(hào)進(jìn)行配合工作,工業(yè)機(jī)器人上安裝有I/O板卡,并與PLC的擴(kuò)展I/O模塊之間有輸入、輸出信號(hào)連接,通過(guò)兩者之間的信號(hào)傳輸,可實(shí)現(xiàn)PLC推出、縮回倉(cāng)庫(kù)和工業(yè)機(jī)器人取放料動(dòng)作之間的配合等操作。
2? ? 立體倉(cāng)庫(kù)工件排序方法
本文以上述六倉(cāng)位立體倉(cāng)庫(kù)為研究對(duì)象,研究在其基礎(chǔ)上進(jìn)行6個(gè)工件按編碼排序的問(wèn)題。
2.1? ? 排序過(guò)程中需要用到的數(shù)據(jù)
除了立體倉(cāng)庫(kù)中的6個(gè)倉(cāng)位,為了實(shí)現(xiàn)工件的排序,在立體倉(cāng)庫(kù)之外還要加一個(gè)可放置工件的過(guò)渡位,作為排序時(shí)的臨時(shí)工件存放地,給這個(gè)過(guò)渡位編號(hào)為7。工業(yè)機(jī)器人對(duì)7個(gè)工位進(jìn)行求教對(duì)點(diǎn),并將它們存放在一個(gè)一維數(shù)組Array_Storage[7]中,從而實(shí)現(xiàn)對(duì)工件的取放動(dòng)作。
倉(cāng)庫(kù)中工件排序的目標(biāo)編號(hào)存在一維數(shù)組Array_
Target[6]中,有效編號(hào)在1~6之間,值為0表示對(duì)應(yīng)的倉(cāng)位無(wú)工件。如按從小到大順序進(jìn)行排放,則Array_Target[6]:={1,2,3,4,5,6};反之,如果按從大到小逆序排放,則Array_
Target[6]:={6,5,4,3,2,1};如果有其他排序規(guī)則,修改Array_Target[6]的值即可實(shí)現(xiàn)。
倉(cāng)庫(kù)中各工件初始編號(hào)由工業(yè)相機(jī)檢測(cè)得到,并存入一維數(shù)組Array_Current[7]中,第7個(gè)數(shù)據(jù)是過(guò)渡位當(dāng)前工件的編號(hào),初始為0,表示空倉(cāng)。隨著工件排序過(guò)程的進(jìn)行,當(dāng)前工件編號(hào)Array_Current[7]中的值會(huì)發(fā)生變動(dòng),直到與目標(biāo)工件編號(hào)Array_Target[6]中的值完全一致。
2.2? ? 經(jīng)典排序算法
筆者對(duì)計(jì)算機(jī)算法中的十大經(jīng)典排序算法進(jìn)行了詳細(xì)分析,并用經(jīng)典的冒泡排序法和插入排序法進(jìn)行了工件排序的程序編寫(xiě)和調(diào)試。經(jīng)典排序算法具有算法簡(jiǎn)單、編程量少的優(yōu)點(diǎn)。實(shí)際測(cè)試下來(lái)發(fā)現(xiàn)存在頻繁使用過(guò)渡位導(dǎo)致取放動(dòng)作過(guò)多、操作時(shí)間過(guò)長(zhǎng)的問(wèn)題,如冒泡排序法,每交換兩個(gè)相鄰的倉(cāng)位編號(hào),都需要使用到過(guò)渡位,最壞的情況下,需要使用15次;而每一次用到過(guò)渡位需要工業(yè)機(jī)器人和PLC配合執(zhí)行3次工件取放操作,操作過(guò)程過(guò)于費(fèi)時(shí),生產(chǎn)效率低下。
另外,經(jīng)典排序算法主要用于順序排序,如從小到大或從大到小排序,而對(duì)于有特殊要求的非順序排序方式,實(shí)現(xiàn)困難。
2.3? ? 空位排序法
為了解決經(jīng)典排序算法操作過(guò)程太費(fèi)時(shí)費(fèi)力的問(wèn)題,本文使用了空位排序法,即排序過(guò)程中一直關(guān)注空位(如果當(dāng)前倉(cāng)庫(kù)沒(méi)有空位,則利用過(guò)渡位先制造一個(gè)空位),查找當(dāng)前空位的目標(biāo)工件編號(hào)所在的工位號(hào),從中取出工件,從而創(chuàng)建出一個(gè)新的空位,再循環(huán)查空位和取空位目標(biāo)工件多次,直到完成排序。圖3為空位排序法的一個(gè)示例。
3? ? 工業(yè)機(jī)器人編程實(shí)現(xiàn)空位排序法
空位排序法排序過(guò)程中一直關(guān)注空位,先查找當(dāng)前空倉(cāng)在Array_Target[6]數(shù)組中對(duì)應(yīng)的目標(biāo)工件編號(hào),再查找空倉(cāng)對(duì)應(yīng)目標(biāo)編號(hào)在當(dāng)前工件編號(hào)Array_Current[7]中所在的倉(cāng)位號(hào),從而將當(dāng)前空倉(cāng)對(duì)應(yīng)的目標(biāo)工件取放過(guò)來(lái)。
在ABB工業(yè)機(jī)器人上,首先利用TCP/IP協(xié)議,通過(guò)Socket通信的方法,實(shí)現(xiàn)工業(yè)機(jī)器人與工業(yè)相機(jī)之間的通信,從而獲得工件上的標(biāo)簽編碼,并存儲(chǔ)在工業(yè)機(jī)器人自身的存儲(chǔ)器中(存在當(dāng)前工件編號(hào)數(shù)組Array_Current[7]中),以備后續(xù)程序調(diào)用。
在ABB工業(yè)機(jī)器人上采用RAPID程序編寫(xiě)空位排序算法,流程圖如圖4所示。
如果當(dāng)前6個(gè)倉(cāng)位全滿沒(méi)有空位,則將第一個(gè)未排序倉(cāng)位上的輪轂先取放至過(guò)渡位,制造出一個(gè)空位來(lái)。制造空倉(cāng)的例行程序如下:
PROC R_MakeVacancy()
FOR i FROM 1 TO 7 DO
IF Array_Current{i} <> Array_Target{i} THEN
NumStorage:= i;
GOTO Work;
ENDIF
ENDFOR
Work:
R_GetMaterial NumStorage;? ? !取料
R_PutMaterial 7;? ? ? ? ? ? ? ? ? ? ? !放料
Array_ Current {7} := Array_ Current { Num_Storage };
Array_ Current { NumStorage } := 0;
ENDPROC
在當(dāng)前倉(cāng)庫(kù)中有空倉(cāng)的情況下,需要再在Array_Target[6]數(shù)組中查找當(dāng)前空倉(cāng)所對(duì)應(yīng)的目標(biāo)工件編號(hào),查找空倉(cāng)對(duì)應(yīng)的目標(biāo)工件編號(hào)的例行程序如下:
FUNC num R_FindTarget(num NumVacancy)
FOR i FROM 1 TO 7 DO
IF Array_Current{i}=Array_Target{NumVacancy}THEN
RETURN i;
ENDIF
ENDFOR
RETURN 0;
ENDFUNC
4? ? PLC編程實(shí)現(xiàn)空位排序法
工業(yè)相機(jī)的視覺(jué)檢測(cè)控制器可通過(guò)S7通信方式將二維碼編碼信息傳送給西門(mén)子PLC控制器,PLC得到初始編碼數(shù)據(jù)之后,使用SCL語(yǔ)言進(jìn)行編程,其思路基本與使用ABB工業(yè)機(jī)器人編程一致,亦可實(shí)現(xiàn)空位排序法的操作。
5? ? 結(jié)語(yǔ)
本文詳細(xì)介紹了一個(gè)具有6個(gè)倉(cāng)位的立體倉(cāng)庫(kù)的基本結(jié)構(gòu),以此立體倉(cāng)庫(kù)為研究對(duì)象,結(jié)合視覺(jué)檢測(cè)和網(wǎng)絡(luò)通信功能,研究了對(duì)立體倉(cāng)庫(kù)的工件按編碼進(jìn)行排序的方法,并在工業(yè)機(jī)器人及PLC控制器上進(jìn)行了編程實(shí)現(xiàn)和驗(yàn)證,為立體倉(cāng)庫(kù)工件排序問(wèn)題提出了一種具體的解決方案。
[參考文獻(xiàn)]
[1] 楊利,陳柳松,謝永超.基于PLC和工業(yè)機(jī)器人的智能倉(cāng)庫(kù)系統(tǒng)設(shè)計(jì)[J].自動(dòng)化技術(shù)與應(yīng)用,2021,40(7):72-75.
[2] 閆磊,王萌,李任鵬.基于S7-1200 PLC的小型立體倉(cāng)庫(kù)控制系統(tǒng)設(shè)計(jì)[J].制造業(yè)自動(dòng)化,2020,42(11):11-13.
[3] 周超,劉傳琦.基于PLC的智能貨架倉(cāng)儲(chǔ)的設(shè)計(jì)[J].信息技術(shù)與信息化,2019(7):69-71.
[4] 黃海燕.基于S7-1200 PLC立體倉(cāng)庫(kù)碼垛機(jī)控制系統(tǒng)設(shè)計(jì)[J].機(jī)電工程技術(shù),2019,48(5):37-41.
[5] 許怡赦,羅建輝,李銘貴.智能制造單元系統(tǒng)集成應(yīng)用實(shí)訓(xùn)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].實(shí)驗(yàn)技術(shù)與管理,2020,37(8):227-232.
收稿日期:2021-08-13
作者簡(jiǎn)介:黃燕燕(1987—),女,江西贛州人,工程師,講師,研究方向:機(jī)器人、集成系統(tǒng)。