ID : 1997
マルチロボット
協調機能では、ロボット間が同期して動作するだけでなく、非同期で動作するしくみも提供しています。
非同期の動作コマンドが1台のコントローラで動作することで、排他処理、動作フローが分かりやすくなります。
ロボットの明示
1つのプログラムファイルで複数のロボットを動かす場合、"Robot*."を動作コマンドに付加し、どのロボットを動作させるかを明示します。
使用できる動作コマンドについては、「コマンド」を参照してください。
例
'Robot0とRobot1が動作するプログラム
Robot0.TakeArm 'ロボット0の起動権を取得
Robot1.TakeArm 'ロボット1を起動権を取得
Robot0.Move P, P1 'ロボット0をP1に移動
Robot1.Move P, P2 'ロボット1をP1に移動
"Robot*"は組み込みオブジェクトです。
"Robot*."を省略すると、デフォルトロボットとして動作します。
"Robot*."を省略すると、コンパイル時にワーニングが出ます。何度も出て操作しにくい場合は、プログラムパラメータの「308[協調]Robot番号省略時コンパイラ出力」でエラーが出ないよう設定を変更することもできます。
デフォルトロボットの指定
デフォルトロボットは、通常はRobot0ですが、"#pragma Optimize("DefaultRobot",<ロボット番号>)"コマンドで変更できます。
例えば、1つのプログラムファイルで1台のスレーブロボットのみを動かす場合、通常は動作コマンドに"Robot*."を付加する必要がありますが、デフォルトロボットをスレーブロボットに変更しておくことで、ロボットの指定を省略することができます。
例
'Robot1のみ動作するプログラム
#Pragma Optimize( "DefaultRobot", 1 )
TakeArm
Move P, P1
ID : 1997