使用範例

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屬性嚮導中設定零件放置位置。

有關攝影機觸發器信號的連接以及視覺校準等,請參閱以下手冊。

「Vision Guide 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