样例程序4:MMS4VISUser

您正在查看预发布版本(V2.2.0)的文档。如果您想查阅其他版本的文档,可以点击页面右上角“切换版本”按钮进行切换。

■ 如果您不确定当前使用的产品是哪个版本,请随时联系梅卡曼德技术支持

程序简介

功能说明

机器人触发Mech-Vision工程运行,然后获取视觉结果,进而执行抓取和放置操作。

文件路径

Mech-Vision和Mech-Viz软件安装目录下Communication Component/Robot_Interface/MELFA/MMS4VISUser

所需工程

Mech-Vision工程

Mech-Vision工程需包含路径规划步骤,且输出步骤的端口类型参数需要设置为“预定义(机器人路径)”。

使用前提

  1. 已完成标准接口通信配置

  2. 已完成自动标定

此样例程序仅是示例程序。用户需根据实际情况在此基础上进行修改,请勿直接使用该程序。

程序解读

以下为MMS4VISUser样例程序的代码及相关解释说明。

  #Include "MMMODULE"
  MM_DROP_COM()
  Mcomnum = 7
  MM_INIT_COM(Mcomnum)
  Tool P_NTool
  PMTool=(+0.00,+0.00,+0.00,+0.00,+0.00,+0.00)
  Tool PMTool
  MM_SET_MOD(1,1,MM_Status)
  If MM_Status <> 1107 Then
    Hlt
  EndIf
  MM_START_VIS(1,0,1,JntSend,MM_Status)
  If MM_Status <> 1102 Then
    Hlt
  EndIf
  Dim MM_Result(10, 8)
  Dim MM_CustInfo(10,15)
  MM_GET_CUST (1,MM_Status,MM_VisionPt_Num,MM_CustInfo_Num,MM_Result,MM_CustInfo)
  If MM_Status <> 1100 Then
    Hlt
  EndIf
  Dim MM_CustData(10, 15)
  MM_GET_CUSTP(MM_Result,MM_CustInfo_Num,MM_CustInfo,1,PPick_pre, MM_Label1,MM_CustData)
  MM_GET_CUSTP(MM_Result,MM_CustInfo_Num,MM_CustInfo,2,PPick,MM_Label2,MM_CustData)
  MM_GET_CUSTP(MM_Result,MM_CustInfo_Num,MM_CustInfo,3,PPick_after,MM_Label3,MM_CustData)
  MM_DROP_COM()
  Mov PPick_pre
  Fine 0,P
  Mvs PPick
  Hlt
  Mvs PPick_after

上述样例程序代码对应的流程如下图所示。

sample1

下表为上述程序的逻辑解读。用户单击指令名称的超链接便可查看该指令的详细说明。

流程 代码及说明

导入MM_Module头文件

  #Include "MMMODULE"

初始化和建立通信

  MM_DROP_COM()
  Mcomnum = 7
  MM_INT_COM(Mcomnum)

先关闭通信再重新连接确保没有连接中的工程。

将控制点返回初始值并声明工具变量

  Tool P_NTool
  PMTool=(+0.00,+0.00,+0.00,+0.00,+0.00,+0.00)
  Tool PMTool

切换Mech-Vision参数配方并验证状态码

  MM_SET_MOD(1,1,MM_Status)
  If MM_Status <> 1107 Then
    Hlt
  EndIf
  • MM_SET_MOD:切换Mech-Vision参数配方的指令。

  • 第一个1:表示Mech-Vision的工程编号

  • 第二个1:表示期望Mech-Vision工程中参数配方的编号。

  • <>:不相等。 当状态码MM_Status为1107时,机器人成功切换参数配方。

触发运行Mech-Vision工程并验证状态码

  MM_START_VIS(1,5,1,JntSend,MM_Status)
  If MM_Status <> 1102 Then
    Hlt
  EndIf
  • MM_START_VIS:触发运行Mech-Vision工程的指令。

  • 第一个1:Mech-Vision工程编号。

  • 5:期望Mech-Vision工程返回的视觉点数量。

  • 第二个1:将机器人的当前法兰位姿传入Mech-Vision工程。

