API 说明 ============================ abb 工控机主控支持的 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 | 机械臂后台发送状态 | 支持 | +--------+-------------------------+----------+ abb 机械臂主控支持的 API +++++++++++++++++++++++++++++++++++ .. function:: PROC xyzCreateSocket(VAR socketdev sock) :noindex: 创建套接字 :param sock: 套接字 :type sock: VAR socketdev .. function:: PROC xyzConnect(VAR socketdev sock, string ip, num port) :noindex: 连接到服务器 :param sock: 套接字 :type sock: VAR socketdev :param ip: 服务器ip地址 :type ip: string :param port: 服务器端口号 :type sock: num .. function:: PROC xyzClose(VAR socketdev sock) :noindex: 关闭套接字 :param sock: 套接字 :type sock: VAR socketdev .. function:: FUNC num xyzHeartBeat() :noindex: 给上位机发送心跳信号 :return: err_code :rtype: num .. function:: FUNC num xyzSwitchTask(string task_codename) :noindex: 切换任务 :param task_codename: 任务代号 :type task_codename: string :return: err_code :rtype: num .. function:: FUNC num xyzSwitchTool(num tool_id) :noindex: 切换工具 :param tool_id: 工具id :type tool_id: num :return: err_code :rtype: num .. function:: FUNC num xyzCallVisionCmd(num vs_id, string vision_codename) :noindex: 呼叫视觉 :param vs_id: 视觉服务id :type vs_id: num :param vision_codename: 呼叫视觉的指令代号 :type vision_codename: string :return: err_code :rtype: num .. function:: FUNC num xyzReqGraspPose(num vs_id, VAR num token) :noindex: 请求抓取目标点位 :param vs_id: 视觉服务id :type vs_id: num :param token[out]: 在执行“获取抓取目标点位”时使用到 :type token[out]: num :return: err_code :rtype: num .. function:: FUNC num xyzGetGraspPose(num token, VAR num pose_num, VAR num pipeline_num, VAR num register_num, VAR robtarget grasp_pose, VAR num out_ints{*}) :noindex: 获取抓取目标点位 :param token: “请求抓取目标点位”中返回的token :type token: num :param pose_num[out]: 当前可供抓取的点位数量 :type pose_num[out]: num :param pipeline_num[out]: 运动流程编号 :type pipeline_num[out]: num :param register_num[out]: 抓取序号 :type register_num[out]: num :param grasp_pose[out]: 抓取位姿 :type grasp_pose[out]: pose :param out_ints[out]: 自定义数据的int数组(数组大小为6),可在Task中自定义含义 :type out_ints[out]: Array of num :return: err_code :rtype: num .. function:: FUNC num xyzReqObjPose(num vs_id, VAR num token) :noindex: 请求物体位姿 :param vs_id: 视觉服务id :type vs_id: num :param token[out]: 在执行”获取物体位姿“时使用到 :type token[out]: num :return: err_code :rtype: num .. function:: FUNC num xyzGetObjPose(num token, VAR num pose_num, VAR pose obj_pose, VAR string object_name, VAR num out_ints{*}) :noindex: 获取物体位姿 :param token: “请求物体位姿”中返回的token :type token: num :param pose_num[out]: 当前物体位姿个数 :type pose_num[out]: num :param obj_pose[out]: 物体位姿 :type obj_pose[out]: pose :param object_name[out]: 物体名称 :type object_name[out]: string :param out_ints[out]: 自定义数据的int数组(数组大小为6),可在Task中自定义含义 :type out_ints[out]: Array of num :return: err_code :rtype: num .. function:: FUNC num xyzResetTask() :noindex: 重置任务 :return: err_code :rtype: num .. function:: FUNC num xyzSendCurrentJoints(jointtarget joints) :noindex: 发送特定关节角 :param joints: 传入的关节角坐标 :type joints: jointtarget :return: err_code :rtype: num .. function:: FUNC num xyzSendCurrentCartPose(robtarget cart_pose) :noindex: 发送特定位姿 :param cart_pose: 传入的笛卡尔坐标 :type cart_pose: robtarget :return: err_code :rtype: num .. function:: FUNC num xyzSendCurrentExtJoints(num ext_joints{*}) :noindex: 发送特定角度数组 :param ext_joints{*}: 传入角度数组 :type ext_joints{*}: num :return: err_code :rtype: num .. function:: FUNC num xyzReqPickPlace(num vs_id) :noindex: 请求抓放规划 :param vs_id: 视觉服务id :type vs_id: num :return: err_code :rtype: num .. function:: FUNC num xyzGetPickin(num vs_id, VAR num pose_num, VAR num pipeline_num, VAR num register_num, VAR num wp_type{*}, VAR jointtarget joint_wp{*}, VAR robtarget cart_wp{*}) :noindex: 获取取料入框轨迹 :param vs_id: 视觉服务id :type vs_id: num :param pose_num[out]: 轨迹中的点位数量 :type pose_num[out]: num :param pipeline_num[out]: 运动流程编号 :type pipeline_num[out]: num :param register_num[out]: 抓取序号 :type register_num[out]: num :param wp_type{*}[out]: 轨迹点类型数组 :type wp_type{*}[out]: num :param joint_wp{*}[out]: 轨迹点角度数组 :type joint_wp{*}[out]: jointtarget :param cart_wp{*}[out]: 轨迹点位姿数组 :type cart_wp{*}[out]: robtarget :return: err_code :rtype: num .. function:: FUNC num xyzGetPickout(num vs_id, VAR num pose_num, VAR num pipeline_num, VAR num register_num, VAR num wp_type{*}, VAR jointtarget joint_wp{*}, VAR robtarget cart_wp{*}) :noindex: 获取取料出框轨迹 :param vs_id: 视觉服务id :type vs_id: num :param pose_num[out]: 轨迹中的点位数量 :type pose_num[out]: num :param pipeline_num[out]: 运动流程编号 :type pipeline_num[out]: num :param register_num[out]: 抓取序号 :type register_num[out]: num :param wp_type{*}[out]: 轨迹点类型数组 :type wp_type{*}[out]: num :param joint_wp{*}[out]: 轨迹点角度数组 :type joint_wp{*}[out]: jointtarget :param cart_wp{*}[out]: 轨迹点位姿数组 :type cart_wp{*}[out]: robtarget :return: err_code :rtype: num .. function:: FUNC num xyzGetPlacein(num vs_id, VAR num pose_num, VAR num pipeline_num, VAR num register_num, VAR num wp_type{*}, VAR jointtarget joint_wp{*}, VAR robtarget cart_wp{*}) :noindex: 获取放料入框轨迹 :param vs_id: 视觉服务id :type vs_id: num :param pose_num[out]: 轨迹中的点位数量 :type pose_num[out]: num :param pipeline_num[out]: 运动流程编号 :type pipeline_num[out]: num :param register_num[out]: 抓取序号 :type register_num[out]: num :param wp_type{*}[out]: 轨迹点类型数组 :type wp_type{*}[out]: num :param joint_wp{*}[out]: 轨迹点角度数组 :type joint_wp{*}[out]: jointtarget :param cart_wp{*}[out]: 轨迹点位姿数组 :type cart_wp{*}[out]: robtarget :return: err_code :rtype: num .. function:: FUNC num xyzGetPlaceout(num vs_id, VAR num pose_num, VAR num pipeline_num, VAR num register_num, VAR num wp_type{*}, VAR jointtarget joint_wp{*}, VAR robtarget cart_wp{*}) :noindex: 获取放料出框轨迹 :param vs_id: 视觉服务id :type vs_id: num :param pose_num[out]: 轨迹中的点位数量 :type pose_num[out]: num :param pipeline_num[out]: 运动流程编号 :type pipeline_num[out]: num :param register_num[out]: 抓取序号 :type register_num[out]: num :param wp_type{*}[out]: 轨迹点类型数组 :type wp_type{*}[out]: num :param joint_wp{*}[out]: 轨迹点角度数组 :type joint_wp{*}[out]: jointtarget :param cart_wp{*}[out]: 轨迹点位姿数组 :type cart_wp{*}[out]: robtarget :return: err_code :rtype: num .. function:: FUNC num xyzUpdateTotePose(num vs_id) :noindex: 料箱重定位 :param vs_id: 视觉服务id :type vs_id: num :return: err_code :rtype: num .. function:: FUNC num xyzUpdateObjPoseInHand(VAR robtarget pose) :noindex: 工件在手上的二次定位 :param pose[out]: 放置位姿数据 :type pose[out]: robtarget :return: err_code :rtype: num .. function:: FUNC num xyzSwitchItem(int vs_id, string item_codename) :noindex: 切换工件 :param vs_id: 视觉服务id :type vs_id: num :param item_codename: 工件代号 :type item_codename: string :return: err_code :rtype: num .. function:: FUNC num xyzCalculateGraspPose(num vs_id, VAR num pose_num, VAR num pipeline_num, VAR num register_num, VAR robtarget grasp_pose, VAR num out_ints{*}) :noindex: 计算抓取目标点位,该指令等价于 xyzReqGraspPose +xyzGetGraspPose :param vs_id: 视觉服务id :type vs_id: num :param pose_num[out]: 当前可供抓取的点位数量 :type pose_num[out]: num :param pipeline_num[out]: 运动流程编号 :type pipeline_num[out]: num :param register_num[out]: 抓取序号 :type register_num[out]: num :param grasp_pose[out]: 抓取位姿 :type grasp_pose[out]: pose :param out_ints[out]: 自定义数据的int数组(数组大小为6),可在Task中自定义含义 :type out_ints[out]: Array of num :return: err_code :rtype: num .. function:: FUNC num xyzCalculateObjectPose(num vs_id, VAR num pose_num, VAR pose obj_pose, VAR string object_name, VAR num out_ints{*}) :noindex: 计算物体位姿,该指令等价于 xyzReqObjPose + xyzGetObjPose :param vs_id: 工作空间 id :type vs_id: num :param pose_num[out]: 当前物体位姿个数 :type pose_num[out]: num :param obj_pose[out]: 物体位姿 :type obj_pose[out]: pose :param object_name[out]: 物体名称 :type object_name[out]: string :param out_ints[out]: 自定义数据的int数组(数组大小为6),可在Task中自定义含义 :type out_ints[out]: Array of num :return: err_code :rtype: num .. function:: FUNC num xyzUsrCmd(string in_strings{*}, num in_ints{*}, num in_floats{*}, robtarget in_cart, jointtarget in_joints, VAR string out_strings{*}, VAR num out_ints{*}, VAR num out_floats{*}, VAR robtarget out_cart, VAR jointtarget out_joints) :noindex: 用户指令,用于基础指令不支持的情况下,配合任务流图完成用户特定功能。各个参数的含义取决于任务流图中设定的输入输出。 :param in_strings: 发送给工控机的字符串数组,数组长度为5 :type in_strings: string{5} :param in_ints: 发送给工控机的整型数组,数组长度需为10 :type in_ints: num{10} :param in_floats: 发送给工控机的浮点数数组,数组长度为10 :type in_floats: num{10} :param in_cart: 发送给工控机的笛卡尔位姿 :type in_cart: robtarget :param in_joints: 发送给工控机的关节角度 :type in_joints: jointtarget :param out_strings[out]: 工控机发送给机械臂的字符串数组要存放的变量,数组长度为5 :type out_strings[out]: string{5} :param out_ints[out]: 工控机发送给机械臂的整型数组要存放的变量,数组长度为10 :type out_ints[out]: num{10} :param out_floats[out]: 工控机发送给机械臂的浮点数数组要存放的变量,数组长度为10 :type out_floats[out]: num{10} :param out_cart[out]: 工控机发送给机械臂的笛卡尔位姿要存放的变量 :type out_cart[out]: robtarget :param out_joints[out]: 工控机发送给机械臂的关节角度值要存放的变量 :type out_joints[out]: jointtarget