API 说明 ============================ nachi 工控机主控支持的 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 | 机械臂后台发送状态 | 支持 | +--------+-------------------------+----------+ 那智工控机主控定义了一些全局变量,不允许用户使用,占用情况如下(``VARIABLE.INC``): +---------------------------------------------------------------+ | 整数变量V% | +-----------+------------------------------+--------------------+ | 地址 | 含义 | 说明(是否用户可写) | +-----------+------------------------------+--------------------+ | V50% | 通讯连接标志位 | read only | +-----------+------------------------------+--------------------+ | V51% | motion_socket报错1 | read only | +-----------+------------------------------+--------------------+ | V52% | motion_socket报错2 | read only | +-----------+------------------------------+--------------------+ | V53% | 通讯接收长度 | read only | +-----------+------------------------------+--------------------+ | V54% | 内部使用 | read only | +-----------+------------------------------+--------------------+ | V55% | 内部使用 | read only | +-----------+------------------------------+--------------------+ | V56% | 通讯发送长度 | read only | +-----------+------------------------------+--------------------+ | V57% | 内部使用 | read only | +-----------+------------------------------+--------------------+ | V58% | 内部使用 | read only | +-----------+------------------------------+--------------------+ | V60% | 内部使用 | read only | +-----------+------------------------------+--------------------+ | V61% | status_socket报错1 | read only | +-----------+------------------------------+--------------------+ | V62% | status_socket报错2 | read only | +-----------+------------------------------+--------------------+ | V63% | 内部使用 | read only | +-----------+------------------------------+--------------------+ | V64% | 内部使用 | read only | +-----------+------------------------------+--------------------+ | V65% | 通讯发送长度 | read only | +-----------+------------------------------+--------------------+ | V80% | 服务端发送的cmd | read only | +-----------+------------------------------+--------------------+ | V81% | 服务端发送的acc | read only | +-----------+------------------------------+--------------------+ | V82% | 服务端发送的zone | read only | +-----------+------------------------------+--------------------+ | V83% | 服务端发送的port | read only | +-----------+------------------------------+--------------------+ | V84% | 服务端发送的signal | read only | +-----------+------------------------------+--------------------+ +-------------------------------------------------+ | 字符串变量V$ | +-----------+----------------+--------------------+ | 地址 | 含义 | 说明(是否用户可写) | +-----------+----------------+--------------------+ | V10$ | 内部使用 | x | +-----------+----------------+--------------------+ | V11$ | 所有收到信息 | read only | +-----------+----------------+--------------------+ | V21$ | 内部使用 | x | +-----------+----------------+--------------------+ | V22$ | 所有发送信息 | read only | +-----------+----------------+--------------------+ | V30$ | 显示错误消息 | read only | +-----------+----------------+--------------------+ | V31$ | 显示错误消息 | read only | +-----------+----------------+--------------------+ +------------------------------------------------------+ | 实数变量V! | +-------------+-------------------+--------------------+ | 地址 | 含义 | 说明(是否用户可写) | +-------------+-------------------+--------------------+ | V80!~V96! | 内部使用 | x | +-------------+-------------------+--------------------+ nachi 机械臂主控支持的 API +++++++++++++++++++++++++++++++++++ 那智部分全局变量已经被占用,不允许用户使用,占用情况如下(``VARIABLE.INC``): +---------------------------------------------------------------+ | 整数变量V% | +-----------+------------------------------+--------------------+ | 地址 | 含义 | 说明(是否用户可写) | +-----------+------------------------------+--------------------+ | V1% | 通讯连接标志位 | x | +-----------+------------------------------+--------------------+ | V2% | 发送命令标志位 | x | +-----------+------------------------------+--------------------+ | V3% | 服务端ip地址 | 可写 | +-----------+------------------------------+--------------------+ | V4% | 服务端端口号 | 可写 | +-----------+------------------------------+--------------------+ | V5% | 是否通讯失败 | read only | +-----------+------------------------------+--------------------+ | V6% | socket报错1 | read only | +-----------+------------------------------+--------------------+ | V7% | socket报错2 | read only | +-----------+------------------------------+--------------------+ | V8% | 内部使用 | x | +-----------+------------------------------+--------------------+ | V9% | 内部使用 | x | +-----------+------------------------------+--------------------+ | V10% | 内部使用 | x | +-----------+------------------------------+--------------------+ | V11% | 内部使用 | x | +-----------+------------------------------+--------------------+ | V12% | 发送的命令码 | read only | +-----------+------------------------------+--------------------+ | V13% | 设置发送给服务端的ws_id | 可写 | +-----------+------------------------------+--------------------+ | V14% | 设置发送给服务端的token | 可写 | +-----------+------------------------------+--------------------+ | V15%~V20% | 系统预留,勿用 | x | +-----------+------------------------------+--------------------+ | V21% | 服务端返回的error_code | read only | +-----------+------------------------------+--------------------+ | V22% | 服务端返回的token | read only | +-----------+------------------------------+--------------------+ | V23% | 服务端返回的grasp_pose_num | read only | +-----------+------------------------------+--------------------+ | V24% | 服务端返回的grasp_pose_type | read only | +-----------+------------------------------+--------------------+ | V25% | 服务端返回的obj_pose_num | read only | +-----------+------------------------------+--------------------+ | V26% | 服务端返回的obj_pose_type | read only | +-----------+------------------------------+--------------------+ | V27% | 服务端返回的轨迹点数量 | read only | +-----------+------------------------------+--------------------+ | V28% | 服务端返回的轨迹点pose_type | read only | +-----------+------------------------------+--------------------+ | V29%~V58% | 服务端返回的每个轨迹点的类型 | read only | | | (最多支持30个点) | | +-----------+------------------------------+--------------------+ +-------------------------------------------------+ | 字符串变量V$ | +-----------+----------------+--------------------+ | 地址 | 含义 | 说明(是否用户可写) | +-----------+----------------+--------------------+ | V1$ | 显示错误消息 | read only | +-----------+----------------+--------------------+ | V2$ | 内部使用 | x | +-----------+----------------+--------------------+ | V3$ | 内部使用 | x | +-----------+----------------+--------------------+ | V4$~V13$ | 内部使用 | x | +-----------+----------------+--------------------+ | V14$~V15$ | 系统预留,勿用 | x | +-----------+----------------+--------------------+ +------------------------------------------------------+ | 实数变量V! | +-------------+-------------------+--------------------+ | 地址 | 含义 | 说明(是否用户可写) | +-------------+-------------------+--------------------+ | V1! | x of grasp_pose | read only | +-------------+-------------------+--------------------+ | V2! | y of grasp_pose | read only | +-------------+-------------------+--------------------+ | V3! | z of grasp_pose | read only | +-------------+-------------------+--------------------+ | V4! | a of grasp_pose | read only | +-------------+-------------------+--------------------+ | V5! | b of grasp_pose | read only | +-------------+-------------------+--------------------+ | V6! | c of grasp_pose | read only | +-------------+-------------------+--------------------+ | V7! | x of object_pose | read only | +-------------+-------------------+--------------------+ | V8! | y of object_pose | read only | +-------------+-------------------+--------------------+ | V9! | z of object_pose | read only | +-------------+-------------------+--------------------+ | V10! | a of object_pose | read only | +-------------+-------------------+--------------------+ | V11! | b of object_pose | read only | +-------------+-------------------+--------------------+ | V12! | c of object_pose | read only | +-------------+-------------------+--------------------+ | V13! | x of tote_pose | read only | +-------------+-------------------+--------------------+ | V14! | y of tote_pose | read only | +-------------+-------------------+--------------------+ | V15! | z of tote_pose | read only | +-------------+-------------------+--------------------+ | V16! | a of tote_pose | read only | +-------------+-------------------+--------------------+ | V17! | b of tote_pose | read only | +-------------+-------------------+--------------------+ | V18! | c of tote_pose | read only | +-------------+-------------------+--------------------+ | V19!~V26! | 内部使用 | x | +-------------+-------------------+--------------------+ | V301!~V306! | 轨迹点1 | x | +-------------+-------------------+--------------------+ | V307!~V312! | 轨迹点2 | x | +-------------+-------------------+--------------------+ | ... | 轨迹点n | x | +-------------+-------------------+--------------------+ | V475!~V480! | 轨迹点30 | x | +-------------+-------------------+--------------------+ 机械臂主控支持的api定义在 ``USRPROC.INC``: .. function:: MasterInit() :noindex: 初始化各变量 .. function:: xyzMasterConnect() :noindex: 连接server,需要事先将ip地址设置到 ``V3%``, 端口号设置到 ``V4%`` .. function:: xyzSwitchApp(app_name) :noindex: 切换app :param app_name: app的名称 :type app_name: STRING .. function:: xyzSwitchObj(obj_name) :noindex: 切换工件 :param obj_name: app的名称 :type obj_name: STRING .. function:: xyzSwitchTool(tool_id) :noindex: 切换工具 :param tool_id: 工具名称 :type tool_id: STRING .. function:: xyzReqCapImg() :noindex: 请求拍照,需要事先将ws_id设置到 ``V13%`` 返回的token存放在 ``V22%`` .. function:: xyzGetCapImg() :noindex: 获取拍照结果,需要事先将想查找的token设置到 ``V14%`` .. function:: xyzCapImg() :noindex: 拍照并获取结果,等价于xyzReqCapImg() + xyzGetCapImg()。 需要事先将ws_id设置到 ``V13%`` .. function:: xyzReqGraspPose() :noindex: 请求抓取目标点位,需要事先将ws_id设置到 ``V13%`` 返回的token存放在 ``V22%`` .. function:: xyzGetGraspPose() :noindex: 获取抓取点位,需要事先将想查找的token设置到 ``V14%`` 返回的抓取点信息存放在 ``V23%``, ``V24%``, ``V1!~V6!`` .. function:: xyzReqObjPose() :noindex: 请求物体位姿,需要事先将ws_id设置到 ``V13%`` 返回的token存放在 ``V22%`` .. function:: xyzGetObjPose() :noindex: 获取物体位姿,需要事先将想查找的token设置到 ``V14%`` 返回的物体位姿存放在 ``V25%``, ``V26%``, ``V7!~V12!`` .. function:: xyzResetVision() :noindex: 重置视觉,需要事先将ws_id设置到 ``V13%`` .. function:: xyzSendCurrentJoints() :noindex: 发送机械臂当前角度 .. function:: xyzSendCurrentCartPose() :noindex: 发送机械臂当前Cartesian .. function:: xyzSendCurrentExtJoints() :noindex: 发送机械臂当前扩展轴位置,该指令暂不支持 .. function:: xyzReqPick() :noindex: 请求pick动作规划 .. function:: xyzReqPlace() :noindex: 请求place动作规划 .. function:: xyzReqPickPlace() :noindex: 请求pick和place规划 .. function:: xyzGetPickIn() :noindex: 获取取料入框轨迹,轨迹点信息存放在 ``V27%``, ``V28%`` 等 .. function:: xyzGetPickOut() :noindex: 获取取料出框轨迹,轨迹点信息存放在 ``V27%``, ``V28%`` 等 .. function:: xyzGetPlaceIn() :noindex: 获取放料入框轨迹,轨迹点信息存放在 ``V27%``, ``V28%`` 等 .. function:: xyzGetPlaceOut() :noindex: 获取放料出框轨迹,轨迹点信息存放在 ``V27%``, ``V28%`` 等 .. function:: xyzSwitchStrat(strat_name) :noindex: 请求切换策略 :param strat_name: 策略名称 :type strat_name: STRING .. function:: xyzUpdateTotePose() :noindex: 料箱重定位,新的料箱位姿存放在 ``V13! ~ V18!`` .. function:: xyzUpdateObjPoseOnHand() :noindex: 工件在手上的二次定位 .. function:: xyzUpdateObjPoseToHand() :noindex: 工件不在手上的二次定位,轨迹点信息存放在 ``V27%``, ``V28%`` 等 .. function:: xyzGetObjPoseType() :noindex: 获取工件姿态类型,返回的姿态类型存放在 ``V26%`` .. function:: xyzResetPalletStatus() :noindex: 重置工业码垛状态