SETOCCUPATIONTIME
(ステートメント)
【RC7_Ver.2.0 以降】

特権タスクの占有時間を変更します。

SETOCCUPATIONTIME <占有時間>

-
特権タスク使用/未使用が[未使用]になっている場合は何もしません。
-
特権タスク使用/未使用が[使用]になっている場合は以下の処理を実行します。<占有時間>には、0,2,4,6,8のいずれかが設定可能です。それぞれの設定値は、0: 0ms/8ms2: 2ms/8ms4: 4ms/8ms6: 6ms/8ms8: 8ms/8msを意味します。設定は特権タスク動作中でも可能であり、即反映されます。

0m/8msに設定した場合、PACプログラムの空いている時間を使って特権タスクは動作します。空いている時間がない場合特権タスクは動作しません。
8ms/8msに設定した場合、特権タスク動作中に、PACプログラムは動作しません。
PACプログラムと特権タスクを同時に走らすには、特権タスクに、DELAYまたはセマフォ待ちなどの処理を入れる必要があります。

下記のような3つのプログラムがある場合、通常は、PRO1とPRO2の実行を優先させたいが、ロボット動作の時のみは、PRO2の実行を多少犠牲にしても特権タスクの動作を優先させたい場合などに使用します。
PROGRAM TSR1
|
'特権タスクは何らかの動作範囲チェックプログラム
|
-------------
|
|
-------------
|
|
END
|
|
PROGRAM PRO1
|
|
TAKEARM
|
|
-------------
|
|
SETOCCUPATIONTIME 4
|
'特権タスクの占有時間を4msec/8msecにする
|
MOVE P,P0
|
'ロボット動作
|
SETOCCUPATIONTIME 2
|
'特権タスクの占有時間をデフォルトの2msec/8msecに戻す
|
-------------
|
|
END
|
|
PROGRAM PRO2
|
|
DO WHILE 1
|
|
-------------
|
|
LOOP
|
|
END
|
|