引自:《生產系統(tǒng)建模與仿真》(作者:朱海平)
?
「?1. 生產流程描述?」
某全自動化加工生產線系統(tǒng)生產一種工件,該工件的生產流程如圖1所示。首先,根據定時配送指令,通過AGV系統(tǒng)將存放在立體倉庫中的工件毛坯件運輸到生產線入口緩沖區(qū),并由線頭機器人上載到生產線。毛坯件隨即在生產線上流轉,經過三道工序加工后變?yōu)槌善芳F渲校ば?在設備M001、M002和M003中任一臺上完成,加工時長45s,工序2在設備M004、M005和M006中任一臺上完成,加工時長55s,工序3在設備M007、M008、M009和M010中任一臺上完成,加工時長1min15s。如果3道工序全部完成,該成品工件由線尾機器人下載到生產線出口緩沖區(qū),并由AGV系統(tǒng)運回立體倉庫,如果工件未加工完成,則再次上載到生產線上并進行新一輪流轉,直到所有工序加工完畢。
?
圖1?工件生產流程
?
「?2.?仿真建模?」
基于FactorySimulation建立仿真模型,如圖2所示。該生產線采用U型布局,總長54m,運轉速度0.5m/s。在生產線上布置了10個工位點,每個工位對應一個頂升裝置(B001-B010)和一臺加工設備(M001-M010),如果頂升裝置中有工件,該工位就不能再接納工件。一旦某設備空閑,并且頂升裝置中有工件在等待,則呼叫對應的RGV,如果RGV空閑,則移動機器人將頂升裝置中的工件移至設備上加工。系統(tǒng)配備了3臺RGV,其中RGV1為M001、M002、M009、M010這4臺相鄰設備服務,RGV2為M003、M004、M007、M008這4臺相鄰設備服務,RGV3為M005和M006這2臺相鄰設備服務,3臺RGV軌道長度分別為7m、5.8m和3.2m,機器人移動速度為1m/s,上下料的時間均為2s。
?
圖2?仿真模型
圖2中,模型區(qū)左邊是立體倉庫和AGV系統(tǒng),AGV系統(tǒng)用于毛坯件和成品件運輸。其中,毛坯件從P01站點(立體倉庫的出入庫位置)運送到P02站點(生產線入口緩存處),成品件從P03站點(成品待配送緩存處)運送到P01站點,AGV路徑一周總長40.45m,AGV承載量是10,即每臺AGV一次運輸10個毛坯或成品件,AGV運輸速度0.5m/s,AGV數量為2臺,AGV上下料時間均為15s。
仿真建模時,需要定義兩個重要的腳本方法:
?
(1)仿真運行中,工件在生產線上流轉,到達每一個工位點時要進行判斷,決定是否將工件移至該工位頂升裝置內,該判斷邏輯通過stationSensor腳本方法來實現,如下:
?
boolean flag = false;if(MUType.equals("毛坯")) {//毛坯件if(station.no.equals("1") && %{B001}%.allowEntrance(@)) {? @.move("B001");flag = true;} else if(station.no.equals("2") && %{B002}%.allowEntrance(@)) {? @.move("B002");flag = true;} else if(station.no.equals("3") && %{B003}%.allowEntrance(@)) {? @.move("B003");flag = true;}//工件已送至到B001或B002或B003,則開始工序1if(flag) {@.MUType = "工序1";@.MUColor = Color.yellow;return;}} else if(MUType.equals("工序1")) {//工序1if(station.no.equals("4") && %{B004}%.allowEntrance(@)) {? @.move("B004");flag = true;} else if(station.no.equals("5") && %{B005}%.allowEntrance(@)) {? @.move("B005");flag = true;} else if(station.no.equals("6") && %{B006}%.allowEntrance(@)) {? @.move("B006");flag = true;}//工件已送至到B004或B005或B006,則開始工序2if(flag) {@.MUType = "工序2";@.MUColor = Color.blue;return;}} else if(MUType.equals("工序2")) {//工序2if(station.no.equals("7") && %{B007}%.allowEntrance(@)) {? @.move("B007");flag = true;} else if(station.no.equals("8") && %{B008}%.allowEntrance(@)) {? @.move("B008");flag = true;} else if(station.no.equals("9") && %{B009}%.allowEntrance(@)) {? @.move("B009");flag = true;} else if(station.no.equals("10") && %{B010}%.allowEntrance(@)) {? @.move("B010");flag = true;}//工件已送至到B007或B008或B009或B010,則加工成成品if(flag) {@.MUType = "成品";@.MUColor = Color.green;return;}}//已到達線尾,如果是成品,則運送到生產線出口,否則送到生產線入口,繼續(xù)加工if(station.getNo().equals("999")) {if(@.MUType.equals("成品"))%{線尾機器人}%.call("生產線", "生產線出口", @);else%{線尾機器人}%.call("生產線", "生產線入口", @);}
(2)為了實現定時將毛坯件從立體倉庫出庫并通過AGV配送到生產線入口,定義觸發(fā)器及定時觸發(fā)方法。觸發(fā)器如圖3所示。從0時刻開始,每隔4min觸發(fā)一次,共觸發(fā)100次,每次自動執(zhí)行pickAndDelivery方法。
?
圖4?用于毛坯投入的定時觸發(fā)器
pickAndDelivery方法內容如下:
//從立體倉庫分揀出10個毛坯件ListmuList = %{立體倉庫}%.pick("毛坯|10", 0);//呼叫AGV,將毛坯件從立庫運輸到生產線入口,一次運輸10個,上載時間和卸載時間均為15秒%{AGV系統(tǒng)}%.call("P01", "P02", "立體倉庫", "生產線入口", muList, null, 15*1000, 15*1000);
「?
3.?仿真分析?
」
首先分析生產線的產能和瓶頸。假定每4min從立體倉庫向生產線配送一個批次毛坯件(10個),共配送100次,合計生產1000個工件,通過仿真來觀察生產線的單位時間產量變化。
圖5顯示了產量隨時間變化的曲線,可以看出,總產量隨時間線性遞增,每小時產量則逐漸趨于穩(wěn)定,穩(wěn)定在155~160個/h。設備利用率如圖6所示,可以看出線頭和線尾機器人的工作時長占比均為81.42%,比較高,而3道加工工序各有一臺加工設備(M003、M006和M010)利用率不高,說明加工設備的能力富裕,機器人則可能是瓶頸。
?
圖5?產量變化圖
?
?
圖6?設備利用率
根據定性分析,一方面,縮短配送周期,同時提升線頭和線尾機器人的處理速度,應該有助于提升產能;另一方面,如果配送周期過短,由于生產線處理速度有限,可能造成毛坯件在生產線入口處積壓,或者在生產線上反復流轉,導致工件通過時長變長、在制品增多,因此,可能存在最佳的配送周期,為了驗證這一點,設計如下仿真試驗:
?
(1)毛坯配送的時間間隔共7個水平值:1:30、2:00、2:30、3:00、3:30、4:00、4:30。
?
(2)線頭/線尾機器人處理時長共2個水平值:15s和20s。
?
(3)試驗的輸出參數:1000個工件加工的完成時間、每個工件的平均通過時間。
?
采用全因子試驗,共試驗14次,試驗結果如表1所示。可以看出,配送間隔時間加長,加工完成時間基本呈增長趨勢,但平均通過時間呈下降趨勢。試驗5和試驗12的綜合效果是不錯的,因此,設定配送時間為3:30比較合適,機器人處理時長從15s變化到20s,對兩個輸出參數的影響不大。
?
表1?仿真結果
試驗 次數 |
毛坯配送的 時間間隔 |
線頭和線尾機器人處理時長/s |
1000個工件加工的完成時間 |
每個工件的平均通過時間 |
1 |
1:30 |
15 |
6:3:29 |
1:52:53 |
2 |
2:00 |
15 |
6:8:56 |
1:32:2 |
3 |
2:30 |
15 |
6:10:33 |
1:7:46 |
4 |
3:00 |
15 |
6:8:19 |
42:25 |
5 |
3:30 |
15 |
6:17:55 |
23:37 |
6 |
4:00 |
15 |
6:50:43 |
14:16 |
7 |
4:30 |
15 |
7:38:26 |
12:48 |
8 |
1:30 |
20 |
6:28:8 |
2:4:56 |
9 |
2:00 |
20 |
6:27:25 |
1:41:10 |
10 |
2:30 |
20 |
6:31:25 |
1:17:19 |
11 |
3:00 |
20 |
6:31:7 |
51:10 |
12 |
3:30 |
20 |
6:24:8 |
25:53 |
13 |
4:00 |
20 |
6:51:1 |
14:54 |
14 |
4:30 |
20 |
7:40:24 |
14:46 |
?
?
「?4.?三維仿真動畫?」
?
FacotrySimulation內置了三維動畫引擎,可以瀏覽仿真過程的三維車間場景,如圖7所示。
?
?
圖7?仿真過程的三維動畫
評論
查看更多