<< 前へ        次へ >>

ID : 5121

タスクの違い

PacScriptには通常タスクとは別に、特権タスクと操作盤タスクがあります。

特権タスクと操作盤タスクはエラーが発生しても止まらない、非常停止を押しても止まらない、手動モードで実行可能など、通常タスクに比べ停止しにくくなっています。また、エラー発生時の復帰処置などシステム的なふるまいを記述することができます。ただしロボットを制御するコマンドを実行することはできません。(Takearmできません。ロボットを制御するにはRUNコマンドで通常タスクを起動させて間接的に制御する必要があります。)

停止時のタスクごとの違い

条件 停止動作
通常タスク 特権タスク
(タスク名TSR**)
操作盤タスク
(*.pns)※1

全プログラム

停止

全プログラム
非常停止
× ×
全プログラム
瞬時停止

(一時停止)
× ×
全プログラム
ステップ停止

(ステップ停止)
× ×
自動モード時に
防護停止ON

(一時停止)
× ×
自動モード時に
自動イネーブルOFF

(一時停止)
× ×
STOPボタン
(一時停止)
× ×
モード切替
(自動⇔手動⇔ティーチチェック)

(一時停止)
× ×
自タスクでの
エラー発生※2
レベル1
(一時停止)
○※3 ○※3
レベル2
(一時停止)
○※3 ○※3
レベル3
レベル4
レベル5

自タスク以外でのエラー発生

レベル1
(一時停止)
× ×
レベル2
(一時停止)
× ×
レベル3 × ×
レベル4 × ×
レベル5

○: 停止中

△: コンティニュ停止中

×: 停止しない

※1: 操作盤タスクは操作盤を表示したとき、自動で起動されるプログラムです。

※2: 特権タスクや、操作盤タスクでも、自タスクでエラーが発生した場合は停止します。停止させないようにするためには、プログラムの作成を考慮する必要があります。下記の「エラー対策プログラム例」を参照してください。

※3: 特権タスク、操作盤タスク内でのエラーは、レベルに関わらず停止状態になります。(レベル1、2のエラーが発生した場合は、レベル3エラーとして処理されます)

エラー対策プログラム例

非常停止が押された状態でボタンを押したら、操作盤タスクが止まってしまう例です。

「0x8150101A 非常停止ON中は実行できません。」のエラーで操作盤タスクが止まります。

元のプログラム

Sub PB1_CLICKED()
  Run pro1
End Sub

停止させないようにするためには、以下の3つの方法があります。

  • Pro1が動作コマンドを含まなければ特権タスクにする
Sub PB1_CLICKED()
  Run TSR1
End Sub
  • エラー発生時に行をスキップ
Sub PB1_CLICKED()
  On Error Resume Next 
  Run pro1
  On Error GoTo 0 
End Sub
  • 条件により処理させない
Sub PB1_CLICKED()
 if (sysstate and &h400) <> &h400 then '非常停止ONでない
  run pro1
 end if
End Sub

起動時のタスクごとの違い

特権タスク、操作盤タスクからRUNコマンドで別のタスク起動する時は下記のようになります。

起動時条件 起動可能/不可
通常タスク 特権タスク
(タスク名TSR**)
操作盤タスク
(*.pns)※1
自動モード
手動モード ×(エラー出ず無視)
ティーチチェックモード ×(エラー出ず無視)
非常停止ON状態 ×
自動モード時に防護停止ON状態 ×
停止処理中
(モード切替[自動⇔手動⇔ティーチチェック]、STOPボタン、非常停止等)※2
×
レベル1エラー発生中 ×
レベル2エラー発生中 ×
レベル3エラー発生中 ×
レベル4エラー発生中 ×
レベル5エラー発生中 × × ×

○: 起動可能

×: 起動不可

※1: 操作盤タスクは操作盤を表示したとき、自動で起動されるプログラムです。

※2: モード切替等で全プログラム停止が入った場合、通常タスクとロボットが一度完全に止まるまで次の起動ができません。全プログラム停止からロボットとプログラムが完全に止まるまでの時間が停止処理中になります。停止処理中の状態はSYSSTATEコマンドで取得できます。

ID : 5121

<< 前へ        次へ >>