黑子船长的机器人
认证:普通会员
作者动态
KUKA机器人与西门子S7-1200 PLC同时进行Profinet和Ethernet IP通讯(第一篇)
03-13 11:48
西门子PLC 与 KUKA 机器人通过西门子偶合器进行Profinet通讯配置
03-12 15:56
FANUC机器人与西门子S7-1200 Ethernet/IP通讯
03-11 13:52
KUKA机器人之俄罗斯方块——工作游戏两不误
03-01 14:13
KUKA机器人和COGNEX In-Sight IS8XXX系列相机Profinet的通讯
02-29 10:35

KUKA机器人KSS8.6 运动指令高级编程

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
声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 1
收藏 2
关注 13
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