API 说明
三菱: 工控机主控支持的 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 |
获取机械臂当前位姿 |
支持 |
124 |
调用子程序 |
不支持 |
200 |
机械臂后台发送状态 |
支持 |
三菱: 机械臂主控支持的 API
三菱机械臂使用了一些全局变量,不允许用户占用,占用情况如下:
指令的输入参数 |
||
地址 |
含义 |
是否用户可写 |
C_100(1~5) |
用户指令(xyzUsrCmd)的输入参数 C_100(1~5):5个string M_103(10):10个int M_104(10):10个float P_01:1个cart_pose J_01:1个joints |
√ |
M_103(10) |
||
M_104(10) |
||
P_01 |
||
J_01 |
指令的返回值 |
||
地址 |
含义 |
用户是否可写 |
M_00# |
max返回的token值 |
x |
M_01# |
pose_num |
x |
M_02# |
pipeline_num |
x |
M_03# |
register_num |
x |
M_04# |
系统预留 |
x |
M_05# |
轨迹中的点的数量 |
x |
M_05# ~ M_11# |
calculate_grasp_pose/calculate_object_pose中返回的用户自定义值 |
x |
C_00$ |
object_name |
x |
P_00 |
grasp_pose/object_pose |
x |
P_100(10)~P_102(10) |
轨迹中的点位和类型 |
x |
J_100(10)~J_102(10) |
||
M_100(10)~M_102(10) |
||
C_100(6~10) |
用户指令(xyzUsrCmd)的返回参数 C_100(6~10):5个string M_105(10):10个int M_106(10):10个float P_02:1个cart_pose J_02:一个joints |
x |
M_105(10) |
||
M_106(10) |
||
P_02 |
||
J_02 |
以下API函数存放在 XYZUTILS.prg
。
返回值的V表示void,即无返回值。
- Function V xyzConnect(CIP$, MPort)
连接到服务器
- 参数
CIP$ (字符串) – 服务器IP地址
MPort (M) – 服务器端口号
- 返回
Void
- Function M! xyzHeartBeat()
ping上位机用
- 返回
err_code
- 返回类型
M!
- Function M! xyzSwitchTask(CTaskCodeName$)
切换任务
- 参数
CTaskCodeName$ (字符串) – 任务代号
- 返回
err_code
- 返回类型
M!
- Function M! xyzSwitchTool(MToolID$)
切换工具
- 参数
MToolID$ (M) – 工具id
- 返回
err_code
- 返回类型
M!
- Function M! xyzCallVisionCmd(MVsID, CVisionCodeName$)
呼叫视觉命令
- 参数
MVsID$ (M) – 视觉服务id
CVisionCodeName$ (字符串) – 视觉命令代号
- 返回
err_code
- 返回类型
M!
- Function M! xyzReqGraspPose(MVsID)
请求抓取目标点位
返回的token值保存在M_00#
- 参数
MVsID$ (M) – 视觉服务id
- 返回
err_code
- 返回类型
M!
- Function M! xyzGetGraspPose(MToken)
获取抓取目标点位
返回的grasp_pose存放在P_00, grasp_pose_num存放在M_01#, pipeline_num存放在M_02#, register_num存放在M_03#, 6个自定义输出存放在M_06#~M_11#
- 参数
MToken$ (M) – xyzReqGraspPose返回的token值
- 返回
err_code
- 返回类型
M!
- Function M! xyzReqObjPose(MVsID)
请求物体位姿
返回的token值存在M_00#
- 参数
MVsID$ (M) – 视觉服务id
- 返回
err_code
- 返回类型
M!
- Function M! xyzGetObjPose(MToken)
获取物体位姿
返回的object_pose存放在P_00, object_pose_num存放在M_01#, object_name存放在C_00$, 6个自定义输出存放在M_06#~M_11#
- 参数
MToken$ (M) – xyzReqObjPose返回的token值
- 返回
err_code
- 返回类型
M!
- Function M! xyzResetTask()
重置任务,下位机在初始化时需要调用该指令
- 返回
err_code
- 返回类型
M!
- Function M! xyzSendCurrentJoints()
发送机器人当前角度
- 返回
err_code
- 返回类型
M!
- Function M! xyzSendCurrentCartPose()
发送机器人当前Cartesian坐标
- 返回
err_code
- 返回类型
M!
- Function M! xyzSendCurrentExtJoints()
发送机器人当前扩展轴位置
- 返回
err_code
- 返回类型
M!
- Function M! xyzReqPickPlace(MVsID)
请求抓放规划
- 参数
MVsID$ (M) – 视觉服务id
- 返回
err_code
- 返回类型
M!
- Function M! xyzGetPickIn(MVsID)
获取取料入框轨迹
轨迹执行可以参考后面的轨迹执行函数
- 参数
MVsID$ (M) – 视觉服务id
- 返回
err_code
- 返回类型
M!
- Function M! xyzGetPickOut(MVsID)
获取取料出框轨迹
轨迹执行可以参考后面的轨迹执行函数
- 参数
MVsID$ (M) – 视觉服务id
- 返回
err_code
- 返回类型
M!
- Function M! xyzGetPlaceIn(MVsID)
获取放料入框轨迹
轨迹执行可以参考后面的轨迹执行函数
- 参数
MVsID$ (M) – 视觉服务id
- 返回
err_code
- 返回类型
M!
- Function M! xyzGetPlaceOut(MVsID)
获取放料出框轨迹
轨迹执行可以参考后面的轨迹执行函数
- 参数
MVsID$ (M) – 视觉服务id
- 返回
err_code
- 返回类型
M!
- Function M! xyzUpdateTotePose(MVsID)
料箱重定位
- 参数
MVsID$ (M) – 视觉服务id
- 返回
err_code
- 返回类型
M!
- Function M! xyzUpdateObjPoseInHand()
工件在手上的二次定位
返回的放置位姿存放在P_00
- 返回
err_code
- 返回类型
M!
- Function M! xyzSwitchItem(MVsID, CItemCodeName$)
切换工件
- 参数
MVsID$ (M) – 视觉服务id
CItemCodeName$ (字符串) – 工件代号
- 返回
err_code
- 返回类型
M!
- Function M! xyzCalculateGraspPose(MVsID)
计算抓取目标点位
等价于执行:xyzReqGraspPose + xyzGetGraspPose
返回的grasp_pose存放在P_00, grasp_pose_num存放在M_01#, pipeline_num存放在M_02#, register_num存放在M_03#, 6个自定义输出存放在M_06#~M_11#
- 参数
MVsID$ (M) – 视觉服务id
- 返回
err_code
- 返回类型
M!
- Function M! xyzCalculateObjectPose(MVsID)
计算物体位姿
等价于执行:xyzReqGraspPose + xyzGetGraspPose
返回的object_pose存放在P_00, object_pose_num存放在M_01#, object_name存放在C_00$, 6个自定义输出存放在M_06#~M_11#
- 参数
MVsID$ (M) – 视觉服务id
- 返回
err_code
- 返回类型
M!
- Function M! xyzUsrCmd()
用户指令
用于基础指令不支持的情况下,配合任务流图完成用户特定功能。
各个参数的含义取决于任务流图中设定的输入输出。
输入参数:
5个字符串:C_100(1~5)
10个int类型:M_103(10)
10个float类型:M_104(10)
1个cart_pose: P_01
1个joints:J_01
输出参数:
5个字符串:C_100(6~10)
10个int类型:M_105(10)
10个float类型:M_106(10)
1个cart_pose: P_02
1个joints:J_02
- 返回
err_code
- 返回类型
M!
其他功能API
- Function V xyzInitParams()
初始化参数,用在程序开头
- 返回
Void
- Function V xyzExecTraj(MCntValue)
执行轨迹,不特殊处理第一个点和最后一个点
- 参数
MCntValue$ (M) – 执行轨迹时,最大圆滑半径, 单位mm
- Function V xyzExecPickInTraj(MCntValue)
执行轨迹,最后一个点会降速
- 参数
MCntValue$ (M) – 执行轨迹时,最大圆滑半径, 单位mm
- Function V xyzExecPickOutTraj(MCntValue)
执行轨迹,第一个点会降速
- 参数
MCntValue$ (M) – 执行轨迹时,最大圆滑半径, 单位mm