基于PLC和工業(yè)機(jī)器人的立體倉(cāng)庫(kù)工件排序方法研究
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
隨著我國(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)越多。在實(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如示。
圖16個(gè)倉(cāng)位的立體倉(cāng)庫(kù)模型
立體倉(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)。
立體倉(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/0接口接入PLC控制器,由PLC進(jìn)行監(jiān)測(cè)與控制。
立體倉(cāng)庫(kù)中工件的取放操作由安裝在工業(yè)機(jī)器人末端的吸盤(pán)工具或夾爪工具完成,為了能與立體倉(cāng)庫(kù)上的各信號(hào)進(jìn)行配合工作,工業(yè)機(jī)器人上安裝有I/0板卡,并與PLC的擴(kuò)展1/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ù)組ArraysStraoe[7]中,從而實(shí)現(xiàn)對(duì)工件的取放動(dòng)作。
倉(cāng)庫(kù)中工件排序的目標(biāo)編號(hào)存在一維數(shù)組ArrayTaroeS[6]中,有效編號(hào)在1~6之間,值為0表示對(duì)應(yīng)的倉(cāng)位無(wú)工件。如按從小到大順序進(jìn)行排放,則ArrayTaroeS[6]:=(1,2,3,4,5,6):反之,如果按從大到小逆序排放,則ArrayTaroeS[6]:=(6,5,4,3,2,1):如果有其他排序規(guī)則,修改ArrayTaroeS[6]的值即可實(shí)現(xiàn)。
倉(cāng)庫(kù)中各工件初始編號(hào)由工業(yè)相機(jī)檢測(cè)得到,并存入一維數(shù)組ArrayCurrenS[7]中,第7個(gè)數(shù)據(jù)是過(guò)渡位當(dāng)前工件的編號(hào),初始為0,表示空倉(cāng)。隨著工件排序過(guò)程的進(jìn)行,當(dāng)前工件編號(hào)ArrayCurrenS[7]中的值會(huì)發(fā)生變動(dòng),直到與目標(biāo)工件編號(hào)ArrayTaroeS[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)在ArrayTaroeS[6]數(shù)組中對(duì)應(yīng)的目標(biāo)工件編號(hào),再查找空倉(cāng)對(duì)應(yīng)目標(biāo)編號(hào)在當(dāng)前工件編號(hào)ArrayCurrenS[7]中所在的倉(cāng)位號(hào),從而將當(dāng)前空倉(cāng)對(duì)應(yīng)的目標(biāo)工件取放過(guò)來(lái)。
在ABB工業(yè)機(jī)器人上,首先利用TCP/1P協(xié)議,通過(guò)stckeS通信的方法,實(shí)現(xiàn)工業(yè)機(jī)器人與工業(yè)相機(jī)之間的通信,從而獲得工件上的標(biāo)簽編碼,并存儲(chǔ)在工業(yè)機(jī)器人自身的存儲(chǔ)器中(存在當(dāng)前工件編號(hào)數(shù)組ArrayCurrenS[7]中),以備后續(xù)程序調(diào)用。
在ABB工業(yè)機(jī)器人上采用RAP1D程序編寫(xiě)空位排序算法,流程圖如圖4所示。
如果當(dāng)前6個(gè)倉(cāng)位全滿沒(méi)有空位,則將第一個(gè)未排序倉(cāng)位上的輪轂先取放至過(guò)渡位,制造出一個(gè)空位來(lái)。制造空倉(cāng)的例行程序如下:
在當(dāng)前倉(cāng)庫(kù)中有空倉(cāng)的情況下,需要再在ArrayTargut數(shù)組中查找當(dāng)前空倉(cāng)所對(duì)應(yīng)的目標(biāo)工件編號(hào),查找空
倉(cāng)對(duì)應(yīng)的目標(biāo)工件編號(hào)的例行程序如下:
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)題提出了一種具體的解決方案。