API 说明 ============================ efort 工控机主控支持的 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 | 机械臂后台发送状态 | 支持 | +--------+-------------------------+----------+ efort 机械臂主控支持的 API +++++++++++++++++++++++++++++++++++ .. function:: xyzConnectSocket() :noindex: 连接服务端(工控机) .. function:: xyzSwitchTask(task_codename) :noindex: 切换任务 :param task_codename: 任务代号 :type task_codename: STRING :return: err_code(DINT) .. function:: xyzSwitchTool(tool_id) :noindex: 切换工具 :param tool_id: 工具id :type tool_id: DINT :return: err_code(DINT) .. function:: xyzCallVisionCmd(vs_id, vision_codename) :noindex: 呼叫视觉命令 :param vs_id: 视觉服务id :type vs_id: DINT :param vision_codename: 视觉命令代号 :type vision_codename: STRING :return: err_code(DINT) .. function:: xyzReqGraspPose(vs_id) :noindex: 请求抓取目标点位 :param vs_id: 视觉服务id :type vs_id: DINT :return: err_code(DINT) :return: token(DINT): 在执行”获取抓取目标点位“时使用到 .. function:: xyzGetGraspPose(token) :noindex: 获取抓取目标点位 :param token: “请求抓取目标点位”中返回的token :type token: DINT :return: err_code(DINT) :return: grasp_pose(POINTC): 抓取位姿 :return: num(DINT): 当前可供抓取的点位数量 :return: pipeline_num(DINT): 运动流程编号 :return: register_num(DINT): 抓取序号 :return: int1(DINT): 可在Task中自定义含义 :return: int2(DINT): 可在Task中自定义含义 :return: int3(DINT): 可在Task中自定义含义 :return: int4(DINT): 可在Task中自定义含义 :return: int5(DINT): 可在Task中自定义含义 :return: int6(DINT): 可在Task中自定义含义 .. function:: xyzReqObjPose(vs_id) :noindex: 请求物体位姿 :param vs_id: 视觉服务id :type vs_id: DINT :return: err_code(DINT) :return: token(DINT): 在执行”获取物体位姿“时使用到 .. function:: xyzGetObjPose(token) :noindex: 获取物体位姿 :param token: “请求物体位姿”中返回的token :type token: DINT :return: err_code(DINT) :return: obj_pose(POINTC): 物体的位姿数据 :return: num(DINT): 当前物体位姿个数 :return: int1(DINT): 可在Task中自定义含义 :return: int2(DINT): 可在Task中自定义含义 :return: int3(DINT): 可在Task中自定义含义 :return: int4(DINT): 可在Task中自定义含义 :return: int5(DINT): 可在Task中自定义含义 :return: int6(DINT): 可在Task中自定义含义 .. function:: xyzResetTask() :noindex: 重置任务 :return: err_code(DINT) .. function:: xyzSendCurrentJoints() :noindex: 发送机器人当前关节坐标 :return: err_code(DINT) .. function:: xyzSendCurrentCartPose() :noindex: 发送机器人当前笛卡尔坐标 :return: err_code(DINT) .. function:: xyzSendCurrentExtJoints() :noindex: 发送机器人当前扩展轴坐标,暂不支持 .. function:: xyzReqPickPlace(vs_id) :noindex: 请求抓放规划 :param vs_id: 视觉服务id :type vs_id: DINT :return: err_code(DINT) .. function:: xyzGetPickin(vs_id) :noindex: 获取取料入框轨迹 :param vs_id: 视觉服务id :type vs_id: DINT :return: err_code(DINT) :return: num(DINT): 轨迹点数量 :return: pipeline_num(DINT): 运动流程编号 :return: register_num(DINT): 抓取序号 :return: 轨迹:因函数不支持传出数组,轨迹点位信息这里不做函数输出,而是将轨迹信息保存在功能块变量(全局变量) **gInCarts**, **gWpType**, **gInJoints** 中 .. function:: xyzGetPickout(vs_id) :noindex: 获取取料出框轨迹 :param vs_id: 视觉服务id :type vs_id: DINT :return: err_code(DINT) :return: num(DINT): 轨迹点数量 :return: pipeline_num(DINT): 运动流程编号 :return: register_num(DINT): 抓取序号 :return: 轨迹:因函数不支持传出数组,轨迹点位信息这里不做函数输出,而是将轨迹信息保存在功能块变量(全局变量) **gInCarts**, **gWpType**, **gInJoints** 中 .. function:: xyzGetPlaceIn(vs_id) :noindex: 获取放料入框轨迹 :param vs_id: 视觉服务id :type vs_id: DINT :return: err_code(DINT) :return: num(DINT): 轨迹点数量 :return: pipeline_num(DINT): 运动流程编号 :return: register_num(DINT): 抓取序号 :return: 轨迹:因函数不支持传出数组,轨迹点位信息这里不做函数输出,而是将轨迹信息保存在功能块变量(全局变量) **gInCarts**, **gWpType**, **gInJoints** 中 .. function:: xyzGetPlaceOut(vs_id) :noindex: 获取放料出框轨迹 :param vs_id: 视觉服务id :type vs_id: DINT :return: err_code(DINT) :return: num(DINT): 轨迹点数量 :return: pipeline_num(DINT): 运动流程编号 :return: register_num(DINT): 抓取序号 :return: 轨迹:因函数不支持传出数组,轨迹点位信息这里不做函数输出,而是将轨迹信息保存在功能块变量(全局变量) **gInCarts**, **gWpType**, **gInJoints** 中 .. function:: xyzExecutePickInTraj(num) :noindex: 用于执行PickIn轨迹,特点是执行最后一个轨迹点时速度较慢。 具体速度、圆滑等参数可以根据需要自行修改 :param num: 轨迹点的点位数量 :type num: DINT .. function:: xyzExecutePickOutTraj(num) :noindex: 用于执行PickOut轨迹,特点是第一个轨迹点执行速度较慢。 具体速度、圆滑等参数可以根据需要自行修改 :param num: 轨迹点的点位数量 :type num: DINT .. function:: xyzExecuteTraj(num) :noindex: 用于执行轨迹,特点是全程用一个速度、圆滑参数。 具体速度、圆滑等参数可以根据需要自行修改 :param num: 轨迹点的点位数量 :type num: DINT .. function:: xyzUpdateTotePose(vs_id) :noindex: 料箱重定位 :param vs_id: 视觉服务id :type vs_id: DINT :return: err_code(DINT) .. function:: xyzUpdateObjPoseInHand() :noindex: 工件在手上的二次定位 :return: err_code(DINT) :return: place_pose(POINTC): 放置位姿数据 .. function:: xyzSwitchItem(vs_id, item_codename) :noindex: 切换工件 :param vs_id: 视觉服务id :type vs_id: DINT :param item_codename: 工件代号 :type item_codename: STRING :return: err_code(DINT) .. function:: xyzCalculateGraspPose(vs_id) :noindex: 计算抓取目标点位 :param vs_id: 视觉服务id :type vs_id: DINT :return: err_code(DINT) :return: grasp_pose(POINTC): 抓取位姿 :return: num(DINT): 当前可供抓取的点位数量 :return: pipeline_num(DINT): 运动流程编号 :return: register_num(DINT): 抓取序号 :return: int1(DINT): 可在Task中自定义含义 :return: int2(DINT): 可在Task中自定义含义 :return: int3(DINT): 可在Task中自定义含义 :return: int4(DINT): 可在Task中自定义含义 :return: int5(DINT): 可在Task中自定义含义 :return: int6(DINT): 可在Task中自定义含义 .. function:: xyzCalculateObjectPose(vs_id) :noindex: 计算物体位姿 :param vs_id: 视觉服务id :type vs_id: DINT :return: err_code(DINT) :return: obj_pose(POINTC): 物体的位姿数据 :return: num(DINT): 当前物体位姿个数 :return: int1(DINT): 可在Task中自定义含义 :return: int2(DINT): 可在Task中自定义含义 :return: int3(DINT): 可在Task中自定义含义 :return: int4(DINT): 可在Task中自定义含义 :return: int5(DINT): 可在Task中自定义含义 :return: int6(DINT): 可在Task中自定义含义 .. function:: xyzClearUserCommandData() :noindex: 清空用户指令的请求数据(**使用xyzUserCommand前,必须调用**) .. function:: xyzUserCommand() :noindex: 用户指令,用于基础指令不支持的情况下,配合任务流图完成用户特定功能。 使用请按照参照 ``XYZ_MASTER.XPL`` 的子程序 ``Main_example`` 发送给工控机(使用功能块变量/全局变量): in_strs[1..5] :提供5个STRING供用户输入 in_ints[1..10]:提供10个DINT类型供用户输入 in_floats[1..10]:提供10个LREAL供用户输入 in_cart_pose:提供1个POINTC供用户输入 in_joints:提供1个POINTJ供用户输入 工控机返回(使用功能块变量/全局变量): out_strs[1..5]:返回5个STRING out_ints[1..10]:返回10个DINT out_floats[1..10]:返回10个LREAL out_cart_pose:返回1个POINTC out_joints:返回1个POINTJ :return: err_code(DINT)