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 支持传入变量传出

GLOBAL DEF xyzOpenSocket(sock[]:IN)

根据 xml 连接指定 socket

参数

sock[] (CHAR[]) – socket 名称

返回

err_code

返回类型

INT

GLOBAL DEF xyzHeartBeat()

定期发送心跳信号

DEFFCT INT xyzSwitchApp(app_name[]:IN)

切换应用

参数

app_name[] (CHAR[]) – 应用名称

返回

err_code

返回类型

INT

DEFFCT INT xyzSwitchFlow(flow_name[]:IN)

切换流图

参数

flow_name[] (CHAR[]) – 流图名称

返回

err_code

返回类型

INT

DEFFCT INT xyzSwitchTool(tool[]:IN)

切换工具

参数

tool[] (CHAR[]) – 工具名称

返回

err_code

返回类型

INT

DEFFCT INT xyzReqCapImg(vision_service_id:IN, token:OUT)

请求拍照

参数
  • vision_service_id (INT) – 需要进行拍照的视觉服务 id

  • token (INT) – 请求拍照结果

返回

err_code

返回类型

INT

DEFFCT INT xyzGetCapImg(token:IN)

获取拍照结果

参数

token (INT) – 请求拍照时返回的 token

返回

err_code

返回类型

INT

DEFFCT INT xyzCapImg(vision_service_id:IN)

拍照

参数

vision_service_id (INT) – 需要进行拍照的视觉服务 id

返回

err_code

返回类型

INT

DEFFCT INT xyzReqGraspPose(ws_id:IN, token:OUT)

请求抓取位姿

参数
  • ws_id (INT) – 需要获取抓取点位的工作空间id

  • token (INT) – 返回的用于获取目标点位时使用的token

返回

err_code

返回类型

INT

DEFFCT INT xyzGetGraspPose(token:IN, grasp_pose:OUT, grasp_pose_num:OUT, pipeline_num:OUT, register_num:OUT)

获取抓取位姿

参数
  • token (INT) – 求抓取目标点位时返回的token

  • grasp_pose (E6POS) – 抓取位姿

  • grasp_pose_num – 可供抓取的点数量

  • grasp_pose_num – INT

  • pipeline_num – pipeline 编号

  • pipeline_id – INT

  • register_num – 注册编号

返回

err_code

返回类型

INT

DEFFCT INT xyzReqObjPose(ws_id:IN, obj_token:OUT)

请求物体位姿

参数
  • ws_id (INT) – 需要获取物体位姿的工作空间id

  • obj_token (INT) – 物体位姿识别的token

返回

err_code

返回类型

INT

DEFFCT INT xyzGetObjPose(token:IN, obj_pose:OUT, obj_pose_num:OUT, obj_pose_type:OUT)

获取物体位姿

参数
  • token (INT) – 请求物体位姿时得到的token

  • obj_pose (E6POS) – 物体位姿

  • obj_pose_num (INT) – 物体数量

  • obj_pose_type (INT) – 当前返回的物体 pose 类型

返回

err_code

返回类型

INT

DEFFCT INT Task()

重置任务

返回

err_code

返回类型

INT

DEFFCT INT xyzSendCurrentJoints()

发送机械臂当前角度:j1~j6: 机械臂当前的角度信息,如果机械臂轴数小于6轴,则需要对应位置补零,依旧发送六个数。

返回

err_code

返回类型

INT

DEFFCT INT xyzSendCurrentCartPose()

发送机械臂法兰当前位姿

返回

err_code

返回类型

INT

DEFFCT INT xyzSendCurrentCartPose()

发送机械臂当前扩展轴位置:j1~j6: 机械臂当前扩展轴的角度信息,如果扩展轴数不足6的,需要补零后发送六个数。

返回

err_code

返回类型

INT

DEFFCT INT xyzReqPick()

请求pick动作规划

返回

err_code

返回类型

INT

DEFFCT INT xyzReqPlace()

请求place动作规划

返回

err_code

返回类型

INT

DEFFCT INT xyzReqPickPlace()

请求pick和place规划

返回

err_code

返回类型

INT

GLOBAL DEFFCT INT xyzGetPickin(ws_id:IN, pipeline_num:OUT, register_num:OUT, num:OUT, wp_type[]:OUT, joints[]:OUT, carts[]:OUT)
参数
  • uws_id (INT) – 需要获取取料入框点位的工作空间id

  • pipeline_num (INT) – pipeline 编号

  • register_num (INT) – 注册编号

  • num (INT) – 可供抓取的点数量

  • wp_type[] (INT) – 轨迹点位类型数组

  • joints[] (E6AXIS) – 关节点位数组

  • carts[] (E6POS) – 笛卡尔点位数组

获取取料入框轨迹

返回

err_code

返回类型

INT

GLOBAL DEFFCT INT xyzGetPickout(ws_id:IN, pipeline_num:OUT, register_num:OUT, num:OUT, wp_type[]:OUT, joints[]:OUT, carts[]:OUT)
参数
  • uws_id (INT) – 需要获取取料出框点位的工作空间id

  • pipeline_num (INT) – pipeline 编号

  • register_num (INT) – 注册编号

  • num (INT) – 可供抓取的点数量

  • wp_type[] (INT) – 轨迹点位类型数组

  • joints[] (E6AXIS) – 关节点位数组

  • carts[] (E6POS) – 笛卡尔点位数组

获取取料出框轨迹

返回

err_code

返回类型

INT

