MPC2000 Reference Manual [JAPANESE] [ENGLISH]
【ステートメント】   【制御文】
【使い方】
WAIT

WAIT SW(0)==1
WAIT SW(-2)
【書   式】 【機   能】
WAIT logical_eqations

条件待ち
【解   説】
WAIT SW(0)==0 SW(0)が0になるのを待つ
WAIT SW(-2) SW(-2)が1になるのを待つ
WAIT A==100 A==100の論理式が1になるのを待つ。つまり、Aが100になるのを待つ

また、条件式にはAND,OR等の接続詞を使用できます。タイムアウトが必要な場合には、
WAIT SW(1)&SW(2) OR TIMEOUT(0)
のように、OR TIMEOUT(0)追加するとタイムアウト処理も可能になります。

【MPC-2000】
MPC2200,MPC-1200,MPC-2000ではWAITに"UNTIL"を追加すると、リアルタイム対応となります
例えば、WAIT UNTIL HSW(192)==1
という記述では、このコマンドを実行したタスクは休止状態となり、かわってOSが条件式を実行します。
タスク切り替えのタイミングに、条件式が成立していれば、休止タスクをただちに実行状態にもどします。
ただし、UNTIL指定のWAIT文はOSへの負担が大きく、数多くのタスクがWAIT UNTILで条件待ちをすると、かえって処理が遅くなる場合もあります。
条件文自体も、単純なものにしてください。大きな論理結合があると負荷が大きくなり効果的ではありませんし、システムエラーが発生する場合があります。

WAIT UNTILは緊急性の高い単純な条件検出に対して使用してください。

この応答時間をより高速にするには、LIFE_TIMEコマンドでタイムスライスの時間を短くします。

注) MPC-3000、MPC-3200ではこのWAIT UNTILのUNTILは無視します。MPC-3000シリーズではタスクスイッチングを1msecとしているためにUNTIL機能が不要なためです。




10       timer_=10
20 WAIT SW(1)&SW(2) OR TIMEOUT(0)
30 IF TIMEOUT(0) THEN : GOTO *TIME_OUT : END_IF
  [LASTMODIFY]2019-10-04 14:34:07 [CREATEDATE]2007-09-21 19:48:59
MPC2000 Reference Manual -R5.11-   (C)2007 ACCEL Corp. all right reserved.