API 说明 ============================ fanuc 工控机主控支持的 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 | 机械臂后台发送状态 | 支持 | +--------+-------------------------+----------+ fanuc 机械臂主控支持的 API +++++++++++++++++++++++++++++++++++ .. function:: RUN XYZ_BKGD :noindex: 运行后台程序 后台程序会和工控机进行通信连接和收发数据。连接是否成功的的状态会写到第五个数值寄存器中,成功会给寄存器赋值为1,失败则赋值为0。 通信过程中,如果存在收发失败会给第六个数字寄存器赋值,收发数据失败会赋值为0,收发数据成功则会赋值为1。每一条指令均会和工控机 进行一次收发动作。 :param none: 无,状态均直接反馈到数值寄存器 R[5]表示连接是否成功 R[6]表示通信是否有异常 .. function:: CALL XYZ_ABT_BKGD :noindex: 中止后台程序XYZ_BKGD的运行 中止时也会关闭后台套接字和工控机的连接。 .. function:: CALL XYZ_SW_APP('app_name') :noindex: 切换应用 :param app_name: 应用名称 :type app_name: string .. function:: CALL XYZ_SW_ITEM(ws_id,'item_codename') :noindex: 切换工件 :param ws_id: 工作空间 id :type ws_id: INT :param item_codename: 工件名称 :type item_codename: string .. function:: CALL XYZ_SW_FLW('flw_name') :noindex: 切换flow :param flw_name: flow名称 :type flow_name: string .. function:: CALL XYZ_SW_TOOL('tool_name') :noindex: 切换工具 :param tool_name: 工具名称 :type tool_name: string .. function:: CALL XYZ_R_CAPIMG(vision_service_id) :noindex: 请求拍照 :param vision_service_id: 视觉服务 id :type vision_service_id: INT .. function:: CALL XYZ_G_CAPIMG(R[11]) :noindex: 获取拍照结果 :param R[11]: 请求拍照时返回的 token 寄存器地址 .. function:: CALL XYZ_CAPIMG(vision_service_id) :noindex: 拍照 :param vision_service_id: 视觉服务 id :type vision_service_id: INT .. function:: CALL XYZ_R_G_POSE(ws_id) :noindex: 请求抓取位姿 :param ws_id: 需要获取抓取点位的工作空间id :type ws_id: INT .. function:: CALL XYZ_G_G_POSE(R[11]) :noindex: 获取抓取位姿 :param R[11]: 求抓取目标点位时返回的 token 寄存器地址 .. function:: CALL XYZ_R_O_POSE(ws_id) :noindex: 请求物体位姿 :param ws_id: 需要获取物体位姿的工作空间id :type ws_id: INT .. function:: CALL XYZ_G_O_POSE(R[11]) :noindex: 获取物体位姿 :param R[11]: 请求物体位姿时得到的 token 寄存器地址 .. function:: CALL XYZ_RESET_V(ws_id) :noindex: 重置视觉 :param ws_id: 需要重置视觉的工作空间id :type ws_id: INT .. function:: CALL XYZ_S_JOINTS(rgx_number) :noindex: 发送机械臂当前角度:j1~j6: 机械臂当前的角度信息,如果机械臂轴数小于6轴,则需要对应位置补零,依旧发送六个数。 :param rgx_number: 指定存储当前机械臂关节角度的寄存器地址,用来传给后台发送。可以任意指定,比如 50 :type rgx_number: INT .. function:: CALL XYZ_S_C_POSE(rgx_number) :noindex: 发送机械臂法兰当前位姿 :param rgx_number: 指定存储当前机械臂法兰位姿的寄存器地址,用来传给后台发送。可以任意指定,比如 51 :type rgx_number: INT .. function:: CALL XYZ_S_EXT_J(rgx_number) :noindex: 发送机械臂当前扩展轴位置:j1~j6: 机械臂当前扩展轴的角度信息,如果扩展轴数不足6的,需要补零后发送六个数。 :param rgx_number: 指定存储当前机械臂扩展轴位置的寄存器地址,用来传给后台发送。可以任意指定,比如 52 :type rgx_number: INT .. function:: CALL XYZ_R_PICK :noindex: 请求pick动作规划 .. function:: CALL XYZ_R_PLACE :noindex: 请求place动作规划 .. function:: CALL XYZ_R_PICPLA :noindex: 请求pick和place规划 .. function:: CALL XYZ_G_PICIN :noindex: 获取取料入筐轨迹 .. function:: CALL XYZ_G_PICOUT :noindex: 获取取料出筐轨迹 .. function:: CALL XYZ_G_PLAIN :noindex: 获取放料入筐轨迹 .. function:: CALL XYZ_G_PLAOUT :noindex: 获取放料出筐轨迹 .. function:: CALL XYZ_SW_STRAT('strat1') :noindex: 请求切换策略 :param strat1: 策略名称 :type: string .. function:: CALL XYZ_U_T_POSE :noindex: 料箱重定位 .. function:: CALL XYZ_U_OBJ_OH :noindex: 工件在上手的二次定位 .. function:: CALL XYZ_U_OBJ_TH :noindex: 工件不在手上的二次定位 .. function:: CALL XYZ_G_OBJ_PT :noindex: 获取工件姿态类型 .. function:: CALL XYZ_RESET_PS :noindex: 重置工业码垛状态 .. function:: CALL XYZ_EXECTRAJ(traj_flag) :noindex: 执行轨迹。 :param traj_flag: 执行轨迹标志位若为 2,执行抓取入筐;若为 3,执行抓取出筐;若为 4,执行放置入筐;若为 5,执行放置出筐。 .. function:: CALL XYZ_C_G_POSE(ws_id) :noindex: 计算抓取位姿 :param ws_id: 工作空间id :type ws_id: INT .. function:: CALL XYZ_C_O_POSE(ws_id) :noindex: 计算物体位姿 :param ws_id: 工作空间id :type ws_id: INT .. function:: CALL XYZ_USR_CMD() :noindex: 自定义请求 :param none: 无,所有输入输出均直接修改寄存器,寄存器的使用情况如下: SR[6]~SR[10]为下位机发送的字符串,不能为空 R[70]~R[79]为下位机发送的整数 R[80]~R[89]为下位机发送的浮点数 PR[2]为下位机发送的一组关节角 PR[6]为下位机发送的一个笛卡尔坐标 SR[1]~SR[5]为下位机接收的字符串 R[50]~R[59]为下位机接收的整数 R[60]~R[69]为下位机接收的浮点数 PR[1]为下位机接收的一组关节角 PR[5]为下位机接收的一个笛卡尔坐标