简介:
- 用于替代KUKA联机表单,降低编程难度
应用:
1.首先需要在主程序中新增两条运动指令:一条PTP和一条LIN
2.在初始化程序中新增配置语句
初始化程序 |
DEF prog_initial() $BWDSTART = FALSE PDAT_ACT = PPDAT1 LDAT_ACT = LCPDAT1 FDAT_ACT = FP1 END |
3.新增MoveJ和MoveL子程序
MoveJ轴运动程序 |
DEF MoveJ(JPOS:IN,JTOOL:IN,JBASE:IN,JVEL:IN,JAPO:IN) |
;******************************************* ;Name :MoveJ ;Author :Wen ;Version :1.0 ;Created :05.17.2021 ;Go to target position as soon as possible ;******************************************* |
DECL E6POS JPOS ;target position DECL INT JTOOL ;tool number DECL INT JBASE ;base number DECL REAL JVEL ;velocity scale unit:% DECL REAL JAPO ;approach scale unit:% |
FDAT_ACT.TOOL_NO = JTOOL FDAT_ACT.BASE_NO = JBASE IF JAPO > 0 THEN PDAT_ACT.APO_DIST = JAPO BAS(#PTP_PARAMS,JVEL) PTP JPOS C_PTP ELSE BAS(#PTP_PARAMS,JVEL) PTP JPOS ENDIF |
END |
MoveL线运动程序 |
DEF MoveL(LPOS:IN,LTOOL:IN,LBASE:IN,LVEL:IN,LAPO:IN) |
;******************************************* ;Name :MoveL ;Author :Wen ;Version :1.0 ;Created :05.17.2021 ;Go to target position as line ;******************************************* |
DECL E6POS LPOS ;target position DECL INT LTOOL ;tool number DECL INT LBASE ;base number DECL REAL LVEL ;velocity scale unit:% DECL REAL LVEL_LINE ;velocity unit:m DECL REAL LAPO ;approach scale unit:% |
FDAT_ACT.TOOL_NO = LTOOL FDAT_ACT.BASE_NO = LBASE LVEL_LINE = 2.0 * LVEL / 100 IF LAPO > 0 THEN LDAT_ACT.APO_DIST = LAPO BAS(#CP_PARAMS,LVEL_LINE) LIN LPOS C_DIS ELSE BAS(#CP_PARAMS,LVEL_LINE) LIN LPOS ENDIF |
END |
4.应用样例:
其他需说明事项:
- 自编子程序相比联机表单优势在于编程和调试方便,可以在工程师站将程序全部编好下进机器人即可生效。
- 劣势在于机器人在运动中异常停止时,因为是调用子程序运动,所以并不能通过指针来确定是哪一条运动指令出了问题
- C2中在满足姿态条件的前提下,第一条运动指令可以为LIN,C4中不允许第一条运动指令为LIN