ID : 157
MotionSkip
機能
現在実行中の動作命令を中断します。
構文
MotionSkip [アームグループ[, 動作継続オプション]]
指定項目
- アームグループ
- アームグループ番号を整数型データで指定します。"0"を指定すると、アームグループ番号0番または、ロボット軸を含むアームグループが指定されます。"-1"を指定すると、そのタスクが現在制御権を取得しているアームグループが指定されます。省略可能です。省略時は"-1"です。
- 動作継続オプション
- 「現在動作を停止させる時の減速度」と「次に実行する動作命令の開始タイミング」を整数型データで指定します。指定する値は下表を参照してください。省略可能です。省略時は"0"です。
指定値 現在動作を停止させる時の減速度 次に実行する動作命令の開始タイミング 0 または省略時 減速度=100 エンド動作(@0) 1 減速度=100 パス動作(@P) 2 減速度=現在の設定値 エンド動作(@0) 3 減速度=現在の設定値 パス動作(@P) 「エンド動作(@0)」を指定した場合、現在実行中の動作命令は、「パス開始変位量」が「エンド動作@0」に変更されます。次の動作命令は、現在動作の停止を待って実行を開始します。
「パス動作(@P)」を指定した場合、現在実行中の動作命令は、「パス開始変位量」が「パス動作@P」に変更されます。次の動作命令は、現在動作の減速開始と同時に実行を開始します。
解説
指定したアームグループの動作命令を中断します。その動作を減速して停止します。
引数アームグループに"-1"を指定する(あるいは省略する)と、自タスクで現在動作している動作命令を中断します。
指定したアームグループが動作中でない場合は何もしません。
関連項目
注意事項
ロボット排他制御機能有効時に、動作継続オプションで、次に実行する動作命令の開始タイミングにパス動作(@P)を指定した場合、エンド動作(@0)に変更され、次の動作命令は、現在動作の停止を待って実行を開始します。
用例
'!TITLE "動作命令の中断"
' 動作命令中にZ成分が400以上の時、動作を中断
Sub Sample_MotionSkip
Dim aaa As Position
TakeArm Keep = 1
aaa = P( 500, 300, 500, 180, 0, 180, -1 )
' 現在位置からaaaに移動開始後、次の処理へ移動
Move P, aaa, Next
Do
' Zの現在位置が400以上の時
If PosZ( CurPos ) > 400 Then
' 動作命令を中止
MotionSkip 0
' メッセージ出力ウィンドウに現在位置を表示
PrintDbg CurPos
' DO~LOOPから脱出
Exit Do
End If
Loop
End Sub
ID : 157