API 说明

otc 工控机主控支持的 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

机械臂后台发送状态

支持

otc工控机主控定义了一些全局变量,不允许用户使用,占用情况如下(VARIABLE.INC):

姿势变量Pn

地址

含义

说明(是否用户可写)

P1

内部使用

x

整数变量V%

地址

含义

说明(是否用户可写)

V50%

通讯连接标志位

read only

V51%

motion_socket报错1

read only

V52%

motion_socket报错2

read only

V53%

motion通讯接收长度

read only

V54%

内部使用

read only

V55%

内部使用

read only

V56%

motion通讯发送长度

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%

status通讯发送长度

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

otc 机械臂主控支持的 API

otc部分全局变量已经被占用,不允许用户使用,占用情况如下(VARIABLE.INC):

姿势变量Pn

地址

含义

说明(是否用户可写)

P1

内部使用

x

整数变量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%

设置发送给服务端的视觉服务id

可写

V16%

设置发送给服务端的uws_id

可写

V17%~V20%

系统预留,勿用

x

V21%

服务端返回的error_code

read only

V22%

服务端返回的token

read only

V23%

服务端返回的grasp_pose_num

read only

V24%

系统预留,勿用

x

V25%

服务端返回的obj_pose_num

read only

V26%

服务端返回的obj_pose_type

read only

V27%

服务端返回的轨迹点数量

read only

V28%

系统预留,勿用

x

V29%~V58%

服务端返回的每个轨迹点的类型 (最多支持30个点)

read only

V59%

服务端返回的pipeline_num

read only

V60%

服务端返回的register_num

read only

字符串变量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定义在放在各个前台模板程序里面:

MasterInit()

初始化各变量

xyzMasterConnect()

连接服务端

参数
  • ip地址 (V3%) – 服务器的ip地址,填最后3位即可

  • 端口号 (V4%) –

xyzSwitchApp(app_name)

切换应用

参数

app_name (STRING) – 应用的名称

返回

error_code( V21%):

xyzSwitchFlow(flow_name)

切换flow

参数

flow_name (STRING) – 需要切换到的task flow名称,以”.t“结尾,如“1.t”

返回

error_code( V21%):

xyzSwitchTool(tool_id)

切换工具

参数

tool_id (STRING) – 工具名称

返回

error_code( V21%):

xyzReqCapImg()

请求拍照

参数

vision_service_id (V15%) – 视觉服务id

返回

error_code( V21%):

token( V22%): 用于获取对应拍照结果使用的token

xyzGetCapImg()

获取拍照结果

参数

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

返回

error_code( V21%):

xyzCapImg()

拍照并获取结果,等价于xyzReqCapImg() + xyzGetCapImg()

参数

vision_service_id (V15%) – 视觉服务id

返回

error_code( V21%):

xyzReqGraspPose()

请求抓取目标点位

参数

ws_id (V13%) – 工作空间id

返回

error_code( V21%):

token( V22%): 用于获取目标点位时使用的token

xyzGetGraspPose()

获取抓取目标点位

参数

token (V14%) – 请求抓取目标点位时返回的token

返回

error_code( V21%):

grasp_pose_num(V23%):当前有多少个可供抓取的点

pipeline_num(V59%): pipeline文件number

register_num(V60%):用到的注册文件的注册number

grasp_pose(V1!~V6!):抓取目标点的位姿数据

xyzReqObjPose()

请求物体位姿

参数

ws_id (V13%) – 工作空间id

返回

error_code( V21%):

token( V22%): 用于获取物体位姿时作为识别token

xyzGetObjPose()

获取物体位姿

参数

token (V14%) – 请求抓取目标点位时返回的token

返回

error_code( V21%):

object_pose_num(V25%):当前物体位姿个数

pose_type(V26%): 物体的位姿类型

object_pose(V7!~V12!):物体的位姿数据

xyzResetTask()

重置任务,一般用来初始化任务内部变量

返回

error_code( V21%):

xyzSendCurrentJoints()

发送机械臂当前角度

返回

error_code( V21%):

xyzSendCurrentCartPose()

发送机械臂当前Cartesian值

