用法

1. 基本示例

以下程序只是一个样例,即将任何触发信号连接到控制器的R-I/O连接器上,在触发输入端运行时锁存机器人的位置信息,并显示锁存位置信息。

Function Main
  Motor On
  Power High

  Speed 50; Accel 50, 50
  SpeedS 500; AccelS 5000

  Go P0                             '起始位置
  SetLatch SETLATCH_PORT_CU_0, SETLATCH_TRIGGERMODE_LEADINGEDGE, 4
  LatchEnable On                    '启用锁存
  Move P1                           '开始运行,运行时触发输入

  Wait LatchState = True            '确认完成锁存
  P3 = LatchPos(WithoutToolArm, 1)  '获取锁存位置1
  P4 = LatchPos(WithoutToolArm, 2)  '获取锁存位置2
  P5 = LatchPos(WithoutToolArm, 3)  '获取锁存位置3
  P6 = LatchPos(WithoutToolArm, 4)  '获取锁存位置4
  LatchEnable Off                   '锁存无效

  Print P3                          '显示锁存位置1
  Print P4                          '显示锁存位置2
  Print P5                          '显示锁存位置3
  Print P6                          '显示锁存位置4
Fend

省略参数时的程序示例

Function Main
  Motor On
  Power High

  Speed 50; Accel 50, 50
  SpeedS 500; AccelS 5000

  Go P0                             '起始位置
  SetLatch SETLATCH_PORT_CU_0, SETLATCH_TRIGGERMODE_LEADINGEDGE
  LatchEnable On                    '启用锁存
  Move P1                           '开始运行,运行时触发输入

  Wait LatchState = True            '确认完成锁存
  P3 = LatchPos                     '获取锁存的位置
  LatchEnable Off                   '锁存无效

  Print P3                          '显示锁存的位置
Fend

2. 视觉系统示例

这是一个例子,使用机器人夹具末端搬运工件,不停地通过外部固定向上相机采集点上方,并通过适当的位置校正来组装工件。

该系统有一个传输型传感器,可在机器人的夹具末端搬运工件并通过相机采集点输出触发信号。然后,它将传感器输出连接到R-I/O和相机触发器上进行外部调谐,并同步锁存的机器人位置信息及相机图像。它计算工件的位置误差,并将相机图像中的机器人位置信息与实时I/O中的机器人位置信息进行比较来纠正这个位置的偏移。

在这种情况下,机器人视觉系统必须作为固定向上相机进行校准。此外,通过预先注册工件位置,就可以使用CalRobotPlacePos结果获取用于精确放置工件的机器人位置信息。工件放置位置可以在CalRobotPlacePos属性向导中设置。

有关相机触发信号的连接和视觉校正的详细说明,请参阅以下手册。

《视觉指南8.0》

下面的程序是一个样例。

Function Main
  Robot 1
  Motor On
  Power High

  Speed 100
  Accel 100, 100

  Jump InitPos                                   '移至起始位置
  Wait 1.0

  SetLatch 24, SETLATCH_TRIGGERMODE_LEADINGEDGE  '设置锁存条件

  MemOff 0
  Xqt PictureOnFly_Camera                        '开始拍摄任务

  Jump StartPos C0                               '移至工件进给点
  Wait 0.5

  LatchEnable On                                 '开始等待锁存

  MemOn 0                                        '启用拍照

  Jump FrontPos C0 CP                            '移向相机上方前侧
  Go PassingPos CP                               '越过相机

  Go TargetPos :Z(-70) CP                        '移动至组装点上方

  Wait MemSw(1) = On                             '等待图像处理完成
  Wait LatchState = True                         '等待位置锁存完成
  LatchEnable Off                                '禁用位置锁存
  Jump ExactTargetPos C0 LimZ (-70)              '移动至组装点
  Wait 0.5

  Jump InitPos                                   '移至起始位置
  Wait 0.5

  Motor Off

Fend

执行从工件图像捕捉到工件位置获取的功能

Function PictureOnFly_Camera

  '视觉效果变量
  Integer AcqStat         '频闪成像完成标志
  Boolean Found           '工件检测状态

  Wait MemSw(0) = On      '等待成像开始标志
  MemOff 1                '清除成像完成标志
  MemOff 0                '清除成像开始标志
  AcqStat = 0             '清除频闪成像标志

  VRun PictureOnFly_i


  Do Until AcqStat = 3    '等待频闪
    VGet PictureOnFly_i.AcquireState, AcqStat
  Loop

  '检查已检测到工件
  VGet PictureOnFly_i.Geom01.Found, Found

  If Found = False Then
    Print "Work NotFound"
    Pause
  EndIf

  Wait LatchState = True  '等待触发

  '在拍摄位置(触发位置)中设定视觉
  VSet PictureOnFly_i.RobotPos, LatchPos (WithoutToolArm)

  '获取机器人位置
  VGet PictureOnFly_i.Geom01.RobotPlacePos, Found, ExactTargetPos

  MemOn   1               '变更相机成像标志
Fend