RUN  (ステートメント)


別プログラムを並列起動します。


RUN <プログラム名> [(<引数>[,<引数>…])][,<RUNオプション>]


現在実行中のプログラムから、<プログラム名>に指定したプログラムを並列に起動します。自プログラムをRUNすることはできません。
<引数>
<引数>には、値渡しのみ使用できます。参照渡しを指定した場合は自動的に値渡しになりますが、ローカル配列は使用することができません。
<RUN オプション>
<RUN オプション>には、次の3つのオプションが指定できます。
PRIORITY(もしくはP)
プログラムの優先度を指定します。省略するとデフォルト値128 として処置します。
数値が小さいほど優先度が高くなります。設定範囲は、102~255 の間です。
特権タスクの優先順位は変更できません。
CYCLE(もしくはC)
スイッチング周期(プログラムを繰り返し起動する場合のサイクル毎の間隔)を指定します。単位は、msec です。設定範囲は、1~2147483647 の間です。
引数を伴うプログラムは、CYCLE オプションを付けて起動できません。
RESULT(v2.6以降のコントローラ)
RUNコマンド実行時に、内部エラーが発生してもプログラムを停止させません。RESULT=(変数名)で指定した変数に内部エラーのエラーコードを格納します。



  • SUSPEND命令にて動作停止中のタスクを再度RUNさせる場合は、動作が停止してからRUNするようにしてください。動作停止完了前にRUNをかけ再動作させると、指令速度制限オーバなどのエラーになります。
  • CYCLEオプションを使用する際は、命令実行中に瞬時停止を行ない再起動すると、一時停止中もサイクル同期経過が進むので注意してください。
  • ティーチチェックモードではRUN命令は実行されません。


DEFINT Li1 = 1, Li2 = 2, Li3 = 3
RUN samp1, C = 1000
'samp1を並列に(C = 1000)起動します。
RUN samp2 (Li1)
'samp2にLi1の引数を付けて並列に起動します。
RUN samp3 (Li1, Li2), PRIORITY = 129
'samp3にLi1,Li2の引数を付けて並列に(P = 129)
'起動します。
RUN samp4 (Li1, Li2), PRIORITY = 150
'samp4にLi1,Li2の引数を付けて並列に(P = 150)
'起動します。
RUN samp5 (Li1, Li2, Li3), PRIORITY = 120
'samp5にLi1,Li2,Li3の引数を付けて並列に(P = 120)
'起動します。
RUN samp6, RESULT = I1
'samp6 を起動させます。
'RUN失敗時、変数I1にエラーコードを格納し次の行に
'移ります。