KUKA机器人轨迹编程,我们使用运动指令集,就会自动生成一行运动指令,运动指令集如下:
SPTP/SLIN/SC.End
SPLINE Block/SPL
PTP SPLINE Block/PTP/LIN/C.End
01 SPTP
通常显示的运动指令如上图红色行所示,但是我们打开折合发现下面绿色的指令部分,这才是实际的运动指令和参数设定部分,也就是手册上所说的联机表单。
SPTP具体运动指令参数说明如下:
SPTP XP1 WITH
$VEL_AXIS[1] = SVEL_JOINT(100),
;指定轴的速度:$VEL_AXIS[1-6] = 0 - 100
$TOOL = STOOL2(FP1),
;工具设定:$TOOL = $NULLFRAME
$BASE = SBASE(FP1.BASE_NO),
;基坐标设定:$BASE = $NULLFRAME
$IPO_MODE = SIPO_MODE(FP1.IPO_FRAME),
;外部TCP设定:$IPO_MODE = #BASE / #TCP
$LOAD = SLOAD(FP1.TOOL_NO),
;负载设定:$LOAD = LODA_DATA[0]
$ACC_AXIS[1] = SACC_JOINT(PPDAT1),
;指定轴的加速度:$ACC_AXIS[1-6] = 0 - 100
$APO = SAPO_PTP(PPDAT1),
;轨迹逼近:$APO.CDIS = 0 - 1000
$GEAR_JERK[1] = SGEAR_JERK(PPDAT1),
;指定轴的加加速度 $GEAR_JERK[1-6] = 0 - 100
$COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(1)
C_Spl
;轨迹逼近(前面有空格)
SPTP以上的指令可以这样写:
;定义位置点变量
DECL E6POS XPTEST
;位置点初始化
XPTEST={X 1753.15979,Y -229.291122,Z 856.999878,A -180.000,B 5.46853300E-08,C 180.000}
;SPTP 运动指令
SPTP XPTEST WITH
$VEL_AXIS[1] = 100,
$TOOL = $NULLFRAME,
$BASE = $NULLFRAME,
$IPO_MODE = #BASE,
$LOAD = LOAD_DATA[1],
$ACC_AXIS[1] = 100,
$APO.CDIS = 10,
$GEAR_JERK[1] = 100 C_Spl
2、SLIN
SLIN具体运动指令参数说明如下:
SLIN XP2 WITH
$VEL = SVEL_CP(2, , LCPDAT1),
;线性运动速度:$VEL.CP = 0 - 2.0 m/s
$TOOL = STOOL2(FP2),
;工具设定:$TOOL = TOOL_DATA[2]
$BASE = SBASE(FP2.BASE_NO),
;基坐标设定:$BASE = BASE_DATA[2]
$IPO_MODE = SIPO_MODE(FP2.IPO_FRAME),
;外部TCP设定:$IPO_MODE = #BASE / #TCP
$LOAD = SLOAD(FP2.TOOL_NO),
;负载设定:$LOAD = LOAD_DATA[2]
$ACC = SACC_CP(LCPDAT1),
;加速度:$ACC.CP = 0 - 10
$ORI_TYPE = SORI_TYP(LCPDAT1),
;方向引导:
$ORI_TYPE = #VAR / #CONSTANT / #JOINT
$APO = SAPO(LCPDAT1),
;轨迹逼近:$APO.CDIS = 0 - 500
$JERK = SJERK(LCPDAT1),
;加加速度:$JERK.CP =0 - 10
$COLLMON_TOL_PRO[1]
= USE_CM_PRO_VALUES(1)
C_Spl
SLIN以上的指令可以这样写:
;定义位置点变量
DECL E6POS XPTEST
;位置点初始化
XPTEST={X 1753.15979,Y -229.291122,Z 856.999878,A -180.000,B 5.46853300E-08,C 180.000}
;SLIN运动指令
SLIN XPTEST WITH
$VEL.CP = 2.0,
$TOOL = TOOL_DATA[2],
$BASE = BASE_DATA[2],
$IPO_MODE = #BASE,
$LOAD = LOAD_DATA[2],
$ACC.CP = 10,
$ORI_TYPE = #VAR,
$APO.CDIS = 500,
$JERK.CP = 10
C_Spl
3、SCIRC
SCIRC具体运动指令参数说明如下:
SCIRC XP11, XP12, CA 90 WITH
;CA 90 :ANGLE
$VEL = SVEL_CP(2.0, , LCPDAT5),
; 线性运动速度:$VEL.CP = 0 - 2.0 m/s
$TOOL = STOOL2(FP12),
;工具设定:$TOOL = TOOL_DATA[3]
$BASE = SBASE(FP12.BASE_NO),
;基坐标设定:$BASE = BASE_DATA[3]
$IPO_MODE = SIPO_MODE(FP12.IPO_FRAME),
;外部TCP设定:$IPO_MODE = #BASE / #TCP
$LOAD = SLOAD(FP12.TOOL_NO),
;负载设定:$LOAD = LOAD_DATA[3]
$ACC = SACC_CP(LCPDAT5),
;加速度:$ACC.CP = 0 - 10
$ORI_TYPE = SORI_TYP(LCPDAT5),
;方向引导:
$ORI_TYPE = #VAR / #CONSTANT / #JOINT
$CIRC_TYPE = SCIRC_TYP(LCPDAT5),
;圆周方向引导:$CIRC_TYPE = #BASE / #PATH
$APO = SAPO(LCPDAT5),
;轨迹逼近:$APO.CDIS = 0 - 500
$CIRC_MODE = SCIRC_M(LCPDAT5),
;辅助点姿态:$CIRC_MODE.AUX_PT.ORI =
#CONSIDER / #IGNORE / #INTERPOLATE
;目标点姿态:$CIRC_MODE.TARGET_PT.ORI =
#INTERPOLATE / #EXTRAPLOATE
$JERK = SJERK(LCPDAT5),
;加加速度:$JERK.CP =0 - 10
$COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(1)
C_Spl
SCIRC以上的指令可以这样写:
SCIRC XP11, XP12, CA 90 WITH
$VEL.CP = 2.0,
$TOOL = TOOL_DATA[3],
$BASE = BASE_DATA[3],
$IPO_MODE = #BASE,
$LOAD = LOAD_DATA[3],
$ACC.CP = 10,
$ORI_TYPE = #VAR,
$CIRC_TYPE = #BASE,
$APO.CDIS = 500,
$CIRC_MODE.AUX_PT.ORI = #CONSIDER ,
$CIRC_MODE.TARGET_PT.ORI=#INTERPOLATE,
$JERK.CP = 10,
$COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(1)
C_Spl