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