对于下图这种异性码垛,可以从以下链接下载图形化码垛助手
链接:https://pan.baidu.com/s/1X5uc9AFiUUPqs7sfhR2cWA
提取码:6l4b
1. 双击码垛助手.exe
2. 栈板最大支持1200*1200,如果超过400*400,选择“大栈板“
3. 根据需要,设置栈板大小,并点击 绘制栈板。
4. 码垛号对应实际使用的码垛号,默认为0,配置文件中的number为0,默认生成的文件为pallet0.cfg(如果填1,配置文件中的number为1,默认生成的文件为pallet1.cfg)
配置文件默认使用user0坐标系进行计算!!
5. 默认选择排样1(一个码垛最多支持2种排样)
6. 输入产品x和y方向的尺寸(注意下图为实际机器人base坐标系方向),并点击“新建产品“,此时会根据设置的数据新生成一个产品。产品上的标识为产品方向,可以点击”旋转90°“按钮,产品会依次旋转90°。
7 再次点击“新建产品”,会再上一个产品位置新建一个产品。根据需要设置移动距离,并移动产品,如下图
8. 选中的产品,呈现 黄绿色。
9. 根据需要,依次添加产品(默认新建的位置是当前选中产品的位置,移动前根据需要设置移动距离(建议移动距离比产品的x和y大10mm)
10. 如果只有一种排样,在左下角设置基于每个码垛点的前置/后置偏移数据,单层高度和层数。每层排样均使用排样1,所以输入数据为1,1,1,1(共4层),点击“生成配置文件”。直接进入第12步。
11. 如果有2种排样,点击“排样2”,进行设置。设置过程中可以来回切换 排样1和排样2,检查产品位置。(如果使用2种排样,在左下角的每层排样,根据实际修改,例如奇偶交替1,2,1,2)
1. 若只使用一种垛型,保存为pallet0.cfg,如果使用2种垛型,分别保存为pallet0.cfg和pallet1.cfg
2. 对于真实机器人,将文首网盘中的附件的default.configuration.variables,Elite_pallet.task,pallet_stack02.script以及通过助手生成的palletX.cfg文件导入机器人控制器的program文件夹下
对于虚拟仿真机,将附件的default.configuration.variables,Elite_pallet.task,pallet_stack02.script放到EliRobot下的program文件夹下,配置文件palletX.cfg放到EliServer文件夹下
全局变量count_left和count_right分别对左右栈板计数
3. 根据实际,修改pallet_stack02.script最上方的用户修改区内容
#********************************* # 用户修改区 usePalletNo = 1 # 如果左右2个栈板均使用pallet0.cfg,参数设为1 # 如果左侧使用pallet0.cfg,右侧使用pallet1.cfg 两个码垛配置,参数设为2 global RealRobot RealRobot =0 # 如果仿真虚拟机,设为0 # 如果真机,设为1 # 用户根据实际修改吸取和放置代码 def GripperOn(): # 写入吸取对应的代码 sleep(0.1) def GripperOff(): # 写入松开的代码 sleep(0.1) # 来料到位信号地址 global DIPick DIPick = 0 # 左侧栈板允许信号地址 global DIStack_left DIStack_left = 1 # 右侧栈板允许信号地址 global DIStack_right DIStack_right = 2 # 用户修改区 #*****************************************
对模板中的关键点位示教
其中左侧,右侧基准点均为码垛配置文件中的1#产品位置
4. Task提供了3种模板,包括
PalletDepallet,用于展会演示(从左侧拆垛放到右侧,再右侧拆垛放回左侧)
Pallet1Stack,用于单线来料,单栈板码垛
Pallet2Stack,用于单线来料,先左再右码垛(码完左边再码右边)
5. 对于PalletDepallet,
第一个参数为home点,
第二个为左栈板的通过码垛助手生成的1#点位(不管拆垛码垛,都是1层的1#位置),第三个为右栈板的通过码垛助手生成的1#点位(不管拆垛码垛,都是1层的1#位置),
第四个为左侧使用的用户坐标系,可以不设,此处设置为base
第五个为右侧使用的用户坐标系,可以不设,此处设置为base
或者不设 (参考base)
6. 对于Pallet1Stack,
第一个参数为home点,
第二个参数 为来料抓取位置
第三个参数为左栈板的通过码垛助手生成的1#点位(不管拆垛码垛,都是1层的1#位置),
第四个为左侧使用的用户坐标系,可以不设,此处设置为base
7. 对于Pallet2Stack,
第一个参数为home点,
第二个参数 为来料抓取位置
第三个参数为左栈板的通过码垛助手生成的1#点位(不管拆垛码垛,都是1层的1#位置),
第司个参数为右栈板的通过码垛助手生成的1#点位(不管拆垛码垛,都是1层的1#位置),
第五个为左侧使用的用户坐标系,可以不设,此处设置为base
第六个为右侧使用的用户坐标系,可以不设,此处设置为base
8. 对于虚拟机仿真,diWait指令中设置为等待对应的输出信号,即例如设置了左侧栈板信号地址为1,则需要人为强制do1为1,否则机器人一直等待
def WaitDI(signalNo,value): global RealRobot if RealRobot: # 真机,检测DI while get_standard_digital_in(signalNo)!=value: sleep(0.1) else: # 虚拟机,人为强制DO测试 while get_standard_digital_out(signalNo)!=value: sleep(0.1)