ID : 5933
SyncMoveオプション(協調機能オプション)
機能
協調機能で使用するオプションです。このオプションを付けると、リーダロボットの動作に対応して、自動的にフォロワロボットが動作します。
下記動作コマンドに使用できます。
Approach、Depart、Draw、Move、Rotate、RotateH
このオプションはVer.1.9.*から有効です。
構文
[Robot*.]動作コマンド , SyncMove = (フォロワロボット番号[,フォロワロボット番号[,フォロワロボット番号]])ただし、フォロワロボットが1台の場合はカッコは省略可能です。
[Robot*.]動作コマンド , SyncMove = フォロワロボット番号
指定項目
- 動作コマンド
動作コマンドを記述します。それぞれの動作コマンドの記述は、各コマンドのマニュアルを参照ください。
例
Robot0.Move L, P0, SyncMove = Robot1
ただし「目標位置の連続記述」はできません。動作補間方法のPTPも指定できません。
例
下記のP[5]は使用できません。Robot0.Move L, P[2], P[5], Speed = 30, Next, SyncMove = Robot1
下記のPは使用できません。
Robot0.Move P, P[2], Speed = 30, Next, SyncMove = Robot
- フォロワロボット番号
- フォロワロボットを、Robot1、Robot2の形式で記述します。
またはRobot0.Move L, P0, SyncMove = ( Robot1 )
Robot0.Move L, P0, SyncMove = ( Robot1,Robot2 )
Robot0.Move L, P0, SyncMove = Robot1
'フォロワロボットが1台の場合はカッコは省略可能 Robot0.Move L, P0, SyncMove = ( Robot1,Robot2 )
解説
動作開始時のリーダとフォロワの手先の相対位置を維持しながら、リーダの動作に合わせてフォロワも動作します。このような動作を"協調動作"と呼びます。フォロワ位置を指示しなくても、自動でリーダの動きに合わせるため、搬送動作を簡易に記述することができます。
この動作を行う前に、あらかじめ、リーダとフォロワのベース座標設定を行ってください。リーダとフォロワの位置関係がずれていると正しく動作しません。
このオプションの付いたコマンドを実行するには、指定したそれぞれのロボット軸の制御権を取得しなければなりません。
関連事項
SyncTime注意事項
- ArchMoveは対応していません。
- 通常の動作コマンドと協調の動作コマンドは、パスでつなげることはできません。
Move P, @P P0 '@p指定できません。次行で実行時エラーになります Robot0.Move L, P0, SyncMove = Robot1
-
協調動作どうしをパス動作(ここでは位置指定のパス動作を含みます)でつなげる場合、以下の注意点があります。
3台以上のロボットをパス動作させることはできません。 2台のロボットをパス動作させる場合、ロボットの組合せが一致している必要があります。 動作可能なパターンと動作不可能なパターンの例を下図に示します。
動作可能 Robot0とRobot1の動作をパス動作でつなげる(パス動作させるロボットの組合せが一致しているパターン)。
'プログラム例 Robot0.Move L, @P P1, SyncMove = (Robot1), Next Robot0.Move L, P2, SyncMove = (Robot1)
Robot0とRobot1の組合せでの動作と、Robot2とRobot3の組合せでの動作を、NEXTオプションで実行した後、Robot0とRobot1の動作をパス動作でつなげる(パス動作させるロボットの組合せが一致しているパターン)。
'プログラム例 Robot0.Move L, @P P1, SyncMove = (Robot1), Next Robot2.Move L, P11, SyncMove = (Robot3), Next Robot0.Move L, P2, SyncMove = (Robot1)
この場合、2番目の動作には、1番目の動作でのロボット(Robot0とRobot1)が含まれていなことが重要です。2番目の動作に、Robot0またはRobot1のどちらかが含まれている場合、1番目の動作とパス動作でつなげようとしてしまいます。その結果、ロボットの組合せが一致しないため、動作させることができません。
動作不可能 Robot0とRobot1の動作と、Robot0とRobot1およびRobot2の動作をパス動作でつなげる(パス動作させるロボットが3台以上であり、かつ、組合せが一致してないパターン)。
'プログラム例 Robot0.Move L, @P P1, SyncMove = (Robot1), Next Robot0.Move L, P2, SyncMove = (Robot1,Robot2)
Robot0とRobot1の動作と、Robot1とRobot2の動作をパス動作でつなげる(パス動作させるロボットの組合せが一致していないパターン)。
'プログラム例 Robot0.Move L, @P P1, SyncMove = (Robot1), Next Robot1.Move L, P2, SyncMove = (Robot2)
- 次のいずれかの条件に該当する場合、ある特定の動作をさせると、複数のロボットの動作開始タイミングにずれが生じるときがあります。
ロボットコントローラどうしの通信方法として、Ehernetのみを使用する場合。 協調制御同期オプションが"同期精度向上"に設定されていない場合(協調制御同期オプションの初期値は"同期精度向上です")。 ロボットコントローラのソフトウェアバージョンが、2.5.*より古い場合。 特定の動作とは、同期動作(SycnTimeコマンドを使用する動作)または協調動作を、次の順番で実行した場合の動作です。
1. パス開始変位に@E以外を指定し、かつ、同期動作または協調動作の両動作以外の動作を実行 2. 同期動作または協調動作を実行 上記の場合において、動作開始タイミングのずれを抑えるには、同期動作または協調動作の直前の動作コマンドを、次のいずれかの内容のように変更してください。
直前のコマンドのパス開始変位を@Eにする。 直前のコマンドのパス開始変位を@0にして、同期動作または協調動作との間にDelayコマンドを入れて調整する。 例1
Move P, @0 P0 'SyncMove直前の動作はパス開始変位に@0か@Eを指定する Delay( 30 ) '@0の場合はSyncMoveとの間にDelayコマンドを入れる。@Eの場合はDelayは不要 Robot0.Move L, P1, SyncMove = Robot1
例2
'SyncMove直前の動作コマンドがSyncTime,SyncMoveの場合はDelay不要 Robot0.Move L, P2, SyncMove = Robot1 Robot0.Move L, P3, SyncMove = Robot1
協調制御同期オプションについて
- ソフトウェアバージョンが2.5.*より古いロボットコントローラには、協調制御同期オプションはありません。
- ソフトウェアバージョンが2.5.*より古いロボットコントローラのデータ(プロジェクト)を、ソフトウェアバージョンが2.5.*以降のロボットコントローラで使用する場合、協調制御同期オプションは"標準"となっています。
- 協調制御同期オプションの設定を変更すると、ロボットプログラムのサイクルタイムが変わる可能性があります。
-
協調制御同期オプションの設定/確認をするには、まず、ユーザレベルを「メンテナ」にした後、下記操作経路でティーチングペンダントを操作します。
操作経路 : [F6 設定]-[F9 協調] [協調設定]ウィンドウを開くので、No.76の"協調制御同期オプション"を設定/確認します。
用例
Robot0.TakeArm 'ロボット0の制御権を取得
Robot1.TakeArm 'ロボット1の制御権を取得
Robot0.Move L, P0, SyncMove = Robot1
ID : 5933