MotionComp
(ライブラリ)
【Ver.1.5 以降】

動作命令実行が完了したかどうかを判断します。(Ver. 1.5以降対応)

MotionComp(<動作命令完了状態>)

動作命令実行完了の時、1を<動作命令完了状態>で返します。
MotionComp命令を実行したタスクで実行中の動作命令の実行完了を判断します。別タスクの動作は判断しません。
命令がエンコーダ値確認動作の場合、エンコーダ値収束にて動作完了と判断します。それ以外の場合は、動作指令値が停止した時動作完了と判断します。


-
制御権を取得(TAKEARM)したタスクにて実行ください。制御権未取得の場合は、エラー「実行できません」が発生します。
-
ロボット動作タスクにてMotionComp命令を実行した場合、ロボット動作命令の完了を判断します。付加軸動作タスクにてMotionComp命令を実行した場合は付加軸動作の完了を判断します。ロボットと付加軸を含むアームグループの動作タスクにてMotionComp命令を実行した場合、ロボット、付加軸同期動作を完了と判断します
-
瞬時停止中は、動作中と判断します。
-
<動作命令完了状態>にローカル変数を使用する場合、ローカル変数はあらかじめ0に初期化しておいてください。

defint comp=0
|
'動作命令完了状態の初期化
|
defjnt lj1
|
|
defsng lf1
|
|
move p,P1,next
|
|
DO
|
|
lj1=GetSrvData(2)
|
'各軸の偏差を取り込む
|
lf1=ABS(JOINT(2,lj1))
|
'2軸の偏差を抽出する
|
if lf1 > 10000 then
|
|
CALL MotionSkip
|
'2軸の偏差が10000(Pulse)を超えたら動作命令を中断し、
'ループを終了します。
|
EXIT DO
|
|
endif
|
|
CALL MotionComp(comp)
|
|
LOOP UNTIL comp=1
|
'動作命令が完了するまでループします。
|
|
|