黃嚇珠



[摘? ? ? ? ? ?要]? 隨著《中國制造2025》戰略規劃的推進和制造業的轉型升級,工業機器人作為智能制造的重要終端設備,得到廣泛應用。為響應國家政策號召,配合產業發展,服務企業技術升級和轉型,越來越多的職業院校開設了工業機器人技術應用及相關專業。中職組“機器人技術應用”賽項從2017年開始首次舉辦,已歷經3年,排序是“機器人技術應用”賽項的高頻考點。主要是提出一種編程思路,可以適用各種不同類型的排序,讓選手能在很短的時間內編制和調試出程序。
[關? ? 鍵? ?詞]? 中職;機器人技術應用;編程
[中圖分類號]? G712? ? ? ? ? ? ? ? ?[文獻標志碼]? A? ? ? ? ? ? ? [文章編號]? 2096-0603(2020)47-0132-02
一、賽題分析
2019年國賽排序真題:對回收區排序,CPU,A型芯片從1號位置開始依次往后擺放,B型芯片緊跟其后;集成電路,A型芯片從前往后擺放在奇數位置,B型芯片從后往前擺放在偶數位置;電容,如無摻雜,則A型芯片從21號位置依次往后擺放,B型芯片從26號位置依次往前擺放;否則,B型芯片從21號位置依次往后擺放,A型芯片從26號位置依次往前擺放;三極管,A型芯片從13號位置開始依次往后擺放,B型芯片緊跟A型芯片依次往后擺放。完成排序后,機器人放回工具并回到Home點。料盤芯片擺放位置如圖1所示,芯片形狀、類型如圖2所示。
排序是“機器人技術應用”賽項的高頻考點,2017年的考點不考慮摻雜,2018年和2019年要在排序的芯片中混入其他類型的芯片,要先剔除其他類型芯片,后排序。題目一年比一年要復雜,比賽中要在很短的時間內編寫出程序并調試,對選手來說是比較困難的。本文主要是提出一種編程思路,可以適用各種不同的排序,減少思考時間,讓選手能在很短的時間內編制和調試出程序。
二、排序程序流程
分揀排序程序,機器人的主要動作是抓取芯片和放置芯片,而分揀排序的主要思路是確定取放芯片的位置。
三、獲取料盤信息
要進行排序,需要料盤獲取以下信息:(1)芯片的位置;(2)帶檢測位置是否為空位;(3)芯片的形狀和顏色。
(一)芯片位置
將料盤的位置信息用二維數組來記錄存儲,如CPU的位置信息存儲在二維數組HL的{1,1},{1,2}…,集成位置信息存儲在HL的{2,1},{2,2}…,電容位置信息存儲在HL的{3,1},{3,2}…,三極管位置信息存儲在HL的{4,1},{4,2}…。位置信息通過機器人示教得到。
CONST robtarget HL{4,8} ?。?!用二維數組定義料盤位置。
(二)芯片顏色、形狀和空位的信息表示
1.將形狀信息用數據表示
2.將顏色信息也用數據表示
3.形狀、顏色、空位的組合表示
(1)空位用數值“0”表示。
(2)用兩位數來表示顏色、形狀,其中十位表示形狀,個位表示芯片顏色。如藍色CPU,用數值“11”表示,灰色CPU用數值“12”表示,紅色集成電路用“21”表示,灰色集成電路用“22”表示…,空位值為“0”。
(3)用數值型二維數組HLZ{4,8}來存儲芯片的形狀、顏色、空位信息(以下簡稱芯片實際值),如二維數組HLZ{1,2}值為“11”,表示料盤CPU二號位的芯片類型為藍色,HLZ{2,1}的值為“0”,表示料盤集成電路的1號位為空位……。
PERS num HLZ{4,8} !!!用二維數組表示料盤芯片信息。
(三)芯片顏色、形狀和空位信息的獲取
1.空位信息獲取
芯片空位信息是通過真空表的反饋信息來獲取的,真空表反饋信號為0時,表示該位置芯片為空位,二維數組HLZ{*,*}對應的位置值為0。
2.芯片顏色和形狀信息的獲取
芯片的顏色和形狀,在視覺系統中運用處理單元宏功能,將檢測芯片的形狀和顏色的檢測結果,通過宏程序處理后的對應芯片賦予對應的數字以字符串的形式通過以太網通訊,將信息發送給機器人,機器人通過收到的字符串,直接得到對應芯片“數字”的字符串,利用轉換函數Strtoval()將字符串轉換成對應的數值。
四、剔除摻雜
芯片料盤中相應位置放入了不同形狀的芯片,則該芯片稱為摻雜(對HLZ{I,J} DIV 10的值進行判斷,如果值不等于I,則稱為摻雜),將所有摻雜放至芯片原料料區。
五、構建料盤芯片目標值
(一)統計料盤各種類型芯片的數量,存放到兩個一維數組中,A類芯片存放到一維數組JS1{*}中,B類芯片存放到一維數組JS2{*}中,如A類CPU數量存放在JS1{1},B類CPU數量存放在JS2{1}……
(二)將目標數組HLBZ{4,8}中所有元素值設置為0。
(三)按各類型的排序要求,用二維數組HLBZ{4,8}的值來表示排序完成后,芯片的形狀、顏色、空位信息(以下簡稱芯片目標值),構建二維數組HLBZ{4,8}各元素值,不同方式的排序,只要變化目標值就可以,以2019年國賽題為例,程序如下。
PROC MBZ( )
FORJ FROM 1 TO JS1{1}DO
HLBZ{1,J}:=11;? ? ??。?!CPU A類從1號位開始,B類緊跟其后
ENDFOR
FORJ FROM JS1{1}+1 TO JS1{1}+JS2{1} DO
HLBZ{1,J}:=12;
ENDFOR
FORJ FROM 1 TO JS1{2}*2-1 STEP 2 DO? ?!!!A型芯片從前往后擺放在奇數位置,B
HLBZ{2,J}:=21;? ? ? ? ? ? ? ? ? ?型芯片從后往前擺放在偶數位置;
ENDFOR
FORJ FROM 8 TO 8-JS2{2}*2+2STEP -2 DO
HLBZ{2,J}:=22;
ENDFOR
IF CZ{3}=0THEN
FORJ FROM 2 TO JS1{3}+1 DO? ? ? ? ? ? ?。。‰娙荩鐭o摻雜,則A型芯片從21號位
HLBZ{3,J}:=31;? ? ? 置依次往后擺放,B型芯片從26號位置依
ENDFOR? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 次往前擺放;否則,B型芯片從21號位置
FORJ FROM 7 TO 7-JS2{3}+1STEP -1 DO? ? 依次往后擺放,A型芯片從26號位置依次往前
HLBZ{3,J}:=32;? ? ? ? 擺放;
ENDFOR
ENDIF
IF CZ{3}<>0 THEN
FORJ FROM 2 TO JS2{3}+1 DO
HLBZ{3,J}:=32;
ENDFOR
FORJ FROM 7 TO 7-JS1{3}+1STEP -1 DO
HLBZ{3,J}:=31;
ENDFOR
ENDIF
FORJ FROM 1 TO JS1{4}DO? ? ? ? ? ? ? ? ? ? ? ?。?!三極管,A型芯片從13號位置開始依
HLBZ{4,J}:=41;? ? ? ? ? ?次往后擺放,B型芯片緊跟A型芯片依次
ENDFOR? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?往后擺放。
FORJ FROM JS1{4}+1 TO JS1{4}+JS2{4} DO
HLBZ{4,J}:=42;
ENDFOR
ENDPROC
六、調整芯片位置
構建比較BJ()函數,這個函數的功能是:將芯片的實際值HLZ{I,J}與芯片目標值HLBZ{I,J}值進行比較,如果不同,返回BJ()的值為“1”,并且將變量FAI:=I,FAJ:=J;如果這兩個值相等,繼續比較下一個,如果遍歷了這兩個數組的所有元素,值都相等,則返回BJ()的值為“0”,程序如下:
FUNC NUM BJ()
FOR I FROM 1 TO 4 DO
FOR J FROM 1 TO YLXPS{I} DO? ?。。∫痪S數組
YLXPS{I}存放各種類型芯片的數量,如YLXPS{2}表示集成電路芯片數量
IF HLZ{I,J}<>HLBZ{I,J} THEN
FAI:=I;
FAJ:=J;
RETURN 1;
ENDIF
ENDFOR
ENDFOR
RETURN 0;
ENDFUNC
判斷BJ()的值,BJ()=1,芯片要進行調整,調整的思路如下:(1)構建查找函數FIND(),這個函數的功能是:(HLZ{I,J}<>HLBZ{I,J})AND(HLZ{I,J}=HLBZ{FAI,FAJ}),即{I,J}位置的實際值不等于目標值,并且{I,J}位置的實際值等于{FAI,FAJ}位置的目標值滿足這個條件,FIND()=1,FRI:=I,FRJ:=J;(2)交換HL{FAI,FAJ}、HL{FRI,FRJ}位置的芯片,芯片調整完成以后,要更改HLZ{FAI,FAJ}與HLZ{FRI,FRJ}的值。
繼續判斷BJ()的值,如果BJ()=1,繼續調整芯片,直到BJ()=0,表示排序完成,程序流程如下。
PROC TZ() ?。?!調整芯片程序
WHILE BJ()<>0 DO
WAITUNTIL FIND()=1;
HJH FAI,FAJ,FRI,FRJ;?。?!將{FAI,FAJ}位置的芯片和{FRI,FRJ}位置的芯片進行交換
ENDWHILE
ENDPROC
參考文獻:
[1]高丹,王震生,劉曉華.依托技能大賽提升高職學生職業核心能力:以工業機器人技術應用賽項為例[J].工業技術與職業教育,2017(2):62-65.
[2]沈玲.依托技能大賽提升專業教學質量淺探:以工業機器人技術應用賽項為例[J].湖北工業職業技術學院學報,2018(3):51-55.
◎編輯 原琳娜