割り込み制御
ICTL命令は、割り込みの実行許可/禁止の指定を行います。ICTL命令が実行される毎に、割り込みプログラムの実行許可/禁止のパラメータを設定します。パラメータs1_Control、s2_Conditionによって設定します。
s1_Control 割り込みの種類と制御する機能を指定する16ビットエリア
s2_Condition 割り込みプログラム実行許可/禁止を指定する16ビットエリア
入力
割り込みの種類と制御する機能を指定
割り込みプログラム実行許可/禁止を指定
制御可能な割り込みプログラム数:
割り込み入力による割り込み(INT 0~INT 15)
高機能モジュール(位置決めなどの特殊モジュール)による割り込み(INT 16~INT 23)
定時割り込みプログラム(INT 24) (FP2/2SH, FP10SHの場合: 0.5ms単位)
ICTL 命令は、ICTL トリガの立ち上がりで1度実行されるようにしてください。これにはDF 立ち上がりエッジ検出(微分)命令を使用します。
複数のICTL命令が同一のトリガを持つことができます。
ビット |
15 .. 8 |
7 .. 0 |
---|---|---|
s1_Control 16# |
制御する機能の選択 00: 割り込み許可/禁止 01: 割り込みクリア(トリガリセット) |
割り込みの種類の選択 00: 割り込み入力による割り込み(INT 0~15) 01: 高機能ユニットによる割り込み(INT 16~23) 02: 定時割り込み(INT 24) |
s2_Condition 2# |
ビット0: 割り込みプログラム 0 の実行を禁止するとき0 を指定 ビット0: 割り込みプログラム 0 の実行を許可するとき1 を指定 ビット1: 割り込みプログラム 1 の実行を禁止するとき0 を指定 ... ビット15: 割り込みプログラム 15 の実行を許可するとき1 を指定 例: s2 = 2#0000000000001010 |
割り込み入力の実行許可/禁止の状態は、システム変数sys_wInterruptMask_0_15で確認することができます。
高機能ユニットによる割り込みの実行許可/禁止の状態は、システム変数sys_wInterruptMask_16_31で確認することができます。
定時割り込みの時間間隔は、システム変数sys_iPeriodicInterruptIntervalで確認することができます。
割り込みタスクにプログラムを書き込むと、プログラム開始時の初期化ルーチン中に、関連する割り込みが自動的に許可されます。
ICTL命令を使って、プログラムで割り込みタスクを許可/禁止することができます。