外轴

即使有转台等外轴,你也可以在库卡机器人控制器上使用驱动器和后处理器。我们建议你使用编号坐标系或已在机器人控制器上定义了正确机器定义的坐标系。

Important:如果你有转台,请确保已正确测量了根点。否则,请按照程序正确定义转台根点。更多信息可以在校准转台找到。

库卡机器人控制器的下列文件将帮助你了解库卡系统的构建过程:

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] = {FRAME: 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数组可能只是安装在转盘上的夹具的偏移量。

Note:查看自定义后处理器案例,了解更多有关设置坐标系时如何自定义程序输出的信息。你可以在论坛中关于如何配置外轴的对话中找到更多信息。

如果转台与机械臂同步,你可能需要通过后处理器或驱动器手动更改$BASE变量,使其成为转台的原点。

例如,如果有可用的BASE_DATA索引9,则应在驱动器中使用以下代码。

  ;--------

  ; Replace this the $BASE definition by the following 2 lines

  ;    to make the KUKA RoboDKSynch driver work with external axes:

  ; $BASE = {FRAME: X 0, Y 0, Z 0, A 0, B 0, C 0} ; Comment this line

  BASE_DATA[9] = {FRAME: X 0, Y 0, Z 0, A 0, B 0, C 0}

  BAS(#ex_BASE,9)

  ; the BAS ex_BASE function links to a fixed MACHINE_DEF index

  ;   visible in the BAS function

 

  ; The previous two lines are equivalent to the following,

  ;   if the BAS function uses index 2 for the Machine definition

  ; BASE_DATA[9] = {FRAME: 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])

  ;--------

Note:你也可以使用EK功能自行构建机器人加轨道和/或转盘系统,而无需依赖BAS功能。

Important:当你为库卡机器人生成程序,并拥有额外的同步轴(如直线轴或转台)时,你可能会在库卡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.选中"提供相对于参照物的笛卡尔坐标"选项。

Robots KUKA - 图片 35

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]

该坐标系必须已在库卡机器人控制器中定义,RoboDK不会覆盖该值。

Note:应确保RoboDK中的程序使用与$BASE变量(活动参考)中定义的坐标系相同的坐标系。