整条指令表示机器人触发视觉系统运行编号为1的Mech-Vision工程,且期望Mech-Vision工程返回5视觉点。

  • <>:不相等。 当状态码MM_Status为1102时,机器人成功运行Mech-Vision工程。

定义&声明存储容器

  Dim MM_Result(10, 8)
  Dim MM_CustInfo(10,15)
  • Dim MM_Result(10,8):定义二元数组,用于存储路径点。

  • Dim MM_CustInfo(10,15):定义二元数组,用于定制数据。

获取视觉结果(包含自定义数据)

  MM_GET_CUST (1,MM_Status,MM_VisionPt_Num,MM_CustInfo_Num,MM_Result,MM_CustInfo)
  If MM_Status <> 1100 Then
    Hlt
  EndIf
  • MM_GET_CUST:获取视觉结果的指令。通过该指令获取的视觉点,除了包含位姿和标签外,还将包含自定义数据。

  • 1:指定Mech-Vision的工程编号为1

  • MM_Status:该变量存储指令执行的状态码。

  • MM_VisionPt_Num:该变量存储视觉系统返回的视觉点个数。

整条指令表示机器人获取Mech-Vision工程1返回的视觉结果(其中包含自定义数据)。

  • <>:不相等。 当状态码MM_Status为1100时,机器人成功获取视觉结果。

定义&声明存储容器

  Dim MM_CustData(10,15)
  • Dim MM_CustData(10,15):定义二元数组,用于存储定制数据。

转存视觉结果(包含自定义数据)

  MM_GET_CUSTP(MM_Result,MM_CustInfo_Num,MM_CustInfo,1,PPick_pre, MM_Label1,MM_CustData)
  MM_GET_CUSTP(MM_Result,MM_CustInfo_Num,MM_CustInfo,2,PPick,MM_Label2,MM_CustData)
  MM_GET_CUSTP(MM_Result,MM_CustInfo_Num,MM_CustInfo,3,PPick_after,MM_Label3,MM_CustData)
  • MM_GET_CUSTP:转存视觉结果的指令。 以第一条为例

  • MM_Result:该变量存储视觉结果(一系列视觉点)。

  • MM_CustInfo_Num:该变量存储定制数据数量。

  • MM_CustInfo:该变量存储定制数据。

  • 1:指定视觉点的索引号。

  • PPick_pre:该变量存储第一个路径点的工具位姿。

  • MM_Label:该变量存储第一个路径点的标签。

  • MM_ToolID:该变量存储第一个路径点的工具编号。

整条指令表示将第一个视觉点的工具位姿、标签和末端工具编号分别转存至指定变量。

断开通信

  MM_DROP_COM()

移动到抓取接近点

  Mov PPick_pre
  Fine 0,P

移动到抓取接近点,并设置绝对位置到达。

移动到抓取点

  Mov PPick
  Hlt

机器人以直线移动方式从抓取接近点移动到抓取点。

Hlt表示停止程序的执行。用户如果已添加设置DO的语句,此处可以删除Pause语句。

移动到抓取离开点

  Mvs PPick_after

机器人移动到抓取点上方的某处,即到达抓取离开点。

增加抓取离开点可防止机器人在移动过程中与场景物体(例如料筐)发生碰撞。用户可根据实际场景修改此处的Z轴负方向偏移量(PPick_pre.Z值),保证离开过程无碰撞。

该页面是否有帮助?

可以通过以下方式反馈意见:

我们重视您的隐私

我们使用 cookie 为您在我们的网站上提供最佳体验。继续使用该网站即表示您同意使用 cookie。如果您拒绝,将使用一个单独的 cookie 来确保您在访问本网站时不会被跟踪或记住。