変数
概要と主要な概念
この共有アセットを使用すると、任意の種類のデータを格納し、そのデータを読み込みまたは変更できます。
[変数]は、限りがあるアセットではないという点で、他の共有アセットとは異なります。トークンは遅延や中断することなく自由に[変数]を読み込み、設定できます。[変数]はトークンや他のオブジェクトのラベルと同じように使用できますが、処理フロー全体で簡単にアクセスできる値を中央で参照できるようになりました。さらに、[変数]が変更されているときや読み込まれているときにリッスンできるという追加機能があります。
[変数]は、[変数を設定]アクティビティで変更し、[変数を取得]アクティビティで読み込みます。
変数値
[変数]は、さまざまなものをポイントしたり、値にしたりできる点で非常に柔軟です。たとえば、次のようなものをポイントしたり、値にしたりできます。
- 数値 - [変数]または[値]ボックスに数値が入力されている場合、これはリセット時の変数の初期値になります。[変数]の値は内部に格納されます。値を別の数値に変更したり、値を文字列、オブジェクト、配列などに変更したりすることもできます。
- 文字列 - [数値]と同じように動作します。
- 配列 - [数値]と同じように動作します。
- オブジェクト - [数値]と同じように動作します。
- ノード - [変数]または[値]ボックスがデータを持つノードを参照する場合、値はノードの値になります。[変数]を設定すると、ノードの値が設定されます。数値と同様に、[変数]を数値、文字列、オブジェクトなどに設定し、ノードの値に新しい値を反映させることができます。
- 追跡変数 - グローバル追跡変数、ノードに格納された追跡変数、またはテーブルセルを参照したり、内部追跡変数を作成したりできます。[タイプ]を[ローカル]に設定した[内部追跡変数]は、処理フローの各インスタンスに対して変数を作成します。
- テーブルセル - 次の例のように、ノードと同じように動作します。例:
Table("GlobalTable1").cell(1, 1)
- テーブル値 -
Table("GlobalTable1")[1][1]
を使用してテーブルから値を取得する場合、[変数]はこれを初期値として使用して内部に格納します。これは、[数値]のように動作します。[変数]を設定すると内部値のみが設定され、テーブルの値は変更されません。 - グローバル変数 -
を使用して[ツールボックス]のグローバル変数をサンプリングすると[グローバル変数]を参照できます。これにより、MODEL:/Tools/GlobalVariablesフォルダ内にある[グローバル変数]の定義への参照が与えられます。[変数]の値を取得すると、グローバル変数の現在値が取得されます。値を設定すると、グローバル変数が設定されます。注:[グローバル変数]を参照している変数の[イベントを待つ]または[イベントトリガーソース]を使用すると、コードを使用して設定されている[グローバル変数]をリッスンすることはできません。[変数を設定]アクティビティを使用して発生した変更のみをリッスンします。
- エミュレーション接続 - [エミュレーション接続]を参照したり、[内部エミュレーション接続]を作成したりできます。[タイプ]をローカルに設定した[内部エミュレーション接続]は、処理フローの各インスタンスに対して変数を作成します。[エミュレーション接続]の詳細については、「エミュレーション」のトピックを参照してください。
- エミュレーション変数 - [エミュレーション変数]を参照したり、[内部エミュレーション変数]を作成したりできます。[タイプ]を[ローカル]に設定した[内部エミュレーション変数]は、処理フローの各インスタンスに対して変数を作成します。[エミュレーション変数]の詳細については、「エミュレーション」のトピックを参照してください。
コネクター
[変数を取得]アクティビティと[変数を設定]アクティビティのみを[変数]に接続できます。詳細については、「アクティビティを追加および接続する」を参照してください。
プロパティ
次の画像は、[変数]共有アセットのプロパティを示しています。
これらの各プロパティについては、次のセクションで説明します。
名前
アクティビティの名前を変更するために使用します。このプロパティの詳細については、「名前」を参照してください。
フォント
[フォント]ボタン で、アクティビティの背景色プロパティとフォントプロパティを編集するウィンドウが開きます。このプロパティの詳細については、「フォント」を参照してください。
統計
[統計]ボタン でアクティビティの統計ウィンドウが開きます。このプロパティの詳細については、「統計」を参照してください。
変数または値
このボックスはリセット時にのみ評価されます。詳細については、上の「概要と主要な概念」セクションを参照してください。
タイプ
[変数]は、グローバルまたはローカルに定義できます。[変数]が一般的な処理フローにあるか、オブジェクト、テーブルセル、グローバル変数、または他のノードに接続されている場合、[変数]はグローバルに利用可能になり、このプロパティは利用できなくなります。それ以外の場合、[ローカル]に設定して同じ処理フローインスタンス内のトークンのみが同じ[変数]を使用するようにできます。
変数を表示...
ビューアウィンドウを開き、[変数]の現在値を表示します。
内部変数プロパティ
以下の変数は[内部]に設定することができ、タイプが[ローカル]に設定されている場合、処理フローの各インスタンスに対して新しい変数を作成します。
内部追跡変数
[変数]ボックスまたは[値]ボックスのドロップダウンから[内部追跡変数]オプションを選択すると、プロパティは次のように変更されます。
これらのプロパティを使用すると、使用する追跡変数のタイプ、リセット時の初期値や追跡変数のさまざまなオプションを定義できます。
[変数を表示...]では、別のビューアも表示されます。
内部エミュレーション接続
[変数]ボックスまたは[値]ボックスのドロップダウンから[内部エミュレーション接続]オプションを選択すると、プロパティは次のように変更されます。
内部接続のプロパティは、[エミュレーション]ツールのプロパティと同じです。これらのプロパティの詳細については、「エミュレーション」のページを参照してください。
内部エミュレーション変数
[変数]ボックスまたは[値]ボックスのドロップダウンから[内部エミュレーション変数]オプションを選択すると、プロパティは次のように変更されます。
OPCタグ(センサーとコントロール)内部変数のプロパティは、[エミュレーション]ツールのプロパティとほぼ同じです。これらのプロパティの詳細については、「エミュレーション」のページを参照してください。
[OPCタグ]変数には、次のように追加されたプロパティが1つあります。
- タグインスタンス指定子 - タグインスタンス指定子は、変数が[ローカル]タイプに設定されているときに最も有用です。このボックスで定義された文字列は、[タグID]文字列の割合を使用して[タグID]ボックスの任意の場所に挿入できます。
Modbusレジスター内部変数のプロパティは、[エミュレーション]ツールのプロパティと同じです。これらのプロパティの詳細については、「エミュレーション」のページを参照してください。
OPC UA変数(センサーとコントロール)内部変数のプロパティは、[エミュレーション]ツールのプロパティとほぼ同じです。これらのプロパティの詳細については、「エミュレーション」のページを参照してください。
OPC UA変数には、次のように追加されたプロパティが1つあります。
- タグインスタンス指定子 - タグインスタンス指定子は、変数が[ローカル]タイプに設定されているときに最も有用です。このボックスで定義された文字列は、[タグID]文字列の割合を使用して[タグID]ボックスの任意の場所に挿入できます。