GLOBAL DEFFCT INT xyzGetPlacein(ws_id:IN, pipeline_num:OUT, register_num:OUT, num:OUT, wp_type[]:OUT, joints[]:OUT, carts[]:OUT)
参数
  • uws_id (INT) – 需要获取放料入框点位的工作空间id

  • pipeline_num (INT) – pipeline 编号

  • register_num (INT) – 注册编号

  • num (INT) – 可供抓取的点数量

  • wp_type[] (INT) – 轨迹点位类型数组

  • joints[] (E6AXIS) – 关节点位数组

  • carts[] (E6POS) – 笛卡尔点位数组

获取放料入框轨迹

:param

返回

err_code

返回类型

INT

GLOBAL DEFFCT INT xyzGetPlaceout(ws_id:IN, pipeline_num:OUT, register_num:OUT, num:OUT, wp_type[]:OUT, joints[]:OUT, carts[]:OUT)
参数
  • uws_id (INT) – 需要获取放料出框点位的工作空间id

  • pipeline_num (INT) – pipeline 编号

  • register_num (INT) – 注册编号

  • num (INT) – 可供抓取的点数量

  • wp_type[] (INT) – 轨迹点位类型数组

  • joints[] (E6AXIS) – 关节点位数组

  • carts[] (E6POS) – 笛卡尔点位数组

获取放料出框轨迹

返回

err_code

返回类型

INT

GLOBAL DEF xyzParseTraj(pipeline_num:OUT, register_num:OUT, num:OUT,wp_type[]:OUT, joints[]:OUT, carts[]:OUT)

解析轨迹

返回

err_code : 错误码

pipeline_num : pipeline编号

register_num : 注册编号

num : 轨迹点数

wp_type[] : 轨迹点类型

joints[] : 关节坐标数组

carts[] : 笛卡尔坐标数组

GLOBAL DEF xyzExecuteTraj(num:IN, wp_type[]:OUT, joints[]:OUT, carts[]:OUT)

执行轨迹

返回

err_code : 错误码

num : 轨迹点数

wp_type[] : 轨迹点类型

joints[] : 关节坐标数组

carts[] : 笛卡尔坐标数组

GLOBAL DEF xyzExecutePickInTraj(num:IN, wp_type[]:OUT, joints[]:OUT, carts[]:OUT)

执行取料入框轨迹

返回

err_code : 错误码

num : 轨迹点数

wp_type[] : 轨迹点类型

joints[] : 关节坐标数组

carts[] : 笛卡尔坐标数组

GLOBAL DEF xyzExecutePickOutTraj(num:IN, wp_type[]:OUT, joints[]:OUT, carts[]:OUT)

执行取料出框轨迹

返回

err_code : 错误码

num : 轨迹点数

wp_type[] : 轨迹点类型

joints[] : 关节坐标数组

carts[] : 笛卡尔坐标数组

GLOBAL DEF xyzSetMoveJParameters(movej_vel:IN, movej_acc:IN, movej_apo_dist:IN)

设置关节移动参数

参数
  • movej_vel – 关节移动速度, 范围 0~100

  • movej_acc – 关节移动加速度, 范围 0~100

  • movej_apo_dist – 圆滑过渡半径, 范围 0~500 mm

GLOBAL DEFFCT INT xyzRecvAndParse()

接收并解析数据

返回

err_code

返回类型

INT

DEFFCT INT xyzSwitchStrat(in_strat[]:IN)

请求切换策略

参数

in_strat[] (CHAR[]) – 策略名称

返回

err_code

返回类型

INT

DEFFCT INT xyzUpdateTotePose()

料箱重定位(需手动扩展)

返回

err_code

返回类型

INT

DEFFCT INT xyzUpdateObjPoseOnHand()

工件在上手的二次定位

返回

err_code

返回类型

INT

GLOBAL DEFFCT INT xyzUpdateObjPoseToHand(pipeline_num:OUT, register_num:OUT, num:OUT, wp_type[]:OUT, joints[]:OUT, carts[]:OUT)
参数
  • pipeline_num (INT) – pipeline 编号

  • register_num (INT) – 注册编号

  • num (INT) – 可供抓取的点数量

  • wp_type[] (INT) – 轨迹点位类型数组

  • joints[] (E6AXIS) – 关节点位数组

  • carts[] (E6POS) – 笛卡尔点位数组

工件不在手上的二次定位(需手动扩展)

返回

err_code

返回类型

INT

DEFFCT INT xyzSwitchObj(obj_name[]:IN)

切换工件

参数

obj_name[] (CHAR[]) – 流图名称

返回

err_code

返回类型

INT

GLOBAL DEFFCT INT xyzCalculateGraspPose(ws_id:IN, grasp_pose:OUT, grasp_pose_num:OUT, pipeline_num:OUT, register_num:OUT)

计算抓取目标点位

参数
  • ws_id (INT) – 需要进行抓取的工作空间id

  • grasp_pose (E6POS) – 抓取目标点位

  • grasp_pose_num (INT) – 可供抓取的点数量

  • pipeline_num – pipeline 编号

  • register_num – 注册编号

GLOBAL DEFFCT INT xyzCalculateObjPose(ws_id:IN, obj_pose:OUT, obj_pose_num:OUT, pose_type:OUT)

计算物体位姿

参数
  • ws_id (INT) – 需要进行抓取的工作空间id

  • obj_pose (E6POS) – 物体位姿

  • obj_pose_num (INT) – 可供抓取的点数量

  • pose_type (INT) – 物体位姿类型