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