3.3 连续轨迹运动(CP运动=连续轨迹)
3.3.3 线性运动
LIN 线性运动中,KRC...计算从当前位置(程序中编程的最后一点)到运动命令指定位置 的一条直线。
使用关键字LIN或LIN_REL及终点定义来编程一个线性运动,类似于PTP编程。线性运 动的终点以笛卡儿坐标输入。仅允许使用数据类型FRAME或POS。
线性运动中,终点的角度状态必须与起点相同。数据类型为 POS 的终点的属性 Status 和 Turn 降被忽略。必须在第一个 LIN 指令前编程一个包含全部坐标属性 的 PTP 运动(例如 HOME 运行)。
对于连续轨迹运动的速度和加速度分配,以及工具和基坐标系的设置,在线性运动也 要完成,在下面的例子中,使用初始化程序BAC.SRC来完成。
DEF LIN_BEW( )
;---声明部分---
EXT BAS (BAS_COMMAND:N,REAL:IN)
DECL AXIS HOME ;变量HOME的类型是AXIS
;---初始化---
BAS (#INITMOV,0) ;初始化速度
;加速度,$BASE,$TOOL,等 HOME={AXIS:A1 0,A2 -90,A3 90,A 40,A5 0,A6 0}
;---主程序部分--- PTP HOME ;BCO运行
PTP{A5 30}
;线性运动到指定位置,方位连续变化到终点方位 LIN {X 1030,Y 350,Z 1300,A 160,B 45,C 130}
在Y-Z平面内线性运动,S和T被忽略 LIN {POS:Y 0,Z 800,A 0,S 2,T 35}
;线性运动到指定位置,方位不变
$ORI_TYPE=#CONST
LIN {FRAME:X 700,Y -300,Z 1000,A 23,B 230,C -90}
;方位仍不改变
LIN {FRAME:Z 1200,A 90,B 0,C 0}
;沿X轴的相对运动
长沙工控帮教育科技有限公司
要使用CIRC或CIRC_REL编程一个圆弧运动,除终点外,还必须再定义一个辅助点。
当控制器计算运动轨迹时,仅是辅助点的平移分量被计算。根据方位控制模式的不 同,TCP的方位从起点到终点连续变化或保持不变。
除辅助点和终点外,还可以使用选项CA(圆弧角)编程一个圆弧角度。圆弧的几何总 是由起点、辅助点和终点定义。圆弧上实际终点的位置,是运动结束的位置,由编 程的圆弧角决定。当重新编程终点位置而不改变圆弧几何时特别有用。
依照工具圆弧角,圆弧可以被伸长和缩短。在实际终点到达编程的终点方位。旋转 方向,即TCP绕圆弧移动的方向,可以通过圆弧角前的符号定义(见图26):
CA>00 编程方向(起点→辅助点→终点) CA<00 与编程方向相反(起点→终点→辅助点)
圆弧角的值不受限制。特别的是可以编程整圆(>3600)。
辅助点
起点
编程的终点
实际的终点
起点
实际的终点
编程的终点 辅助点 X
图26 CIRC或CIRC_REL命令中CA选项的作用
辅助和终点位置(CIRC_REL)的相对关系与各自的起点有关,与LIN运动一样,轴指定 的位置属性不允许使用。同样执行一个圆弧运动前,必须分配$BASE和$TOOL。
长沙工控帮教育科技有限公司
2 变量和声明(续)
机器人驱动器中有关控制的数据存储在目录“Steu”中,有关机器人的数据存储在目录
“R1”中,并可在KUKA GUI上显示。
图7KUKA图形用户界面上的不同级别
当编程KRC...,您可以建立程序文件和数据表。程序文件是数据定义和可执行指令。而 数据表仅包含数据定义和可能的初始化。
更多信息见[数据表]一章。
除了编程期间建立的数据表外,在KRC...中还有KUKA定义的和控制软件一起的数据表。
这些数据表被称为预定数据表,主要包含预定变量。
您自己并不删除和建立预定数据表,当软件安装时自动产生,然后永远可以使用。就象 预定数据的名称一样,预定数据表的名称也以$符号开始。
KRC...中存在以下预定数据表:
● $MACHINE.DAT
是预定数据表,包含专有的系统变量。适配控制器和所连接机器人(运动信息,控制参 数等)的机床数据。控制系统和机器人系统中都有一个$MACHINE.DAT,您不可以新建或 删除现存的。
例如:
$ALARM_STOP 急停信号 (控制器特有)
$NUM_AX 机器人轴数 (机器人特有)
● $CUSTOM.DAT
仅在控制系统中存在的数据表。包含可以配置或参数化特定控制函数的数据。编程师 仅可以改变预定变量的值。不可以新建或删除现存的。
长沙工控帮教育科技有限公司
专家级编程
标记 1024个标记$FLAG[1]…$FLAG[1024]被用作全局标记。这些BU布尔变量预设置为FALSE。
您可以随时在用户界面上通过“监视”菜单看标记的当前值。
循环标记 KRC...中可用32个循环标记$CYCFLAG[1]…$CYCFLAG[32],控制器启动后预设为FALSE。
机器人中标记仅是循环被激活。在提交文件中允许循环标记,但是它们不循环求值。
循环标记可在子程序、函数和中断子程序中定义和激活。
$CYCFLAG[1]…$CYCFLAG[32]的数据类型为BOOL型。任何布尔表达式可分配给循环标记。
下列是允许的:
$CYCFLAG[10]=$IN[2] AND $IN[13]
布尔表达式“$IN[2]AND$IN[13]”循环求值。例如,一旦输入12或输入13变化,
$CYCFLAG[10]也变化,上述表达式执行后与程序指针的位置无关。
定义过的所有的循环标记保持有效直到选择一个模态或通过复位进行程序块选择。所有 号PLC).其它,然而仅用于机器人(例如$BASE用于基本坐标系)。
长沙工控帮教育科技有限公司
3 运动编程 (续)
在以上所示的程序中,提前运行设置为1,主运行指针在行16中(即LIN运动正在被执 行)。计算机提前运行为1意味着行16到22在运动的执行期间已经被处理完,正在准备 行24的PTP运动的运动数据。
要可能执行逼近模式,计算机提前运行至少设置为1。(变量$ADVANCE的缺省值是“3”。
最大可以提前运行5步)。
在中断子程序中不可能执行计算机提前运行。控制器总是一行接一行处理中断程序;
因此在中断程序中不能进行逼近操作。
$ADVANCE的缺省设置:
自动提前运行 停止
影响外围装备(例如 I/O 指令)或基于机器人当前状态的指令和数据,会触发提 前运行停止(见表 18)。为保证指令和机器人运动的正确顺序,这时必要的。
长沙工控帮教育科技有限公司
表18 触发自动运行停止的指令和系统变量
CONTINUE 在应用程序中要防止提前运行停止的地方,可在相关指令前立即编程命令CONTINUE。
控制器然后会允许提前运行继续执行。该命令的效果受下一个程序行的限制(即使该 行为空!!)。
另一方面,如果您要在指定点停止提前运行,不必改变系统变量$ADVANCE,您可以使 用如下小技巧:在该点简单地编程一个时间0秒的等待。指令WAIT只是自动停止提前 运行:
WAIT SEC 0
更多消息见[编程执行控制]一章的[等待时间]一节。
长沙工控帮教育科技有限公司
3 运动编程 (续)
3.5 使用逼近定位的运动
为增加速度,不必要精确定位的点可以被逼近。机器人采用的捷径如图28所示。
逼近定位控制 为此控制器自动产生逼近定位轮廓。编程师仅可以改变逼近定位的起点和终点。要计 算逼近指令,控制器需要起点、逼近定位点和终点的数据。
要进行逼近定位,计算机提前运行必须至少设置为 1。如果计算机提前运行太小,则 消息“无法逼近”出现,机器人在各点执行精确定位。
如果在逼近定位指令后编程一个自动停止提前运行的指令,则不能进行逼近定位。
有关TRIGGER指令作为补救的更多消息见[触发轨迹相关的开关动作]一章。
逼近定位
起点
辅助点
终点
图28 在辅助点的逼近定位
长沙工控帮教育科技有限公司
3.5.1 PTP—PTP逼近定位
要执行PTP逼近定位,控制器计算在逼近定位范围内轴要移动的距离,规划各轴的速 度轮廓,该规划确保从单独的指令到逼近定位轮廓的切线转换。
开始逼近定位 当最后的(=主导)轴在逼近定位点前的指定角度以下时,逼近定位开始。预先在机床 数据中定义了各轴的角度。
$APO_DIS_PTP[1]=90 .
. .
$APO_DIS_PTP[6]=90
在程序中,$APO.CPTP使能以最大值的百分比指定的逼近定位的开始,例如:
$APO.CPTP=50
在这个例子中,当从第一个轴到逼近定位点剩余的角度是450(900的50%)时开始逼近 定位。逼近定位在第一个轴从逼近定位点起覆盖角度450时结束。
逼近定位不可能在超过程序段的中间位置发生!在这种情况下,系统限制自身在程序 段的中间前。
C_PTP PTP命令中通过增加关键字C_PTP来表示点的逼近定位:
PTP POINT4 C_PTP
3 运动编程 (续)
DEF UEBERPTP( )
;---声明部分---
EXT BAS (BAS_COMMAND:IN,REAL:IN) DECL AXIS HOME
;---初始化--- BAS (#INITMOV,0) ;初始化速度
;加速度,$BASE,$TOOL,等 HOME={AXIS:A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0}
;---主程序部分--- PTP HOME ;BCO运行
PTP {POS:X 1159.08,Y -232.06,Z 716.38,A 171.85,B 67.32,C 162.65,
S 2,T 10}
;点的逼近定位
PTP {POS:X 1246.93,Y -98.86,Z 715,A 125.1,B 56.75,C 111.66,S 2,T 10}
C_PTP
PTP{POS:X 1109.41,Y -0.51,Z 715,A 95.44,B 73.45,C 70.95,S 2,T 10}
;两个点的逼近定位
$APO.CPTP=20
PTP {POS:X 1296.61,Y 133.41,Z 715,A 150.32,B 55.07,C 130.23,S2,T 11}
C_PTP
PTP {POS:X 988.45,Y 238.53,Z 715,A 114.65,B 50.46,C 84.62,S 2,T 11}
C_PTP
PTP {POS:X 1209.5,Y 381.09,Z 715,A -141.91,B 82.41,C -159.41,S 2,
T 11}
PTP HOME END
长沙工控帮教育科技有限公司
图29 PTP-PTP逼近定位的举例
因为PTP运动一般来说既不是一条直线也不是在空间中一个平面上,严格来说如图29所 示。虽然例子中所有点的Z值是一样的,运动轨迹上的每个点并不是都在z=175mm的平
面上。图示轨迹仅是实际轨迹在x-y平面上的投影。
长沙工控帮教育科技有限公司
3 运动编程 (续)
3.5.2 LIN—LIN逼近定位
为了能够完成沿复杂轨迹的连续运动,需要在各个线性程序段之间执行逼近定位。 终点小于$APO.CDIS中的值的准确时刻离开单独程序段轮廓。
方位标准 方位距离可以分配给变量$APO.CORI。在这种情况下,主要方位角(纵向工具轴的旋转 和转动)小于距离编程的逼近定位点定义在$APO.CORI中的值的准确时刻离开单独程 序段轮廓。
速度标准 一个百分比值可以分配给变量$APO.CVEL。该值指定编程速度($VEL)的百分比,在单 独程序段的减速阶段达到该值时开始逼近定位过程。运动期间,达到或接近编程的速 度值的分量根据平移、旋转和转动计算。
$APO.CDIS、$APO.CORI 或$APO.CVEL 值越大,逼近定位开始越早。
在某些情况中,系统可能会缩短逼近定位(程序段的中间,对称标准),但是不
DEF UEBERLIN( )
;---声明部分---
EXT BAS (BAS_COMMAND:IN,REAL:IN) DECL AXIS HOME
;---初始化--- BAS(#INITMOV,0) ;初始化速度
;加速度、$BASE、$TOOL等 HOME={AXIS:A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0}
;---主程序部分--- PTP HOME ;BCO运行
PTP {POS:X 1159.08,Y -232.06,Z 716.38,A 171.85,B 67.32,C 162.65,
S 2,T10}
;使用距离标准的点的逼近定位
$APO.CDIS=20
LIN{X 1246.93,Y -98.86,Z 715,A 125.1,B 56.75,C 111.66} C_DIS LIN{X 1109.41,Y -0.51,Z 715,A 95.44,B 73.45,C 70.95}
;两点的逼近定位
LIN{X 1296.61,Y 133.41,Z 714.99,A 150.32,B 55.07,C 130.23}
C_ORI
LIN{X 988.45,Y 238.53,Z 714.99,A 114.65,B 50.46,C 84.62} C VEL LIN {X1209.5,Y381.09,Z715,A-141.91,B82.41,C –159.41}
PTP HOME END
图30 LIN—LIN逼近定位的举例
长沙工控帮教育科技有限公司
3 运动编程 (续)
逼近定位轮廓连接后续LIN程序段的位置由计算机自动计算。如果$ACC和$VEL对于两 个单独的程序段完全相同且程序段长度足够,逼近定位抛物线将对称于两个单独程序段之 间的平分线。对于短程序段,逼近定位的起点被限制为程序段长度的一半。在该处降低速 度,任何后续的精确定位总是可以被执行。
单独程序段和逼近定位轮廓之间的转换是连续的和切线的。保证一个“平滑”转换,减 小机械冲击,因为速度成分总是连续的。
逼近定位范围中控制器产生的轮廓不受运动任意阶段倍率变化的影响。
逼近定位范围中控制器产生的轮廓不受运动任意阶段倍率变化的影响。