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文件numberregister_num(
V60%
):用到的注册文件的注册numbergrasp_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文件numberregister_num(
V60%
):用到的注册文件的注册number轨迹点():在
V27%
大于0的情况下,直接调用ExecTraj()
走轨迹即可
- xyzGetPickOut()
获取取料出框轨迹
- 参数
uws_id (
V16%
) – 目前该值填0即可- 返回
error_code(
V21%
):waypoint_num(
V27%
):轨迹点中点位数量pipeline_num(
V59%
): pipeline文件numberregister_num(
V60%
):用到的注册文件的注册number轨迹点():在
V27%
大于0的情况下,直接调用ExecTraj()
走轨迹即可
- xyzGetPlaceIn()
获取放料入框轨迹
- 参数
uws_id (
V16%
) – 目前该值填0即可- 返回
error_code(
V21%
):waypoint_num(
V27%
):轨迹点中点位数量pipeline_num(
V59%
): pipeline文件numberregister_num(
V60%
):用到的注册文件的注册number轨迹点():在
V27%
大于0的情况下,直接调用ExecTraj()
走轨迹即可
- xyzGetPlaceOut()
获取放料出框轨迹
- 参数
uws_id (
V16%
) – 目前该值填0即可- 返回
error_code(
V21%
):waypoint_num(
V27%
):轨迹点中点位数量pipeline_num(
V59%
): pipeline文件numberregister_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文件numberregister_num(
V60%
):用到的注册文件的注册number轨迹点():在
V27%
大于0的情况下,直接调用ExecTraj()
走轨迹即可
- xyzGetObjPoseType()
获取工件姿态类型
- 返回
error_code(
V21%
):pose_type(
V26%
):工件的pose类型信息
- xyzResetPalletStatus()
重置工业码垛状态
- 返回
error_code(
V21%
):
- xyzSwitchObj(obj_name)
切换工件
- 参数
ws_id (
V13%
) – 工作空间idobj_name (STRING) – 工件名称
- 返回
error_code(
V21%
):
- xyzCalculateGraspPose()
计算抓取目标点位,该指令等价于xyzReqGraspPose() + xyzGetGraspPose()
- 参数
ws_id (
V13%
) – 工作空间id- 返回
error_code(
V21%
):grasp_pose_num(
V23%
):当前有多少个可供抓取的点pipeline_num(
V59%
): pipeline文件numberregister_num(
V60%
):用到的注册文件的注册numbergrasp_pose(
V1!~V6!
):抓取目标点的位姿数据
- xyzCalculateObjectPose()
计算物体位姿,该指令等价于xyzReqObjPose() + xyzGetObjPose()
- 参数
ws_id (
V13%
) – 工作空间id- 返回
error_code(
V21%
):object_pose_num(
V25%
):当前物体位姿个数pose_type(
V26%
): 物体的位姿类型object_pose(
V7!~V12!
):物体的位姿数据