作业运动控制接口

1 job_insert_moveJ - 作业里添加关节运动/关节空间运动

方法: job_insert_moveJ(socket_fd, line, move_cmd)

参数:

  • socket_fd:连接句柄
  • line:插入的位置行号
  • MoveCmd:运动指令结构体,包含目标位置和运动参数

返回值:

  • int:执行结果
    • 0:成功
    • 非0:失败,错误码见错误码详情

使用示例:

参考示例5

2 job_insert_moveL - 作业里添加关节运动/笛卡尔空间直线运动

方法: job_insert_moveL(socket_fd, line, MoveCmd)

参数:

  • socket_fd:连接句柄
  • line:插入的位置行号
  • MoveCmd:运动指令结构体,包含目标位置和运动参数

返回值:

  • int:执行结果
    • 0:成功
    • 非0:失败,错误码见错误码详情

使用示例:

参考示例5

3 job_insert_moveC - 作业里添加关节运动/笛卡尔空间圆弧运动

方法: job_insert_moveC(socket_fd, line, MoveCmd)

参数:

  • socket_fd:连接句柄
  • line:插入的位置行号
  • MoveCmd:运动指令结构体,包含目标位置和运动参数

返回值:

  • int:执行结果
    • 0:成功
    • 非0:失败,错误码见错误码详情

使用示例:

参考示例5

4 job_open - 打开指定作业文件

方法: job_open(socketFd, jobName)

参数:

  • socketFd:连接句柄
  • jobName:作业文件名称

返回值:

  • int:执行结果
    • 0:成功
    • 非0:失败,错误码见错误码详情

使用示例:

参考示例5

5 作业文件插入指令使用示例

Python
import nrc_interface as nrc
import time

class ArmTest:
    def job_moveJ(self, socket_fd):
        # 创建指令
        moveCmd = nrc.MoveCmd()
        
        # 设置参数
        moveCmd.targetPosType = 1
        # 如果targetPosType=0为自定义数组,需要设置该向量值,前7位为本体值,后7位为外部轴
        # 如果targetPosType=1,需要设置targetPosName为"P0001"

        moveCmd.targetPosName = "P0001"  # 每次插入应该使用不同name的点存储点位信息,例如插入第二个可以用"P0002"
        
        # 位置向量
        pos = nrc.VectorDouble(6)  # 6轴为例,7轴第7个pos填0
        pos[0] = 8.0
        pos[1] = 0.0
        pos[2] = 0.0
        pos[3] = 0.0
        pos[4] = 0.0
        pos[5] = 0.0
        
        moveCmd.targetPosValue = pos
        moveCmd.coord = 0
        moveCmd.velocity = 20
        moveCmd.velocitySync = 20
        moveCmd.acc = 20
        moveCmd.dec = 20
        moveCmd.pl = 5

        # 下发
        nrc.job_open(socket_fd, "TTT")  # 打开一个作业文件TTT,没有的话先创建
        time.sleep(1)
        ret = nrc.job_insert_moveJ(socket_fd, 1, moveCmd)  # 插入指令
        print("执行结果:", ret)

if __name__ == '__main__':
    # 建立连接
    arm_test = ArmTest()
    socket_fd = nrc.connect_robot("192.168.1.13", "6001")
    arm_test.job_moveJ(socket_fd)
# 这样就在作业文件TTT的第一行插入了一条moveJ,和示教器使用基本一样。重新打开示教器会自动同步作业文件,就可以看见示教器的TTT工作文件插入了一条moveJ

6. job_create - 创建作业文件名

方法: job_create(socketFd, jobName)

参数:

  • socketFd:连接句柄
  • jobName:作业文件名称

返回值:

  • int:执行结果
    • 0:成功
    • 非0:失败,错误码见错误码详情

使用示例:

Python
import nrc_interface as nrc

# 建立连接
socket_fd = nrc.connect_robot("192.168.1.13", "6001")

# 新建TTT.JBR文件
ret = nrc.job_create(socket_fd, "TTT")
print(f"创建作业文件返回值:{ret}")

7. job_get_all_jobfile_name - 获取全部作业文件名

方法: job_get_all_jobfile_name(socketFd, robotsFile)

参数:

  • socketFd:连接句柄
  • robotsFile:作业文件名称

返回值:

  • int:执行结果
    • 0:成功
    • 非0:失败,错误码见错误码详情

使用示例:

Python
import nrc_interface as nrc

# 建立连接
socket_fd = nrc.connect_robot("192.168.1.13", "6001")

robots_file = nrc.VectorVectorString()
ret = nrc.job_get_all_jobfile_name(socket_fd, robots_file)

print("返回值:", ret)

for i in range(robots_file.size()):
    for j in range(len(robots_file[i])):
        print(robots_file[i][j])

8. job_run - 启动指定作业文件

方法: job_run(socketFd, jobName)

参数:

  • socketFd:连接句柄
  • jobName:作业文件名称

返回值:

  • int:执行结果
    • 0:成功
    • 非0:失败,错误码见错误码详情

使用示例:

Python
import nrc_interface as nrc

# 建立连接
socket_fd = nrc.connect_robot("192.168.1.13", "6001")

# 启动作业文件"TTT"
ret = nrc.job_run(socket_fd, "TTT")
print("返回值:", ret)