样例程序1:MMS1VisBasic

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

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

程序简介

功能说明

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

文件路径

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

所需工程

Mech-Vision工程

使用前提

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

  2. 已完成自动标定

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

程序解读

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

  #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
  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(20,8)
  MM_GET_VIS(1,5,MM_VisionPt_Num,MM_Status,MM_Result)
  If MM_Status <> 1100 Then
    Hlt
  EndIf
  MM_GET_POS(MM_Result,1,PPick,MM_Label1,MM_ToolID1)
  MM_DROP_COM()
  PPick_pre=PPick
  PPick_pre.Z=PPick.Z+200
  Mov PPick_pre
  Fine 0,P
  Mvs PPick
  Hlt
  Mvs PPick_pre

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

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,0,1,JntSend,MM_Status)
  If MM_Status <> 1102 Then
    Hlt
  EndIf
  • MM_START_VIS:触发运行Mech-Vision工程的指令。

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

  • 0:期望Mech-Vision工程返回所有视觉点。

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

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

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

定义二元数组

  Dim MM_Result(20,8)

用于存储点位、标注、工具数据。

获取视觉结果并验证状态码

  MM_GET_VIS(1,5,MM_VisionPt_Num,MM_Status,MM_Result)
  If MM_Status <> 1100 Then
    Hlt
  EndIf
  • MM_GET_VIS:获取视觉结果的指令。

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

  • 5:指定获取的视觉点数量。 整条指令表示机器人获取Mech-Vision工程1返回的视觉结果。

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

转存视觉结果

  MM_GET_POS(MM_Result,1,PPick,MM_Label1,MM_ToolID1)
  • MM_GET_POS:转存视觉结果的指令。

  • MM_Result:获取的视觉结果。

  • 1:将转存第1个视觉点。

  • PPick:保存第1个视觉点的工具位姿,即抓取点的工具位姿。

  • MM_Label1:保存第1个视觉点对应的标签。

  • MM_ToolID1:保存第1个视觉点对应的末端工具编号。

第1个视觉点或路径点的工具位姿将保存至位置变量PPick,标签将保存至数值变量MM_Label1,工具 ID 将保存至数值变量MM_ToolID1。

断开通信

  MM_DROP_COM()

设置抓取接近点和离开点

  PPick_pre=PPick
  PPick_pre.Z=PPick.Z+200

将PPick的值赋予PPick_pre,增加PPick_pre的Z轴高度200,作为抓取接近点和离开点。

移动到抓取接近点

  Mov PPick_pre
  Fine 0,P

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

移动到抓取点

  Mvs PPick
  Hlt

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

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

移动到抓取离开点

  Mvs PPick_pre

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

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

该页面是否有帮助?

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

我们重视您的隐私

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