中职组“机器人技术应用”赛项排序的赛题解析
2020-08-20黄吓珠
黄吓珠
[摘 要] 随着《中国制造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 !!!电容,如无掺杂,则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 !!!一维数组
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.
◎编辑 原琳娜