コンベヤー単体動作

コンベヤーオブジェクトと、センサーに相当する検出領域オブジェクトを利用した、コンベヤーシステムを作成してみましょう。

この例では、コンベヤー上を流れるワーク (パーツ)をセンサーが検出すると、コンベヤーが停止し、ロボットがワーク (パーツ)を、Pick & Place 動作で、コンベヤー上からテーブルに移動させます。

手順概要

  1. 仮想コントローラーを作成して、ロボットを設定する
  2. プロジェクトを作成する
  3. ワーク (パーツ)に相当するオブジェクトを追加する
  4. テーブルに相当するオブジェクトを追加・設定する
  5. コンベヤーオブジェクトを追加・設定する
  6. コンベヤーオブジェクトの供給設定・確認を実施する
  7. 検出領域オブジェクトを追加・設定する
  8. プログラムを作成・実行する

手順詳細

  1. 準備

    1. 仮想コントローラー接続を新規に作成します。
      システム設定において、ロボット1を "GX8-C652S" (名前はrobot1)に設定します。

    2. プロジェクト "Conv_Sensor" を作成します。

    3. コンベヤーで搬送するワーク (パーツ)に相当するBoxオブジェクト (SBox_1)を追加し、次のように設定します。

      • 適当な色に変更します
      • 位置設定 (Position X, Y, Z) : 550, 550, 25 (作業の妨げにならない位置に移動させます)
    4. ワーク (パーツ)の配置先となるテーブル (Boxオブジェクト)を追加し、次のように設定します。

      • オブジェクト名 (Name) : Table
      • サイズ設定 (Half size X, Y, Z) : 40, 300, 50
      • 位置設定 (Position X, Y, Z) : 550, 0, 50
    5. コンベヤーオブジェクトを追加して、次のように設定します。

      • 位置設定 (Position X, Y, Z) : 400, 0, 100
      • 姿勢設定 (Rotation Z) : 90
      • サイズ設定 (Half size Height, Width) : 500, 100
    6. ワーク (パーツ)の供給設定を行います。

      1. 直前の手順で追加したコンベヤーオブジェクトの "Operation" - "Supply" プロパティーをクリックします。
      2. 表示された供給設定ダイアログにおいて、[供給有効]にチェックを入れます。
      3. [ベースオブジェクト]に、前述の手順で追加した"SBox_1"を設定します。
      4. [間隔]の[Min]と[Max]のそれぞれを"3.000"に設定します。
      5. [オフセット]の[Z]を"26.000"に設定します。

    7. センサーに相当する検出領域オブジェクト "DetectionArea_1" を追加して、次のように設定します。

      • 位置設定 (Position X, Y, Z) : 400, -30, 125
      • 姿勢設定 (Rotation Z) : 90
      • センサー設定 (Sensor - IO Type) : Input
      • センサー設定 (Sensor - IO Number) : 10
      • センサー設定 (Sendor – Duration) : 1
    8. シミュレーター設定を保存します (Ctrl + S)。

  2. 動作確認

    次の手順で、ワーク (パーツ)が正しく検出されるかどうかを確認します。

    1. コンベヤー操作パネルを開きます。

    2. コンベヤーオブジェクトの動作を開始し、ワーク (パーツ)を搬送させます。

    3. ワークが検出領域オブジェクトと接触した際に、検出領域オブジェクトの色が変わることを確認します。

    4. ワーク (パーツ)が問題なく検出できたら、一度、コンベヤー上のワーク (パーツ)を削除します。

    5. コンベヤーオブジェクトを右クリックして、[全ての子を削除]を選択します。

  3. プログラム作成

    以下のプログラムを、Main.prg として作成します。

    Function main
       SimSet Conveyor_1.ClearSupply
    
       Motor On
       Power High
       Speed 100
       Accel 100, 100
    
       Integer i
       String name$
    
       TmReset 0
    
       For i = 1 To 10
     	   SimSet Conveyor_1.Start
     	   Wait Sw(10)
     	   SimSet Conveyor_1.Stop
     	   Wait 0.5
    
     	   Jump XY(400, 0, -135, 0)
    
     	   name$ = "Conveyor_1_" + Str$(i)
     	   SimSet robot1.Pick, name$
    
     	   Jump XY(550, i * 60 - 320, -135, 0)
    
     	   SimSet robot1.Place, name$, Table
        Next
    
        Print "Finished, ", Tmr(0), "[s]"
    Fend
    
  4. プログラム実行

    1. ツールバーの[Runウィンドウ]ボタンをクリックし、Runウィンドウを表示します。

    2. ツールバーの[I/Oモニター]ボタンをクリックし、I/Oモニターを表示します。

    3. Runウィンドウにおいて、ファンクション "main" を選択して、[開始]ボタンをクリックします。

    4. 検出領域オブジェクトに設定したプロパティーによって、入力ビットの10番の変化が確認できます。