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

xyzConnectSocket()

连接服务端(工控机)

xyzSwitchTask(task_codename)

切换任务

参数

task_codename (STRING) – 任务代号

返回

err_code(DINT)

xyzSwitchTool(tool_id)

切换工具

参数

tool_id (DINT) – 工具id

返回

err_code(DINT)

xyzCallVisionCmd(vs_id, vision_codename)

呼叫视觉命令

参数
  • vs_id (DINT) – 视觉服务id

  • vision_codename (STRING) – 视觉命令代号

返回

err_code(DINT)

xyzReqGraspPose(vs_id)

请求抓取目标点位

参数

vs_id (DINT) – 视觉服务id

返回

err_code(DINT)

返回

token(DINT): 在执行”获取抓取目标点位“时使用到

xyzGetGraspPose(token)

获取抓取目标点位

参数

token (DINT) – “请求抓取目标点位”中返回的token

返回

err_code(DINT)

返回

grasp_pose(POINTC): 抓取位姿

返回

num(DINT): 当前可供抓取的点位数量

返回

pipeline_num(DINT): 运动流程编号

返回

register_num(DINT): 抓取序号

返回

int1(DINT): 可在Task中自定义含义

返回

int2(DINT): 可在Task中自定义含义

返回

int3(DINT): 可在Task中自定义含义

返回

int4(DINT): 可在Task中自定义含义

返回

int5(DINT): 可在Task中自定义含义

返回

int6(DINT): 可在Task中自定义含义

xyzReqObjPose(vs_id)

请求物体位姿

参数

vs_id (DINT) – 视觉服务id

返回

err_code(DINT)

返回

token(DINT): 在执行”获取物体位姿“时使用到

xyzGetObjPose(token)

获取物体位姿

参数

token (DINT) – “请求物体位姿”中返回的token

返回

err_code(DINT)

返回

obj_pose(POINTC): 物体的位姿数据

返回

num(DINT): 当前物体位姿个数

返回

int1(DINT): 可在Task中自定义含义

返回

int2(DINT): 可在Task中自定义含义

返回

int3(DINT): 可在Task中自定义含义

返回

int4(DINT): 可在Task中自定义含义

返回

int5(DINT): 可在Task中自定义含义

返回

int6(DINT): 可在Task中自定义含义

xyzResetTask()

重置任务

返回

err_code(DINT)

xyzSendCurrentJoints()

发送机器人当前关节坐标

返回

err_code(DINT)

xyzSendCurrentCartPose()

发送机器人当前笛卡尔坐标

返回

err_code(DINT)

xyzSendCurrentExtJoints()

发送机器人当前扩展轴坐标,暂不支持

xyzReqPickPlace(vs_id)

请求抓放规划

参数

vs_id (DINT) – 视觉服务id

返回

err_code(DINT)

xyzGetPickin(vs_id)

获取取料入框轨迹

参数

vs_id (DINT) – 视觉服务id

返回

err_code(DINT)

返回

num(DINT): 轨迹点数量

返回

pipeline_num(DINT): 运动流程编号

返回

register_num(DINT): 抓取序号

返回

轨迹:因函数不支持传出数组,轨迹点位信息这里不做函数输出,而是将轨迹信息保存在功能块变量(全局变量) gInCarts, gWpType, gInJoints

xyzGetPickout(vs_id)

获取取料出框轨迹

参数

vs_id (DINT) – 视觉服务id

返回

err_code(DINT)

返回

num(DINT): 轨迹点数量

返回

pipeline_num(DINT): 运动流程编号

返回

register_num(DINT): 抓取序号

返回

轨迹:因函数不支持传出数组,轨迹点位信息这里不做函数输出,而是将轨迹信息保存在功能块变量(全局变量) gInCarts, gWpType, gInJoints

xyzGetPlaceIn(vs_id)

获取放料入框轨迹

参数

vs_id (DINT) – 视觉服务id

返回

err_code(DINT)

返回

num(DINT): 轨迹点数量

返回

pipeline_num(DINT): 运动流程编号

返回

register_num(DINT): 抓取序号

返回

轨迹:因函数不支持传出数组,轨迹点位信息这里不做函数输出,而是将轨迹信息保存在功能块变量(全局变量) gInCarts, gWpType, gInJoints

xyzGetPlaceOut(vs_id)

获取放料出框轨迹

参数

vs_id (DINT) – 视觉服务id

返回

err_code(DINT)

返回

num(DINT): 轨迹点数量

返回

pipeline_num(DINT): 运动流程编号

返回

register_num(DINT): 抓取序号

返回

轨迹:因函数不支持传出数组,轨迹点位信息这里不做函数输出,而是将轨迹信息保存在功能块变量(全局变量) gInCarts, gWpType, gInJoints

xyzExecutePickInTraj(num)

用于执行PickIn轨迹,特点是执行最后一个轨迹点时速度较慢。

具体速度、圆滑等参数可以根据需要自行修改

参数

num (DINT) – 轨迹点的点位数量

xyzExecutePickOutTraj(num)

用于执行PickOut轨迹,特点是第一个轨迹点执行速度较慢。

具体速度、圆滑等参数可以根据需要自行修改

参数

num (DINT) – 轨迹点的点位数量

xyzExecuteTraj(num)

用于执行轨迹,特点是全程用一个速度、圆滑参数。

具体速度、圆滑等参数可以根据需要自行修改

参数

num (DINT) – 轨迹点的点位数量

xyzUpdateTotePose(vs_id)

料箱重定位

参数

vs_id (DINT) – 视觉服务id

返回

err_code(DINT)

xyzUpdateObjPoseInHand()

工件在手上的二次定位

返回

err_code(DINT)

返回

place_pose(POINTC): 放置位姿数据

xyzSwitchItem(vs_id, item_codename)

切换工件

参数
  • vs_id (DINT) – 视觉服务id

  • item_codename (STRING) – 工件代号

返回

err_code(DINT)

xyzCalculateGraspPose(vs_id)

计算抓取目标点位

参数

vs_id (DINT) – 视觉服务id

返回

err_code(DINT)

返回

grasp_pose(POINTC): 抓取位姿

返回

num(DINT): 当前可供抓取的点位数量

返回

pipeline_num(DINT): 运动流程编号

返回

register_num(DINT): 抓取序号

返回

int1(DINT): 可在Task中自定义含义

返回

int2(DINT): 可在Task中自定义含义

返回

int3(DINT): 可在Task中自定义含义

返回

int4(DINT): 可在Task中自定义含义

返回

int5(DINT): 可在Task中自定义含义

返回

int6(DINT): 可在Task中自定义含义

xyzCalculateObjectPose(vs_id)

计算物体位姿

参数

vs_id (DINT) – 视觉服务id

返回

err_code(DINT)

返回

obj_pose(POINTC): 物体的位姿数据

返回

num(DINT): 当前物体位姿个数

返回

int1(DINT): 可在Task中自定义含义

返回

int2(DINT): 可在Task中自定义含义

返回

int3(DINT): 可在Task中自定义含义

返回

int4(DINT): 可在Task中自定义含义

返回

int5(DINT): 可在Task中自定义含义

返回

int6(DINT): 可在Task中自定义含义

xyzClearUserCommandData()

清空用户指令的请求数据(使用xyzUserCommand前,必须调用)

xyzUserCommand()

用户指令,用于基础指令不支持的情况下,配合任务流图完成用户特定功能。

使用请按照参照 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

返回

err_code(DINT)