话不多说,上代码
PROGRAM con_joint
----------------------------------------------------
-- Creation date: 2024.09.03
-- Created by:
----------------------------------------------------
-- Version: 0.0.0.0 - 00
----------------------------------------------------
-- Function:
----------------------------------------------------
-- Last modified: 2024.09.03
-- Last modified by:
----------------------------------------------------
%COMMENT = 'CNV_REL_JPOS(p_cntr_arry, p_cntr, status)'
%ALPHABETIZE
%INCLUDE KLEVKEYS
%INCLUDE KLEVKMSK
%INCLUDE KLEVCCDF
%INCLUDE KLIOUOP
%INCLUDE KLIOTYPS
CONST
num_axs = 6
VAR
p_cntr_arry : ARRAY[6] OF REAL
p_cntr : JOINTPOS6
STATUS : INTEGER
indx : INTEGER
I : INTEGER
ROUTINE move_to_pr FROM move_to_pr
----------------------------------------------------
-- BEGIN con_joint
----------------------------------------------------
BEGIN
LAB_1:: --START
FOR I = 1 TO 90 DO
FOR indx = 1 TO num_axs DO --初始化每个轴为0
p_cntr_arry[indx] = 0
ENDFOR
p_cntr_arry[1] = I
p_cntr_arry[3] = I+1
p_cntr_arry[4] = I+2
p_cntr_arry[5] = I+3 --看一下动作
CNV_REL_JPOS(p_cntr_arry, p_cntr, status)--将数组中每个轴的值赋值给关节点为p_cntr
SET_JPOS_REG(1, p_cntr, status) -- Put p_cntr in PR[1] 赋值PR[1]值
move_to_pr --调用移动指令 进行动作
-- DELAY 1000
ENDFOR
FOR I = 90 DOWNTO 1 DO
FOR indx = 1 TO num_axs DO --初始化每个轴为0
p_cntr_arry[indx] = 0
ENDFOR
p_cntr_arry[1] = I
p_cntr_arry[3] = I+1
p_cntr_arry[4] = I+2
p_cntr_arry[5] = I+3 --看一下动作
CNV_REL_JPOS(p_cntr_arry, p_cntr, status)--将数组中每个轴的值赋值给关节点为p_cntr
SET_JPOS_REG(1, p_cntr, status) -- Put p_cntr in PR[1] 赋值PR[1]值
move_to_pr --调用移动指令 进行动作
-- DELAY 1000
ENDFOR
GOTO LAB_1
END con_joint
关键指令
CNV_REL_JPOS(p_cntr_arry, p_cntr, status)--将数组中每个轴的值赋值给关节点为p_cntr
SET_JPOS_REG(1, p_cntr, status) -- Put p_cntr in PR[1] 赋值PR[1]值
可以实现 使用KAREL控制每个轴的数值,进而控制轨迹