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