表示器から選択した変数に値が入力されると、変数値を入力トリガーがオペレーションを実行します。
このトリガーは、入力値が現在値と同じ場合でも発生します。

onVariableInput(VARIABLE, ()=>{
1
});
1: 変数
表示器ではなく、接続機器から直接外部変数に値が入力された場合、トリガーは実行されません。
外部変数のクオリティ状態が「good」以外の場合は、外部変数に値が入力されてもトリガーは実行されません。ソースプロパティ (<変数名>.Quality) で変数のクオリティ状態を監視できます。
変数
(例)
onVariableInput(DINT1, ()=>{
DINT2 += 20;
});
[変数値を入力] トリガーと同様の機能をもつ [値の変更] トリガーを使用することもできます。[変数値を入力] トリガーで対応できない場合は、[値の変更] トリガーの使用を検討してください。
この 2 つのトリガーの違いを以下に説明します。
| [変数値を入力] | [値の変更] | |
| トリガーの対象 | 変数のみ | 変数とソースプロパティ |
| デバイスアドレスから直接外部変数に値が入力された場合 | トリガーが実行されない。 | トリガーが実行される。 |
| 現在値と同じ値が入力された場合 | トリガーが実行される。 | トリガーが実行されない。 |
[変数値を入力] トリガーと接続されたブロックにスレーブデバイスドライバー以外の同じ外部変数を割り当てると、接続されたブロックから入力値ではなく現在値が参照される場合があります。
onVariableInput(Var1, ()=>{
$GraphicObject.NumericDisplay2.CurrentValue = Var1;
});
| 変数の種類 | ドライバー | 非同期型オペレーションの使用 *2 | 接続されたブロックから参照される変数値 |
| 内部変数 | - | 適用 | 入力値 |
| 不適用 | 入力値 | ||
| 外部変数 | スレーブデバイスドライバー *1 | 適用 | 入力値 |
| 不適用 | 入力値 | ||
| スレーブデバイスドライバー以外 | 適用 | 入力値 | |
| 不適用 | 現在値 (値が入力される前の値) |
*1 スレーブデバイスドライバーは以下を含みます。
*2 [変数値を入力] トリガーと目的のオペレーションの間に非同期型オペレーションを挿入する場合。
onVariableInput(Var1, ()=>{
exportAlarmData(false, false, $Enums.AlarmMode.Log);
$GraphicObject.NumericDisplay2.CurrentValue = Var1;
});
非同期型オペレーションについての詳細は、以下を参照してください。
オペレーションブロック
表の一番下の項目に該当する場合は、[変数値を入力] トリガーの代わりに [値の変更] トリガーの使用を検討してください。
[値の変更] トリガーと [変数値を入力] トリガーの違いについての詳細は、本トピックの「[変数値を入力] トリガーと [値の変更] トリガーの違い」を参照してください。
[値の変更] トリガーについての詳細は、以下を参照してください。
値の変更