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 支持传入变量传出 .. function:: GLOBAL DEF xyzOpenSocket(sock[]:IN) 根据 xml 连接指定 socket :param sock[]: socket 名称 :type sock[]: CHAR[] :return: err_code :rtype: INT .. function:: GLOBAL DEF xyzHeartBeat() :noindex: 定期发送心跳信号 .. function:: DEFFCT INT xyzSwitchApp(app_name[]:IN) :noindex: 切换应用 :param app_name[]: 应用名称 :type app_name[]: CHAR[] :return: err_code :rtype: INT .. function:: DEFFCT INT xyzSwitchFlow(flow_name[]:IN) :noindex: 切换流图 :param flow_name[]: 流图名称 :type flow_name[]: CHAR[] :return: err_code :rtype: INT .. function:: DEFFCT INT xyzSwitchTool(tool[]:IN) :noindex: 切换工具 :param tool[]: 工具名称 :type tool[]: CHAR[] :return: err_code :rtype: INT .. function:: DEFFCT INT xyzReqCapImg(vision_service_id:IN, token:OUT) :noindex: 请求拍照 :param vision_service_id: 需要进行拍照的视觉服务 id :type vision_service_id: INT :param token: 请求拍照结果 :type token: INT :return: err_code :rtype: INT .. function:: DEFFCT INT xyzGetCapImg(token:IN) :noindex: 获取拍照结果 :param token: 请求拍照时返回的 token :type token: INT :return: err_code :rtype: INT .. function:: DEFFCT INT xyzCapImg(vision_service_id:IN) :noindex: 拍照 :param vision_service_id: 需要进行拍照的视觉服务 id :type vision_service_id: INT :return: err_code :rtype: INT .. function:: DEFFCT INT xyzReqGraspPose(ws_id:IN, token:OUT) :noindex: 请求抓取位姿 :param ws_id: 需要获取抓取点位的工作空间id :type ws_id: INT :param token: 返回的用于获取目标点位时使用的token :type token: INT :return: err_code :rtype: INT .. function:: DEFFCT INT xyzGetGraspPose(token:IN, grasp_pose:OUT, grasp_pose_num:OUT, pipeline_num:OUT, register_num:OUT) :noindex: 获取抓取位姿 :param token: 求抓取目标点位时返回的token :type token: INT :param grasp_pose: 抓取位姿 :type grasp_pose: E6POS :param grasp_pose_num: 可供抓取的点数量 :param grasp_pose_num: INT :param pipeline_num: pipeline 编号 :param pipeline_id: INT :param register_num: 注册编号 :type priority: INT :return: err_code :rtype: INT .. function:: DEFFCT INT xyzReqObjPose(ws_id:IN, obj_token:OUT) :noindex: 请求物体位姿 :param ws_id: 需要获取物体位姿的工作空间id :type ws_id: INT :param obj_token: 物体位姿识别的token :type obj_token: INT :return: err_code :rtype: INT .. function:: DEFFCT INT xyzGetObjPose(token:IN, obj_pose:OUT, obj_pose_num:OUT, obj_pose_type: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_pose_type: 当前返回的物体 pose 类型 :type obj_pose_type: INT :return: err_code :rtype: INT .. function:: DEFFCT INT Task() :noindex: 重置任务 :return: err_code :rtype: INT .. function:: DEFFCT INT xyzSendCurrentJoints() :noindex: 发送机械臂当前角度:j1~j6: 机械臂当前的角度信息,如果机械臂轴数小于6轴,则需要对应位置补零,依旧发送六个数。 :return: err_code :rtype: INT .. function:: DEFFCT INT xyzSendCurrentCartPose() :noindex: 发送机械臂法兰当前位姿 :return: err_code :rtype: INT .. function:: DEFFCT INT xyzSendCurrentCartPose() :noindex: 发送机械臂当前扩展轴位置:j1~j6: 机械臂当前扩展轴的角度信息,如果扩展轴数不足6的,需要补零后发送六个数。 :return: err_code :rtype: INT .. function:: DEFFCT INT xyzReqPick() :noindex: 请求pick动作规划 :return: err_code :rtype: INT .. function:: DEFFCT INT xyzReqPlace() :noindex: 请求place动作规划 :return: err_code :rtype: INT .. function:: DEFFCT INT xyzReqPickPlace() :noindex: 请求pick和place规划 :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzGetPickin(ws_id:IN, pipeline_num:OUT, register_num:OUT, num:OUT, wp_type[]:OUT, joints[]:OUT, carts[]:OUT) :noindex: :param uws_id: 需要获取取料入框点位的工作空间id :type uws_id: INT :param pipeline_num: pipeline 编号 :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(ws_id:IN, pipeline_num:OUT, register_num:OUT, num:OUT, wp_type[]:OUT, joints[]:OUT, carts[]:OUT) :noindex: :param uws_id: 需要获取取料出框点位的工作空间id :type uws_id: INT :param pipeline_num: pipeline 编号 :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(ws_id:IN, pipeline_num:OUT, register_num:OUT, num:OUT, wp_type[]:OUT, joints[]:OUT, carts[]:OUT) :noindex: :param uws_id: 需要获取放料入框点位的工作空间id :type uws_id: INT :param pipeline_num: pipeline 编号 :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 获取放料入框轨迹 :param :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzGetPlaceout(ws_id:IN, pipeline_num:OUT, register_num:OUT, num:OUT, wp_type[]:OUT, joints[]:OUT, carts[]:OUT) :noindex: :param uws_id: 需要获取放料出框点位的工作空间id :type uws_id: INT :param pipeline_num: pipeline 编号 :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 DEF xyzParseTraj(pipeline_num:OUT, register_num:OUT, num:OUT,wp_type[]:OUT, joints[]:OUT, carts[]:OUT) 解析轨迹 :return: err_code : 错误码 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 .. fucntion:: 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:: DEFFCT INT xyzSwitchStrat(in_strat[]:IN) :noindex: 请求切换策略 :param in_strat[]: 策略名称 :type in_strat[]: CHAR[] :return: err_code :rtype: INT .. function:: DEFFCT INT xyzUpdateTotePose() :noindex: 料箱重定位(需手动扩展) :return: err_code :rtype: INT .. function:: DEFFCT INT xyzUpdateObjPoseOnHand() :noindex: 工件在上手的二次定位 :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzUpdateObjPoseToHand(pipeline_num:OUT, register_num:OUT, num:OUT, wp_type[]:OUT, joints[]:OUT, carts[]:OUT) :noindex: :param pipeline_num: pipeline 编号 :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::DEFFCT INT xyzGetObjPoseType() :noindex: 获取工件姿态类型(需手动扩展) :return: err_code :rtype: INT .. function::DEFFCT INT xyzResetPalletStatus() 重置工业码垛状态 :return: err_code :rtype: INT .. function:: DEFFCT INT xyzSwitchObj(obj_name[]:IN) :noindex: 切换工件 :param obj_name[]: 流图名称 :type obj_name[]: CHAR[] :return: err_code :rtype: INT .. function:: GLOBAL DEFFCT INT xyzCalculateGraspPose(ws_id:IN, grasp_pose:OUT, grasp_pose_num:OUT, pipeline_num:OUT, register_num:OUT) :noindex: 计算抓取目标点位 :param ws_id: 需要进行抓取的工作空间id :type ws_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 .. function:: GLOBAL DEFFCT INT xyzCalculateObjPose(ws_id:IN, obj_pose:OUT, obj_pose_num:OUT, pose_type:OUT) :noindex: 计算物体位姿 :param ws_id: 需要进行抓取的工作空间id :type ws_id: INT :param obj_pose: 物体位姿 :type obj_pose: E6POS :param obj_pose_num: 可供抓取的点数量 :type obj_pose_num: INT :param pose_type: 物体位姿类型 :type pose_type: INT