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
三菱机械臂使用了一些全局变量,不允许用户占用,占用情况如下:
指令的返回值 |
||
地址 |
含义 |
是否用户可写 |
M_00# |
max返回的token值 |
x |
M_01# |
grasp_pose_num或者object_pose_num |
x |
M_02# |
pipeline_num |
x |
M_03# |
register_num |
x |
M_04# |
object_pose_type |
x |
P_00 |
grasp_pose/object_pose/tote_pose |
x |
M_05# |
轨迹中的点的数量 |
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 |
指令的输入参数 |
||
地址 |
含义 |
是否用户可写 |
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 |
以下API函数存放在 XYZUTILS.prg
。
返回值的V表示void,即无返回值。
- Function V xyzConnect(CIP$, MPort)
连接到服务器
- 参数
CIP$ (字符串) – 服务器IP地址
MPort (数值) – 服务器端口号
- 返回
Void
- Function M! xyzHeartBeat()
ping上位机用
- 返回
err_code
- 返回类型
M!
- Function M! xyzSwitchApp(CAppName$)
切换应用
- 参数
CAppName$ (字符串) – 应用名称
- 返回
err_code
- 返回类型
M!
- Function M! xyzSwitchFlow(CFlowName$)
切换flow
- 参数
CFlowName$ (字符串) – flow名称
- 返回
err_code
- 返回类型
M!
- Function M! xyzSwitchTool(CTool$)
切换工具
- 参数
CTool$ (字符串) – 工具名称
- 返回
err_code
- 返回类型
M!
- Function M! xyzReqCapImg(MVisSrvId)
请求拍照
返回的token值存在M_00
- 参数
MVisSrvId$ (M) – 视觉服务ID
- 返回
err_code
- 返回类型
M!
- Function M! xyzGetCapImg(MToken)
获取拍照结果
- 参数
MToken$ (M) – 请求拍照时返回的token
- 返回
err_code
- 返回类型
M!
- Function M! xyzCapImg(MVisSrvId)
拍照
等价于同时执行:xyzReqCapImg + xyzGetCapImg
- 参数
MVisSrvId$ (M) – 视觉服务ID
- 返回
err_code
- 返回类型
M!
- Function M! xyzReqGraspPose(MWsId)
请求抓取目标点位
返回的token值存在M_00
- 参数
MWsId$ (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
- 参数
MToken$ (M) – xyzReqGraspPose返回的token值
- 返回
err_code
- 返回类型
M!
- Function M! xyzReqObjPose(MWsId)
请求物体位姿
返回的token值存在M_00
- 参数
MWsId$ (M) – 工作空间id
- 返回
err_code
- 返回类型
M!
- Function M! xyzGetObjPose(MToken)
获取物体位姿
返回的object_pose存放在P_00, object_pose_num存放在M_01, object_pose_type存放在M_04
- 参数
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! xyzReqPick()
请求pick动作规划
- 返回
err_code
- 返回类型
M!
- Function M! xyzReqPlace()
请求place动作规划
- 返回
err_code
- 返回类型
M!
- Function M! xyzReqPickPlace(MWsId)
请求pick和place规划
- 参数
MWsId$ (M) – 工作空间id
- 返回
err_code
- 返回类型
M!
- Function M! xyzGetPickIn(MWsId)
获取取料入框轨迹
轨迹执行可以参考后面的轨迹执行函数
- 参数
MWsId$ (M) – 工作空间id
- 返回
err_code
- 返回类型
M!
- Function M! xyzGetPickOut(MWsId)
获取取料出框轨迹
轨迹执行可以参考后面的轨迹执行函数
- 参数
MWsId$ (M) – 工作空间id
- 返回
err_code
- 返回类型
M!
- Function M! xyzGetPlaceIn(MWsId)
获取放料入框轨迹
轨迹执行可以参考后面的轨迹执行函数
- 参数
MWsId$ (M) – 工作空间id
- 返回
err_code
- 返回类型
M!
- Function M! xyzGetPlaceOut(MWsId)
获取放料出框轨迹
轨迹执行可以参考后面的轨迹执行函数
- 参数
MWsId$ (M) – 工作空间id
- 返回
err_code
- 返回类型
M!
- Function M! xyzSwitchStrat(CStratName$)
请求切换策略
- 参数
CStratName$ (字符串) – 策略名称
- 返回
err_code
- 返回类型
M!
- Function M! xyzUpdateTotePose()
料箱重定位
重新定位后的料箱位置放在P_00
- 返回
err_code
- 返回类型
M!
- Function M! xyzUpdateObjPoseOnHand()
工件在手上的二次定位
- 返回
err_code
- 返回类型
M!
- Function M! xyzUpdateObjPoseToHand()
工件不在手上的二次定位
返回的pipeline_num存放在M_02, register_num存放在M_03
返回的轨迹点,可以参考后面的轨迹执行函数
- 返回
err_code
- 返回类型
M!
- Function M! xyzGetObjPoseType()
获取工件姿态类型
返回的工件位姿类型存放在M_04
- 返回
err_code
- 返回类型
M!
- Function M! xyzResetPalletStatus()
重置工业码垛状态
- 返回
err_code
- 返回类型
M!
- Function M! xyzSwitchItem(MWsId, CItemCodeName$)
切换工件
- 参数
MWsId$ (M) – 工作空间id
CItemCodeName$ (字符串) – 工件代号
- 返回
err_code
- 返回类型
M!
- Function M! xyzCalculateGraspPose(MWsId)
计算抓取目标点位
等价于执行:xyzReqGraspPose + xyzGetGraspPose
返回的grasp_pose存放在P_00, grasp_pose_num存放在M_01, pipeline_num存放在M_02, register_num存放在M_03
- 参数
MWsId$ (M) – 工作空间id
- 返回
err_code
- 返回类型
M!
- Function M! xyzCalculateObjectPose(MWsId)
计算物体位姿
等价于执行:xyzReqGraspPose + xyzGetGraspPose
返回的object_pose存放在P_00, object_pose_num存放在M_01, object_pose_type存放在M_04
- 参数
MWsId$ (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