返回

error_code( V21%):

xyzSendCurrentExtJoints()

发送机械臂当前扩展轴位置,该指令暂不支持

返回

error_code( V21%):

xyzReqPick()

请求pick动作规划,该指令暂不支持

返回

error_code( V21%):

xyzReqPlace()

请求place动作规划,该指令暂不支持

返回

error_code( V21%):

xyzReqPickPlace()

请求pick和place规划

参数

uws_id (V16%) – 目前该值填0即可

返回

error_code( V21%):

xyzGetPickIn()

获取取料入框轨迹

参数

uws_id (V16%) – 目前该值填0即可

返回

error_code( V21%):

waypoint_num(V27%):轨迹点中点位数量

pipeline_num(V59%): pipeline文件number

register_num(V60%):用到的注册文件的注册number

轨迹点():在 V27% 大于0的情况下,直接调用 ExecTraj() 走轨迹即可

xyzGetPickOut()

获取取料出框轨迹

参数

uws_id (V16%) – 目前该值填0即可

返回

error_code( V21%):

waypoint_num(V27%):轨迹点中点位数量

pipeline_num(V59%): pipeline文件number

register_num(V60%):用到的注册文件的注册number

轨迹点():在 V27% 大于0的情况下,直接调用 ExecTraj() 走轨迹即可

xyzGetPlaceIn()

获取放料入框轨迹

参数

uws_id (V16%) – 目前该值填0即可

返回

error_code( V21%):

waypoint_num(V27%):轨迹点中点位数量

pipeline_num(V59%): pipeline文件number

register_num(V60%):用到的注册文件的注册number

轨迹点():在 V27% 大于0的情况下,直接调用 ExecTraj() 走轨迹即可

xyzGetPlaceOut()

获取放料出框轨迹

参数

uws_id (V16%) – 目前该值填0即可

返回

error_code( V21%):

waypoint_num(V27%):轨迹点中点位数量

pipeline_num(V59%): pipeline文件number

register_num(V60%):用到的注册文件的注册number

轨迹点():在 V27% 大于0的情况下,直接调用 ExecTraj() 走轨迹即可

xyzSwitchStrat(strat_name)

请求切换策略

参数

strat_name (STRING) – 策略名称

返回

error_code( V21%):

xyzUpdateTotePose()

料箱重定位

返回

error_code( V21%):

tote_pose(V13! ~ V18!):重定位后的料箱位姿数据

xyzUpdateObjPoseOnHand()

工件在上手的二次定位

返回

error_code( V21%):

xyzUpdateObjPoseToHand()

工件不在手上的二次定位

返回

error_code( V21%):

waypoint_num(V27%):轨迹点中点位数量

pipeline_num(V59%): pipeline文件number

register_num(V60%):用到的注册文件的注册number

轨迹点():在 V27% 大于0的情况下,直接调用 ExecTraj() 走轨迹即可

xyzGetObjPoseType()

获取工件姿态类型

返回

error_code( V21%):

pose_type(V26%):工件的pose类型信息

xyzResetPalletStatus()

重置工业码垛状态

返回

error_code( V21%):

xyzSwitchObj(obj_name)

切换工件

参数
  • ws_id (V13%) – 工作空间id

  • obj_name (STRING) – 工件名称

返回

error_code( V21%):

xyzCalculateGraspPose()

计算抓取目标点位,该指令等价于xyzReqGraspPose() + xyzGetGraspPose()

参数

ws_id (V13%) – 工作空间id

返回

error_code( V21%):

grasp_pose_num(V23%):当前有多少个可供抓取的点

pipeline_num(V59%): pipeline文件number

register_num(V60%):用到的注册文件的注册number

grasp_pose(V1!~V6!):抓取目标点的位姿数据

xyzCalculateObjectPose()

计算物体位姿,该指令等价于xyzReqObjPose() + xyzGetObjPose()

参数

ws_id (V13%) – 工作空间id

返回

error_code( V21%):

object_pose_num(V25%):当前物体位姿个数

pose_type(V26%): 物体的位姿类型

object_pose(V7!~V12!):物体的位姿数据