Trap (トラップ)

Trap命令を使用すると、イベント発生により、ラベルにジャンプする、またはファンクションを呼び出すことができます。

Trap命令には、次の2つのタイプがあります。

  • ユーザーの定義する入力状態をイベントにするTrap (4個)
  • システム状態をイベントにするTrap (7個)

Trapファンクションは短くし、連続ループは避けてください。Trapの種類により、Trapの再設定が必要なものと不必要なものがあります。また、実行できるコマンドが制限されています。

Trap命令の詳細は、以下のマニュアルを参照してください。

"SPEL+ランゲージリファレンス"

次のプログラムは簡単なTrap命令です。入力1がオンすると、Sw1でTrapのタスクが実行されます。

Function main
  ' トラップの設定
  Trap 1 Sw(1) = On Xqt Sw1Trap
  Do
    RunCycle
  Loop
Fend

Function Sw1Trap
  ' 出力1を2秒間オン
  On 1, 2
  ' トラップの条件が解除されるまで待機
  Wait Sw(1) = Off
  ' トラップの再設定
  Trap 1 Sw(1) = On Xqt Sw1Trap
Fend
Trap 解説
Trap 1 - 4 Goto ユーザーの指定する入力条件をトリガーにします。トリガー発生時の処理としてGoTo, Call, Xqtが指定できます。
Trap 1 - 4 Call
Trap 1 - 4 Xqt
Trap Emergency Xqt 非常停止が発生したとき、指定のファンクションが実行されます。
Trap Error Xqt エラーが発生したとき、指定のファンクションが実行されます。
Trap SgOpen Xqt 安全扉回路が開いたとき、指定のファンクションが実行されます。
Trap SgClose Xqt 安全扉回路が閉じたとき、指定のファンクションが実行されます。
Trap Pause Xqt 一時停止状態に入ったとき、指定のファンクションが実行されます。
Trap Abort Xqt ユーザー、またはシステムによってすべてのタスク (バックグラウンドタスクをのぞく)が停止したとき (Abort Allに相当する命令が実行されたときや中断ボタンが押されたとき)、指定のファンクションが実行されます。
Trap Finish Xqt 全てのタスク (バックグラウンドタスクをのぞく)が終了したとき、指定のファンクションが実行されます。Trap Abortが実行される条件では実行されません。