即使有转台等外轴,您也可以在库卡机器人控制器上使用驱动器和后处理器。我们建议您使用编号坐标系或已在机器人控制器上定义了正确机器定义的坐标系。
重要: 如果您有转台,请确保已正确测量了根点。否则,请按照程序正确定义转台根点。您可以在帮助文档的一般提示部分找到更多信息。
库卡机器人控制器的下列文件将帮助您了解库卡系统的构建过程:
●KRC\R1\System\$config.dat
●KRC\R1\System\bas.src
●KRC\R1\Mada\$machine.dat
如果有转盘,则应在 config.dat 文件的MACHINE_DEF 变量中定义转盘的原点位置。安装系统的人应该会提供一个示例,根据 BAS 功能使用同步转盘生成程序。
例如,当您在 SRC 文件中使用ex_BASE 标志和某个索引(如索引 9)调用 BAS 函数时:
base_data[9] = {坐标系:x 0, y 0, z 0, a 0, b 0, c 0}
BAS(#ex_BASE,9)
您的意思是要使用 MACHINE_FRAME_DAT 中的索引 9。您还应该查看 BAS 和 EX_BASE 定义,了解您的控制器默认引用的机器索引 (MACH_IDX)。在调用SRC 文件中的BAS 函数之前定义的BASE_DATA 数组可能只是安装在转盘上的夹具的偏移量。
注:查看后处理器自定义示例,了解更多有关设置坐标系时如何自定义程序输出的信息。您可以在论坛中关于如何配置外轴的对话中找到更多信息。
如果转台与机械臂同步,您可能需要通过后处理器或驱动器手动更改 $BASE 变量,使其成为转台的原点。
例如,如果有可用的 BASE_DATA 索引 9,则应在驱动器中使用以下代码。
;--------
用以下两行替换 $BASE 定义
使库卡 RoboDKSynch 驱动器与外轴一起工作:
; $base = {frame:X 0, Y 0, Z 0, A 0, B 0, C 0} ; 注释此行
base_data[9] = {坐标系:x 0, y 0, z 0, a 0, b 0, c 0}
BAS(#ex_BASE,9
; BAS ex_BASE 函数链接到固定的 MACHINE_DEF
在 BAS 功能中可见
前面两行相当于下面一行、
; 如果 BAS 函数使用索引 2 来定义机器加工
; base_data[9] = {坐标系:x 0, y 0, z 0, a 0, b 0, c 0}
; $base=ek(machine_def[2].root,machine_def[2].mech_type,base_data[9])
;--------
注:您也可以使用 EK 功能自行构建机器人加轨道和/或转盘系统,而无需依赖BAS 功能。
重要提示: 当您为库卡机器人生成程序,并拥有额外的同步轴(如直线轴或转台)时,您可能会在库卡 SRC 程序中看到以下一行定义基础坐标系的代码。
$base=ek(ex_ax_data[1].root,ex_ax_data[1].ex_kin,ex_ax_data[1].offset)
对于后处理器,如果您想考虑转盘和夹具之间的偏移,可以替换后处理器 setFrame 功能中的前一行,使用 $BASE 定义:
$BASE=EK(MACHINE_DEF[2].ROOT, MACHINE_DEF[2].MECH_TYPE, {%s})' % self.pose_2_str(pose)
另外,在使用驱动器时,您也可以按照下面描述的步骤隔离坐标系(这样就不需要在 RoboDK 中完全匹配外轴的运动学)。
例如,为了能够默认使用 RoboDK 驱动程序,机器人控制器中定义的外轴运动学应该与 RoboDK 中创建的运动学相匹配。此外,如果您有一个转盘,转盘的根点应与 RoboDK 中定义的转盘位置一致。
请按照以下步骤使用已知坐标系使用驱动器:
1.选择工具➔ 选项➔ 驱动器选项卡。
2.选中 "提供相对于参照物的笛卡尔坐标 "选项。
3.将 RoboDKsync.src 程序文件中的 $BASE 变量替换为您要使用的坐标系。
例如,如果您想使用编号为 5 的基准参考坐标系,RoboDKsync.src 文件应该是这样的(第一行有注释,您应该在第 25 行左右找到它):
; $base = {frame:x 0,y 0,z 0,a 0,b 0,c 0}
$base = base_data[5]
该坐标系必须已在库卡(Kuka)机器人控制器中定义,RoboDK 不会覆盖该值。
注意:应确保 RoboDK 中的程序使用与 $BASE 变量(活动参考)中定义的坐标系相同的坐标系。