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