劉政君 宋冬雪 牛冠凱
(中國航空制造技術(shù)研究院,北京 100024)
刀具調(diào)度是柔性制造系統(tǒng)中配合工件加工的重要環(huán)節(jié)[1],高效的刀具調(diào)度方法對于提高工件加工效率,減少工件加工成本有著重要意義。柔性制造系統(tǒng)中工件的加工需要各種資源齊備方可開始。在傳統(tǒng)加工模式下,刀具資源的人工裝卸、對刀等操作占據(jù)了工件準(zhǔn)備開工時(shí)間中的相當(dāng)比例,而柔性制造系統(tǒng)擁有中央刀庫儲備的刀具資源,可通過中央刀庫至設(shè)備刀庫的自動運(yùn)刀減少工人裝卸刀具的時(shí)間,從而提高工件連續(xù)加工的效率。柔性制造系統(tǒng)刀具調(diào)度方案能夠合理規(guī)劃刀具需求計(jì)算的周期,并能根據(jù)工件加工的刀具需求,高效安排刀具自動配送。刀具是機(jī)床的核心零部件,充分利用已有的刀具資源,可減少工件加工的成本。
眾多學(xué)者對柔性制造系統(tǒng)中刀具調(diào)度問題進(jìn)行深入研究,優(yōu)化目標(biāo)一般圍繞3 個(gè)方向,即提高加工效率、減少成本和故障處理。提高加工效率指通過刀具調(diào)度,減少刀具準(zhǔn)備時(shí)間,提高工件加工效率;減少成本是指通過刀具調(diào)度盡可能使已有刀具資源充分利用,減少加工所需的刀具資源成本;故障處理指在考慮設(shè)備故障的前提下,保證刀具調(diào)度仍具有較好的魯棒性。在提高加工效率方面,朱睿[2]建立了“刀具流-車間作業(yè)”綜合調(diào)度數(shù)學(xué)模型和相應(yīng)的析取圖模型,以期在保證完成時(shí)間最短的前提下,盡可能縮短刀具等待時(shí)間,提高加工效率,邊培瑩[3]、趙丹[4]、朱海容[5]等針對刀具調(diào)度的效率問題進(jìn)行了研究;在減少成本方面,王解法[6]等提出將刀具模塊化,分為刀柄模塊、中間模塊、刃具模塊三部分,期望通過模塊化的管理調(diào)度提高各個(gè)模塊資源的使用效率,減少加工刀具所需資源成本,孫棟[7]等針對刀具調(diào)度的成本問題進(jìn)行了研究;在故障處理方面,舒海生[8]建立工件流和刀具流相結(jié)合的OOPPetri 網(wǎng)模型,以期解決設(shè)備故障下的刀具調(diào)度問題。
假設(shè)在柔性制造系統(tǒng)線內(nèi)有N個(gè)設(shè)備,在一段時(shí)間T內(nèi)需要加工MP個(gè)工件任務(wù),按照加工計(jì)劃各個(gè)工件任務(wù)有各自規(guī)定的開工時(shí)間Tmp(mp 取值為1,2,3...MP),共需要M種類型的刀具,每種類型刀具的需求數(shù)量是Mi,刀具調(diào)度的基本目標(biāo)就是在各個(gè)工件任務(wù)開工時(shí)間Tmp之前,將其所需刀具送至對應(yīng)的設(shè)備刀庫。
由于刀具是損耗型資源,刀具調(diào)度不僅要考慮設(shè)備因工件加工需求而產(chǎn)生的運(yùn)刀需求,還需要計(jì)算加工過程中因刀具損耗而產(chǎn)生的卸刀需求。另外,上述描述還需加上N個(gè)設(shè)備在T時(shí)間內(nèi)因加工而產(chǎn)生的廢刀,需要對其進(jìn)行移除,以保證設(shè)備刀庫能夠連續(xù)周轉(zhuǎn)。與運(yùn)刀需求不同,刀具移除的時(shí)間不受工件開工時(shí)間的約束,而受制于各個(gè)設(shè)備刀庫的容量,好的刀具調(diào)度方案需要及時(shí)將廢刀移除,以便所需刀具能夠及時(shí)插入設(shè)備。
總結(jié)起來,刀具調(diào)度的任務(wù)包括以下兩點(diǎn):一是計(jì)算工件加工所需的刀具,并按時(shí)將所需刀具正確地送至對應(yīng)設(shè)備;二是計(jì)算工件加工產(chǎn)生的廢刀,并將加工產(chǎn)生的廢刀從設(shè)備中移除,不能影響所需刀具插入設(shè)備。
本文擬建立的刀具調(diào)度框架主要分為刀具需求計(jì)算、運(yùn)刀調(diào)度計(jì)算和機(jī)械手指令處理3個(gè)部分,如圖1 所示。
圖1 刀具調(diào)度框架
刀具需求的計(jì)算包括運(yùn)刀和卸刀兩部分。運(yùn)刀刀具需求計(jì)算部分通過獲取刀具計(jì)算周期內(nèi)生產(chǎn)線工件加工的任務(wù)信息,得到任務(wù)加工所需刀具的類型、時(shí)間等信息,再依據(jù)設(shè)備中可用刀具的剩余壽命,以及中央刀庫中可用刀具的可用壽命,計(jì)算出具體是由哪些刀具承擔(dān)對應(yīng)加工任務(wù),以及計(jì)算出這些刀具在設(shè)備/中央刀庫中的位置。總結(jié)來說,運(yùn)刀刀具需求計(jì)算需要依據(jù)“加工任務(wù)所需刀具類型與時(shí)長”和“設(shè)備/中央刀庫已有刀具”兩個(gè)信息,計(jì)算得出設(shè)備還需運(yùn)送哪些刀具,算法的輸出為包含目的地(需求刀具的設(shè)備)、起始地(所需刀具的位置)的運(yùn)刀列表。卸刀需求則需計(jì)算出各個(gè)設(shè)備中刀具壽命不足以支持加工的刀具,生成包含起始地(廢刀所在設(shè)備)和目的地(中央刀庫)的卸刀列表。
運(yùn)刀調(diào)度計(jì)算主要是負(fù)責(zé)刀具需求列表,通過對刀具需求情況進(jìn)行分析,并結(jié)合中央刀庫現(xiàn)有刀具情況的分布、機(jī)械手庫位的分配等情況,充分衡量運(yùn)刀需求緊急程度、運(yùn)刀代價(jià)、刀具整套完整性等優(yōu)化目標(biāo),計(jì)算生成機(jī)械手依次取放刀具的指令隊(duì)列。
機(jī)械手指令處理:計(jì)算獲得運(yùn)/卸刀的機(jī)械手指令列表之后,通過與OPCUA 通信協(xié)議與機(jī)械手PLC 通信連接,控制機(jī)械手PLC 逐次執(zhí)行機(jī)械手指令,達(dá)到刀具調(diào)度的目的。
柔性制造系統(tǒng)的刀具需求按照一定周期進(jìn)行計(jì)算,一個(gè)周期內(nèi)工件加工任務(wù)需要使用若干類型、若干時(shí)長的刀具。刀具需求的計(jì)算就是計(jì)算出具體由哪些刀具承擔(dān)對應(yīng)的工序任務(wù),需計(jì)算出這些刀具的位置和需求時(shí)間,以生成一個(gè)包含目的地(需求刀具的設(shè)備)、起始地(所需刀具的位置)的運(yùn)刀列表。且刀具使用壽命到達(dá)預(yù)警或者已使用完畢之后,需要從設(shè)備卸出,在計(jì)算運(yùn)刀需求的同時(shí),還應(yīng)同時(shí)計(jì)算卸刀的需求,以保證設(shè)備有充足的刀位持續(xù)運(yùn)轉(zhuǎn)。
本文擬采用基于優(yōu)先級規(guī)則的啟發(fā)式算法,按照需求時(shí)間的順序?yàn)榈毒咝枨笈判?,需求時(shí)間越早則優(yōu)先級越高。按照優(yōu)先級的順序?qū)Φ毒咝枨筮M(jìn)行逐次處理,根據(jù)刀具需求的類型,先計(jì)算機(jī)床刀庫是否滿足需求,如不滿足,則計(jì)算中央刀庫是否滿足,如仍不滿足,則生成人工裝刀需求指令。如果找到一把能滿足該需求的刀具,則將該刀具的可用壽命減去當(dāng)前需求時(shí)間,并將該刀具計(jì)入運(yùn)刀需求列表中,然后進(jìn)行下一個(gè)刀具需求的處理,依次循環(huán),直至所有的刀具需求被處理完畢。
1.運(yùn)刀需求計(jì)算算法
運(yùn)刀需求計(jì)算算法通過對比設(shè)備加工任務(wù)刀具需求(原始刀具需求)和設(shè)備中已有的刀具,得出設(shè)備需補(bǔ)充的刀具。
步驟(1):獲取計(jì)算周期內(nèi)任務(wù)數(shù)據(jù);
步驟(2):提出任務(wù)數(shù)據(jù)中關(guān)于刀具需求的數(shù)據(jù),稱之為原始刀具需求;
步驟(3):將原始刀具需求與設(shè)備已有的刀具進(jìn)行比對,得到設(shè)備需要補(bǔ)充的刀具,稱之為設(shè)備運(yùn)刀需求;
步驟(4):對設(shè)備運(yùn)刀需求進(jìn)行逐條處理(共N條),為其安排可用刀具,并將中央刀庫中的刀具壽命視為可安排的資源;
步驟(5):計(jì)數(shù)器i初始為0;
步驟(6):找到第i+1 個(gè)的刀具需求;
步驟(7):通過需求時(shí)長篩選,找到庫中同類型的所有可用刀具,獲取刀具可用排產(chǎn)時(shí)間,即:刀具可用時(shí)間-已被排產(chǎn)時(shí)間;
步驟(8):刀具中是否有已被排產(chǎn)的刀具,如有則優(yōu)先選擇已排產(chǎn)刀具;如無,則從庫中可用刀具中隨機(jī)選擇;
步驟(9):選定刀具之后,將刀具的可排產(chǎn)時(shí)間減去第i+1 個(gè)的刀具需求時(shí)間,作為新的刀具可排產(chǎn)時(shí)間;
步驟(10):判斷i是否小于N;
步驟(11):如i小于N,則說明刀具需求列表未處理完畢,將i增加1,繼續(xù)執(zhí)行步驟(6)至步驟(10);
步驟(12):如i大于N,則說明刀具需求列表處理完畢,記錄所有已被排產(chǎn)的刀具。
2.卸刀需求計(jì)算算法
卸刀需求計(jì)算算法遍歷設(shè)備中所有刀具,若刀具當(dāng)前壽命小于該類型刀具在工序中所需的最短時(shí)間,則認(rèn)為刀具已不滿足加工使用的要求,須將其加入卸刀列表。
步驟(1):獲取設(shè)備當(dāng)前刀具使用情況;
步驟(2):獲取刀具總數(shù)N;
步驟(3):初始化i=0;
步驟(4):逐次判斷第i+1 把刀具是否小于該類型刀具在工序中所需的最短時(shí)間;
圖2 設(shè)備運(yùn)刀需求計(jì)算流程
步驟(5):若是,則將該刀具加入卸刀列表;
步驟(6):若否,則跳過該刀,繼續(xù)下一把刀的判斷直至所有刀具判斷完畢。
本文的運(yùn)刀調(diào)度主要指設(shè)備和中央刀庫之間的刀具運(yùn)輸調(diào)度,柔性制造系統(tǒng)由運(yùn)刀機(jī)械手擔(dān)任刀具自動運(yùn)輸?shù)娜蝿?wù),因此刀具運(yùn)輸調(diào)度問題主要指運(yùn)刀機(jī)械手動作指令的計(jì)算。計(jì)算得出刀具需求之后,需要根據(jù)刀具需求安排運(yùn)刀機(jī)械手運(yùn)刀的先后順序,生成機(jī)械手指令隊(duì)列。
本文綜合考慮了刀具需求緊急程度、運(yùn)刀經(jīng)濟(jì)性、保證工件所需刀具的整套完整性等約束。刀具緊急程度是指刀具需求時(shí)間的緊迫程度,需要盡可能優(yōu)先處理需求緊迫程度較高的刀具;運(yùn)刀經(jīng)濟(jì)性,即指運(yùn)輸代價(jià),每個(gè)刀具從中央刀庫運(yùn)至所需設(shè)備的代價(jià)不同,因此需要盡可能減少刀具運(yùn)輸?shù)目偞鷥r(jià);保證工件所需刀具整套完整性是指每個(gè)工件加工需要多個(gè)刀具,這些刀具的需求時(shí)間不同,分布在長工件加工時(shí)間的區(qū)間內(nèi),應(yīng)盡可能地將一個(gè)工件所需刀具在同一批次送達(dá),以便該工件及早達(dá)到可開工狀態(tài),而非運(yùn)完A 工件前半部分需求較早的刀具后,轉(zhuǎn)而去運(yùn)輸B 工件需求較早的刀具,再回來繼續(xù)運(yùn)輸A 工件剩余所需刀具。
假設(shè)只考慮運(yùn)輸代價(jià)的情況,且每個(gè)代價(jià)層次的需求數(shù)量都足夠多,即每個(gè)設(shè)備的需求刀具數(shù)量都足夠多,此時(shí)將高代價(jià)的刀具集中起來批量運(yùn)輸,以減少高代價(jià)刀具的運(yùn)輸次數(shù),將會是一種較優(yōu)的方案;但如果每個(gè)代價(jià)層次的需求數(shù)量都不多,存在某幾種代價(jià)層次的需求數(shù)量少于機(jī)械手的容量,那么順路運(yùn)輸是一種優(yōu)解,即:將機(jī)械手每次運(yùn)輸?shù)毒叩倪\(yùn)輸代價(jià)分為若干不同層次,運(yùn)刀時(shí)先將代價(jià)較小的部分刀具運(yùn)至目的地,再依次順路將代價(jià)較高的部分刀具運(yùn)至目的地。綜合來說,只考慮運(yùn)輸代價(jià)下的較優(yōu)方案,首要原則應(yīng)是高代價(jià)層次的刀具集中運(yùn)輸。在首要原則的基礎(chǔ)上,若集中后機(jī)械手不能滿載,則按照運(yùn)輸代價(jià)從高到低的排序補(bǔ)充刀具至滿載,采用順路運(yùn)輸?shù)姆桨赴创鷥r(jià)從低到高的順序依次運(yùn)輸?shù)毒摺?/p>
假設(shè)只考慮緊急程度的情況,刀具需求緊急程度以排產(chǎn)時(shí)工序的計(jì)劃開工時(shí)間作為評判標(biāo)準(zhǔn)。計(jì)劃開始越早的工序,其所需的刀具緊急程度就越高。按照需求時(shí)間順序?qū)⑺械毒邚脑缰镣砼判?,機(jī)械手則按照排序依次運(yùn)輸即可。
假設(shè)考慮工件所需刀具整套完整性的情況,若每個(gè)刀具需求不使用精確至每個(gè)工步的需求時(shí)間,而是一個(gè)工件所有的刀具需求全部用工件開工這一時(shí)刻作為刀具的需求時(shí)間,在以需求時(shí)間安排優(yōu)先級的前提下,則能夠保證一個(gè)工件的所有刀具需求的運(yùn)刀優(yōu)先級相同,具有相同優(yōu)先級的刀具可在同批或者相近批次運(yùn)達(dá)設(shè)備。
圖3 卸刀需求計(jì)算流程圖
綜合考慮運(yùn)輸代價(jià)、緊急程度和刀具整套完整性3 種因素,若優(yōu)先考慮運(yùn)輸代價(jià),勢必造成優(yōu)先滿足同一設(shè)備刀具需求而其他設(shè)備的刀具需求不能按時(shí)滿足的情況,致使其他設(shè)備延誤開工。優(yōu)先考慮緊急程度,取決于刀具需求時(shí)間,由于工件刀具整套完整性的情況可由統(tǒng)一刀具需求時(shí)間的辦法解決,相當(dāng)于也取決于刀具需求時(shí)間,因此優(yōu)先考慮緊急程度能夠兼顧工件刀具整套完整性,同時(shí)即使同組運(yùn)輸?shù)牡毒叽鷥r(jià)不同,也可采用順路運(yùn)輸?shù)姆绞奖M量減少運(yùn)輸代價(jià)。
因此,優(yōu)先考慮緊急程度,在緊急程度的基礎(chǔ)上進(jìn)行分批與合批,將相近緊急程度的20個(gè)刀具(機(jī)械手容量為20)合批,再根據(jù)20 個(gè)刀具需求的分屬設(shè)備情況,將其需求按照設(shè)備不同分為3 個(gè)小組,優(yōu)先運(yùn)輸較近設(shè)備的小組,再依次運(yùn)輸較遠(yuǎn)的設(shè)備小組,如此按照由近及遠(yuǎn)的順序送完3 個(gè)機(jī)床之后,計(jì)算3 個(gè)機(jī)床的卸刀需求,同樣以20 個(gè)為一批次,由遠(yuǎn)及近依次卸刀回至中央刀庫。
確定了優(yōu)先考慮緊急程度,然后考慮運(yùn)刀代價(jià)的策略,以此為根據(jù),提出機(jī)械手指令計(jì)算算法實(shí)現(xiàn)運(yùn)刀機(jī)械手的調(diào)度,算法邏輯流程如圖4 所示。
圖4 運(yùn)刀機(jī)械手動作指令計(jì)算
步驟(1):按照刀具需求中需求時(shí)間,為需求列表按照時(shí)間先后排序;
步驟(2):計(jì)算各設(shè)備的空余刀位,如果大于20,則不做累計(jì),如果小于20,則記住剩余庫位數(shù)量;
步驟(3):按照機(jī)械手可用庫位數(shù)量為刀具需求列表分組,例如,機(jī)械手可用庫位是20,則每組的容量上限為20;
步驟(4):每組內(nèi)按照需求設(shè)備,再分為數(shù)量不等的3 個(gè)小組,運(yùn)輸距離較遠(yuǎn)的設(shè)備組排在前面;
步驟(5):計(jì)算每個(gè)小組內(nèi)的刀具數(shù)量是否超過所屬設(shè)備空余刀位的數(shù)量,如果超過,則將超過的部分剔除,重新補(bǔ)至刀具需求總表中。節(jié)省出來的刀位名額根據(jù)其他小組的需求增補(bǔ)至其他小組,如第1 設(shè)備小組原在小組中占據(jù)10個(gè)運(yùn)輸?shù)段?,?號設(shè)備只有5個(gè)空刀位,節(jié)省出來5 把運(yùn)輸?shù)段?,? 設(shè)備小組的設(shè)備空余刀位只允許增補(bǔ)2 把,則從5 個(gè)名額轉(zhuǎn)讓2個(gè)給第2 設(shè)備小組,第3 設(shè)備小組同樣照此辦理;
步驟(6):確定了每次運(yùn)刀的位置分配之后,按照由遠(yuǎn)及近的原則依次運(yùn)刀;
步驟(7):按照使用時(shí)間小于最小工步時(shí)長的原則計(jì)算各設(shè)備需卸刀列表;
步驟(8):按照最后使用時(shí)長對需卸載刀具列表進(jìn)行排序,時(shí)間早的在隊(duì)頭;
步驟(9):獲取中央刀庫空庫位數(shù)量;
步驟(10):判斷中央刀庫庫位是否大于等于機(jī)械手庫位20;
步驟(11):若是,以機(jī)械手容量20 為限截取卸載刀具列表分組的前20 個(gè)元素作為卸刀列表;
步驟(12):若否,以中央刀庫空庫數(shù)為限截取卸載刀具列表分組作為卸刀列表;
步驟(13):按照由遠(yuǎn)及近的原則,從最遠(yuǎn)的機(jī)床開始卸刀,順路運(yùn)至較近的機(jī)床依次卸刀,回至中央刀庫;
步驟(14):依次循環(huán)直至需求刀具列表所有需求被處理完畢。
采用通用工業(yè)通信網(wǎng)絡(luò)OPC-UA 與PLC 進(jìn)行通信,PLC 選用S7-1500,后端使用Java 語言,采用eclipse 工作組開發(fā)的開源庫Milo 庫實(shí)現(xiàn)與PLC 的OPC-UA 通信,如圖5 所示。
圖5 OPC-UA 連接
以本文提出的刀具調(diào)度方法作為指導(dǎo)思想,設(shè)計(jì)了航空柔性制造系統(tǒng)刀具調(diào)度軟件,在某航空企業(yè)的柔性生產(chǎn)線進(jìn)行了應(yīng)用驗(yàn)證。
以需求時(shí)間優(yōu)先的啟發(fā)式規(guī)則算法對產(chǎn)線內(nèi)的加工任務(wù)進(jìn)行分析,計(jì)算獲取各個(gè)設(shè)備的刀具需求,并通過結(jié)合運(yùn)刀代價(jià)、刀具需求緊急程度、刀具需求整套完整性三種優(yōu)化目標(biāo)的啟發(fā)式規(guī)則算法對刀具需求進(jìn)行解析,求解出運(yùn)刀機(jī)械手的指令集。計(jì)算所得刀具需求,見表1。由于該產(chǎn)線需要優(yōu)先保證工件的按時(shí)交付,因此充分適用以需求時(shí)間為優(yōu)先級評判標(biāo)準(zhǔn)的啟發(fā)式規(guī)則算法。經(jīng)實(shí)際加工驗(yàn)證,該算法能夠滿足實(shí)際生產(chǎn)對刀具計(jì)算的需求。計(jì)算得出的運(yùn)輸?shù)毒咧噶?,見?。
表2 運(yùn)刀指令
針對柔性制造系統(tǒng)的刀具調(diào)度問題,本文提出了基于啟發(fā)式規(guī)則算法的柔性制造系統(tǒng)刀具調(diào)度方案。本文構(gòu)建了柔性制造系統(tǒng)刀具調(diào)度框架,包括刀具需求計(jì)算、運(yùn)刀調(diào)度計(jì)算和機(jī)械手指令處理3 個(gè)部分,將任務(wù)級別的刀具需求逐步轉(zhuǎn)換至單步可執(zhí)行的機(jī)械手取放刀指令,為柔性制造系統(tǒng)刀具調(diào)度問題提供了一種可供參考借鑒的解決方法。在刀具需求計(jì)算部分和刀具調(diào)度部分提出了具體的啟發(fā)式算法;在運(yùn)刀調(diào)度計(jì)算部分分析了運(yùn)刀代價(jià)、刀具需求緊急程度、刀具需求整套完整性等優(yōu)化目標(biāo)對刀具方案整體的影響,并提出了一種綜合考慮3 種優(yōu)化目標(biāo)的啟發(fā)式規(guī)則,為解決刀具調(diào)度問題提供了新思路。根據(jù)本文提出的刀具調(diào)度方案,設(shè)計(jì)了相應(yīng)的柔性制造系統(tǒng)刀具調(diào)度軟件,并在相關(guān)柔性生產(chǎn)線上得到應(yīng)用驗(yàn)證。