プログラム

追従中止線を設定した場合、エラー4406は発生しません。追従中止線を設定した場合は、以下のプログラムのようにCnv_Flagを使用してください。中止線を使用しない場合は、このプログラムを使用しないでください。

キーポイント


  • プログラム2は、プログラム1で下流限などを調整し、Cnv_Flagが戻り値2, 3を返さなくなった後に使用してください。
  • プログラム1を使用する場合、下流限などの調整が不適切でもロボットは追従動作を中止するのでエラーが発生せずに動作します。ただし、追従動作の中止はタクトタイムの増加につながります。プログラム1を使用する場合も、下流限などの調整を行うことを推奨します。

プログラム1

Function RB1
  '待機位置P0へ移動
  Jump P0
  Do
    'ワークが上流限を越えるまで待機
    Wait Cnv_QueLen(1, CNV_QUELEN_PICKUPAREA) > 0
    Jump Cnv_QueGet(1)          'コンベヤートラッキング動作コマンド実行

    '正常状態の場合、ピッキングを実施する
   If Cnv_Flag(1) = 0 Then
       On Vacuum1               'ワークを吸着
       Wait 0.1

       'ピッキング中にワークが追従中止線を越え、追従動作を中止された場合、
       'ピッキング不良のワークを捨てる
       If Cnv_Flag(1) = 3 Then
          Jump P2               'ピッキング不良のワークを捨てる位置へ移動
          Off Vacuum1           'ワークを排出
          Wait 0.1
          Jump P0               '待機位置P0へ移動

       'ピッキングしたワークをプレイス位置P1へ移動
       Else
          Cnv_QueRemove 1, 0    'ピッキングしたキューを消去
          Jump P1               'ワークを離す位置へ移動
          Off Vacuum1           'ワークを離す
          Wait 0.1
       EndIf


'追従中止線を越える見込みのため、動作実行をキャンセルされた場合、キューを消去
    ElseIf Cnv_Flag(1) = 1 Then
       Cnv_QueRemove 1, 0       'キューデータ消去


'動作コマンド実行時のワークが追従開始領域外のため、'動作実行をキャンセルされた場合、キューを消去

    ElseIf Cnv_Flag(1) = 4 Then
       Cnv_QueRemove 1, 0       'キューデータ消去

    '追従中にワークが追従中止線を越えたため、追従動作を中止された場合、
    'キューを消去
    ElseIf Cnv_Flag(1) = 2 Then
       Cnv_QueRemove 1, 0       'キューデータ消去
       Jump P0                  '待機位置P0へ移動
    EndIf
  Loop
Fend

プログラム2

Function RB1

  '待機位置P0へ移動
  Jump P0
  Do
    'ワークが上流限を越えるまで待機
    Wait Cnv_QueLen(1, CNV_QUELEN_PICKUPAREA) > 0
    Jump Cnv_QueGet(1)             '追従開始

'正常状態の場合、ピッキングを実施する
    If Cnv_Flag(1) = 0 Then
       On Vacuum1                  'ワークを吸着
       Wait 0.1
       Cnv_QueRemove 1, 0          'ピッキングしたキューを消去
       Jump P1                     'ワークを離す位置へ移動
       Off Vacuum1                 'ワークを離す
       Wait 0.1

'追従中止線を越える見込みのため、動作実行をキャンセルされた場合、キューを消去
ElseIf Cnv_Flag(1) = 1 Then
       Cnv_QueRemove 1, 0          'キューデータ消去

    '動作コマンド実行時のワークが追従開始領域外のため、
    '動作実行をキャンセルされた場合、キューを消去
    ElseIf Cnv_Flag(1) = 4 Then
       Cnv_QueRemove 1, 0          'キューデータ消去
    EndIf
  Loop
Fend