API 说明 ============================ kuka 工控机主控支持的 API ++++++++++++++++++++++++++++++++++++++++++ +--------+-------------------------+----------+ | 指令号 | 命令 | 支持情况 | +========+=========================+==========+ | 100 | 获取机械臂程序版本号 | 支持 | +--------+-------------------------+----------+ | 101 | 发送速度数据 | 支持 | +--------+-------------------------+----------+ | 102 | 发送加速度数据 | 支持 | +--------+-------------------------+----------+ | 103 | 发送圆滑过渡参数 | 支持 | +--------+-------------------------+----------+ | 104 | 发送工具坐标系(TCP)参数 | 支持 | +--------+-------------------------+----------+ | 105 | 设置数字量输出 | 支持 | +--------+-------------------------+----------+ | 106 | SetJointsMovej | 支持 | +--------+-------------------------+----------+ | 107 | SetCartMovel | 支持 | +--------+-------------------------+----------+ | 108 | SetJoinsMovel | 支持 | +--------+-------------------------+----------+ | 109 | SetCartMovej | 支持 | +--------+-------------------------+----------+ | 110 | MovejSequence | 支持 | +--------+-------------------------+----------+ | 111 | MovelSequence | 支持 | +--------+-------------------------+----------+ | 112 | SetJointsMovejDo | 不支持 | +--------+-------------------------+----------+ | 113 | SetCartMovelDo | 不支持 | +--------+-------------------------+----------+ | 114 | SetJointsMovelDo | 不支持 | +--------+-------------------------+----------+ | 115 | SetJointsMovejGroupDo | 不支持 | +--------+-------------------------+----------+ | 116 | SetCartMovelGroupDo | 不支持 | +--------+-------------------------+----------+ | 117 | SetJointsMovelGroupDo | 不支持 | +--------+-------------------------+----------+ | 118 | MovelUntil | 支持 | +--------+-------------------------+----------+ | 119 | 获取数字量输入状态 | 支持 | +--------+-------------------------+----------+ | 120 | 获取数字量输出状态 | 支持 | +--------+-------------------------+----------+ | 121 | 获取模拟量输入口数值 | 不支持 | +--------+-------------------------+----------+ | 122 | 获取机械臂当前角度 | 支持 | +--------+-------------------------+----------+ | 123 | 获取机械臂当前位姿 | 支持 | +--------+-------------------------+----------+ | 200 | 机械臂后台发送状态 | 支持 | +--------+-------------------------+----------+ kuka 机械臂主控支持的 API +++++++++++++++++++++++++++++++++++ * kuka 支持传入变量传出 * api 的使用方法可以参考 xyz_master_example.src 文件 .. function:: GLOBAL DEFFCT INT xyzSwitchTask(task_codename[]:IN) :noindex: 切换应用。 使用前务必调用 strclear 清空字符串! :param task_codename[]: 应用名称 :type task_codename[]: CHAR[] :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzSwitchTool(tool_id:IN) :noindex: 切换工具 :param tool_id: 工具名称 :type tool_id: INT :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzCallVisionCmd(vs_id:IN, vision_codename[]:IN) :noindex: 呼叫视觉。 使用前务必调用 strclear 清空字符串! :param vs_id: 视觉服务id :type vs_id: INT :param vision_codename[]: 呼叫视觉的指令名称 :type vision_codename[]: CHAR :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzReqGraspPose(vs_id:IN, token:OUT) :noindex: 请求抓取位姿 :param vs_id: 需要获取抓取点位的工作空间id :type vs_id: INT :param token: 返回的用于获取目标点位时使用的token :type token: INT :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzGetGraspPose(token:IN, grasp_pose:OUT, grasp_pose_num:OUT, pipeline_num:OUT, register_num:OUT, ints[]:OUT) :noindex: 获取抓取位姿 :param token: 求抓取目标点位时返回的token :type token: INT :param grasp_pose: 抓取位姿 :type grasp_pose: E6POS :param grasp_pose_num: 可供抓取的点数量 :type grasp_pose_num: INT :param pipeline_num: 运动流程编号 :type pipeline_num: INT :param register_num: 注册编号 :type register_num: INT :param ints[]: 可以task中自定义含义 :type ints[]: INT :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzReqObjPose(vs_id:IN, obj_token:OUT) :noindex: 请求物体位姿 :param vs_id: 需要获取物体位姿的工作空间id :type vs_id: INT :param obj_token: 物体位姿识别的token :type obj_token: INT :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzGetObjPose(token:IN, obj_pose:OUT, obj_pose_num:OUT, obj_name[]:OUT, ints[]:OUT) :noindex: 获取物体位姿 :param token: 请求物体位姿时得到的token :type token: INT :param obj_pose: 物体位姿 :type obj_pose: E6POS :param obj_pose_num: 物体数量 :type obj_pose_num: INT :param obj_name[]: 当前返回的物体 pose 类型 :type obj_name[]: INT :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzResetTask() :noindex: 重置任务 :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzSendCurrentJoints() :noindex: 发送机械臂当前角度:j1~j6: 机械臂当前的角度信息,如果机械臂轴数小于6轴,则需要对应位置补零,依旧发送六个数。 :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzSendCurrentCartPose() :noindex: 发送机械臂法兰当前位姿 :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzSendCurrentExtJoints() :noindex: 发送机械臂当前扩展轴位置:j1~j6: 机械臂当前扩展轴的角度信息,如果扩展轴数不足6的,需要补零后发送六个数。 :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzReqPickPlace(vs_id:IN) :noindex: 请求抓放规划 :param vs_id: 需要请求计算抓取轨迹的工作空间id :type vs_id: INT :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzGetPickin(vs_id:IN, pipeline_num:OUT, register_num:OUT, num:OUT, wp_type[]:OUT, joints[]:OUT, carts[]:OUT) :noindex: 获取取料入框轨迹 :param vs_id: 需要获取取料入框点位的工作空间id :type vs_id: INT :param pipeline_num: 运动流程编号 :type pipeline_num: INT :param register_num: 抓取序号 :type register_num: INT :param num: 可供抓取的点数量 :type num: INT :param wp_type[]: 轨迹点位类型数组 :type wp_type[]: INT :param joints[]: 关节点位数组 :type joints[]: E6AXIS :param carts[]: 笛卡尔点位数组 :type carts[]: E6POS :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzGetPickout(vs_id:IN, pipeline_num:OUT, register_num:OUT, num:OUT, wp_type[]:OUT, joints[]:OUT, carts[]:OUT) :noindex: 获取取料出框轨迹 :param vs_id: 需要获取取料出框点位的工作空间id :type vs_id: INT :param pipeline_num: 运动流程编号 :type pipeline_num: INT :param register_num: 抓取序号 :type register_num: INT :param num: 可供抓取的点数量 :type num: INT :param wp_type[]: 轨迹点位类型数组 :type wp_type[]: INT :param joints[]: 关节点位数组 :type joints[]: E6AXIS :param carts[]: 笛卡尔点位数组 :type carts[]: E6POS :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzGetPlacein(vs_id:IN, pipeline_num:OUT, register_num:OUT, num:OUT, wp_type[]:OUT, joints[]:OUT, carts[]:OUT) :noindex: 获取放料入框轨迹 :param vs_id: 需要获取放料入框点位的工作空间id :type vs_id: INT :param pipeline_num: 运动流程编号 :type pipeline_num: INT :param register_num: 抓取序号 :type register_num: INT :param num: 可供抓取的点数量 :type num: INT :param wp_type[]: 轨迹点位类型数组 :type wp_type[]: INT :param joints[]: 关节点位数组 :type joints[]: E6AXIS :param carts[]: 笛卡尔点位数组 :type carts[]: E6POS :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzGetPlaceout(vs_id:IN, pipeline_num:OUT, register_num:OUT, num:OUT, wp_type[]:OUT, joints[]:OUT, carts[]:OUT) :noindex: 获取放料出框轨迹 :param vs_id: 需要获取放料出框点位的工作空间id :type vs_id: INT :param pipeline_num: 运动流程编号 :type pipeline_num: INT :param register_num: 抓取序号 :type register_num: INT :param num: 可供抓取的点数量 :type num: INT :param wp_type[]: 轨迹点位类型数组 :type wp_type[]: INT :param joints[]: 关节点位数组 :type joints[]: E6AXIS :param carts[]: 笛卡尔点位数组 :type carts[]: E6POS :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzUpdateTotePose(vs_id:IN) :noindex: 料箱重定位 :param vs_id: 需要进行料箱重定位的工作空间id :type vs_id: INT :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzUpdateObjPoseInHand(obj_pose:OUT) :noindex: 工件在上手的二次定位 :param obj_pose: 工件位姿 :type obj_pose: E6POS :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzSwitchItem(vs_id:IN, item_codename[]:IN) :noindex: 切换工件。使用前务必调用 strclear 清空字符串! :param vs_id: 视觉空间 :type vs_id: INT :param item_codename[]: 工件名称 :type item_codename[]: CHAR[] :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzCalculateGraspPose(vs_id:IN, grasp_pose:OUT, grasp_pose_num:OUT, pipeline_num:OUT, register_num:OUT, ints[]:OUT) :noindex: 计算抓取目标点位 :param vs_id: 需要进行抓取的工作空间id :type vs_id: INT :param grasp_pose: 抓取目标点位 :type grasp_pose: E6POS :param grasp_pose_num: 可供抓取的点数量 :type grasp_pose_num: INT :param pipeline_num: pipeline 编号 :type pipeline_id: INT :param register_num: 注册编号 :type priority: INT :param ints[]: 可以task中自定义含义 :type ints[]: INT .. function:: GLOBAL DEFFCT INT xyzCalculateObjectPose(vs_id:IN, obj_pose:OUT, obj_pose_num:OUT, object_name[]:OUT, ints[]:OUT) :noindex: 计算物体位姿 :param vs_id: 需要进行抓取的工作空间id :type vs_id: INT :param obj_pose: 物体位姿 :type obj_pose: E6POS :param obj_pose_num: 可供抓取的点数量 :type obj_pose_num: INT :param object_name[]: 物体位姿类型 :type object_name[]: CHAR[] :param ints[]: 可以task中自定义含义 :type ints[]: INT .. function:: GLOBAL DEFFCT INT xyzUsrCmd() :noindex: 用户自定义指令 :param: out_strs[]: 发给上位机的字符串数组 out_ints[]: 发给上位机的整型数组 out_floats[]: 发给上位机的浮点型数组 out_cart: 发给上位机的笛卡尔坐标 out_joints: 发给上位机的关节坐标 :return: err_code in_strs[]: 上位机发来的字符串数组 in_ints[]: 上位机发来的整型数组 in_floats[]: 上位机发来的浮点型数组 in_cart: 上位机发来的笛卡尔坐标 in_joints: 上位机发来的关节坐标 .. function:: DEF xyzClearUsrCmdData() :noindex: 清除用户自定义指令数据 .. function:: GLOBAL DEF xyzParseTraj(pipeline_num:OUT, register_num:OUT, num:OUT,wp_type[]:OUT, joints[]:OUT, carts[]:OUT) 解析轨迹 :return: pipeline_num : pipeline编号 register_num : 注册编号 num : 轨迹点数 wp_type[] : 轨迹点类型 joints[] : 关节坐标数组 carts[] : 笛卡尔坐标数组 .. function:: GLOBAL DEF xyzExecuteTraj(num:IN, wp_type[]:OUT, joints[]:OUT, carts[]:OUT) 执行轨迹 :return: err_code : 错误码 num : 轨迹点数 wp_type[] : 轨迹点类型 joints[] : 关节坐标数组 carts[] : 笛卡尔坐标数组 .. function:: GLOBAL DEF xyzExecutePickInTraj(num:IN, wp_type[]:OUT, joints[]:OUT, carts[]:OUT) 执行取料入框轨迹 :return: err_code : 错误码 num : 轨迹点数 wp_type[] : 轨迹点类型 joints[] : 关节坐标数组 carts[] : 笛卡尔坐标数组 .. function:: GLOBAL DEF xyzExecutePickOutTraj(num:IN, wp_type[]:OUT, joints[]:OUT, carts[]:OUT) 执行取料出框轨迹 :return: err_code : 错误码 num : 轨迹点数 wp_type[] : 轨迹点类型 joints[] : 关节坐标数组 carts[] : 笛卡尔坐标数组 .. function:: GLOBAL DEF xyzSetMoveJParameters(movej_vel:IN, movej_acc:IN, movej_apo_dist:IN) 设置关节移动参数 :param movej_vel: 关节移动速度, 范围 0~100 :param movej_acc: 关节移动加速度, 范围 0~100 :param movej_apo_dist: 圆滑过渡半径, 范围 0~500 mm .. function:: GLOBAL DEF xyzSetMoveLParameters(movel_vel:IN, movel_acc:IN, movel_apo_dist:IN) 设置笛卡尔移动参数 :param movel_vel: 笛卡尔移动速度, 范围 0~100 :param movel_acc: 笛卡尔移动加速度, 范围 0~100 :param movel_apo_dist: 圆滑过渡半径, 范围 0~500 mm .. function:: GLOBAL DEFFCT INT xyzRecvAndParse() 接收并解析数据 :return: err_code :rtype: INT .. function:: GLOBAL DEF xyzOpenSocket(sock[]:IN) 根据 xml 连接指定 socket :param sock[]: socket 名称 :type sock[]: CHAR[] :return: err_code :rtype: INT .. function:: GLOBAL DEF xyzDlinActivate() 激活最大线速度,解决 move l 速度慢的问题。