ローカル変数

ローカル変数とは、ローカル変数を設定した画面 / コンテンツ、またはそのスクリプト内でのみ有効な内部変数です。ローカル変数は、ローカル変数を設定した画面 / コンテンツ内でのみ有効なため、一時的なデータの使用にとても便利です。

ローカル変数の上限

画面編集ソフトウェアで 1 つの画面 / コンテンツに対して最大 300 個のローカル変数を設定できます。画面にコンテンツ表示器がある場合は、画面のローカル変数と表示するコンテンツのローカル変数の合計が 3600 個を超えるとエラーになります。

プロジェクト単位でのローカル変数の上限は機種に依存します。使用できるローカル変数の最大数は、プロジェクト全体で使用できるグローバル変数の最大数には含まれません。

機種ごとのローカル変数の上限については以下を参照してください。

対応機種/機能一覧

ランタイムで画面を描画するために読み出せるローカル変数の上限は 3600 個です。3600 個を超えると描画が停止し、システムエラーが表示されます。

MEMO:

  • スクロールジェスチャーでスライドコンテンツ表示器やスライドナビゲーションの画面 / コンテンツを切り替えた場合、ランタイムに表示されていない前後の画面 / コンテンツに設定されたローカル変数も上限の計算に含まれます。
  • [可視] プロパティによりオブジェクトが表示されていない状態でも、オブジェクトに設定されたローカル変数は上限の計算に含まれます 。

  • コンテンツ表示器やスライドコンテンツ表示器の [コンテンツ ID] プロパティを間接的に指定すると、画面編集ソフトウェアはそのコンテンツのローカル変数をカウントできません。そのため画面編集ソフトウェアでエラーがなくても、ランタイム実行時にローカル変数の上限を超え、コンテンツを表示できない場合があります。ランタイムで表示できない場合はシステムエラーが表示されます。

名前とデータの種類

ローカル変数名は画面 / コンテンツ内で一意の名前にします。ローカル変数名に使用できる文字とルールに関しては以下を参照してください。

使用できる文字とルール

ローカル変数が対応しているデータの種類は WSTRING を除く基本変数です。ユーザーデータタイプ変数には対応していません。  データの種類については以下を参照してください。

データの種類

ローカル変数の配列で要素番号をグローバル変数で指定することはできません 。

データバインディング

ローカル変数はオブジェクトのプロパティにバインドすることができます。ローカル変数は、ローカル変数を設定した画面 / コンテンツ内でのみ有効なため、一時的なデータの使用にとても便利です。ローカル変数をバインドすると接頭辞 “$Local” が追加されます。例: $Local.Var1.Value

アラームやデータロギング、USB バーコードリーダー、OPC UA などのグローバル機能には使用できませんので、そのような機能にはグローバル変数を使用してください。データバインディングについては以下を参照してください。

データバインディング

ローカル変数のコピー

グローバル変数をローカル変数に、ローカル変数をグローバル変数にコピーすることができます。

グローバル変数からローカル変数にコピーした場合、関連するプロパティの内容がコピーされます。ローカル変数からグローバル変数にコピーした場合、ローカル変数にないプロパティはデフォルト値が設定されます。

ローカル変数がバインドされたオブジェクトのコピー

ローカル変数がバインドされたオブジェクトをコピーし別の画面に貼り付けることができます。

コピー先に同じ名前のローカル変数が存在しない場合、[警告] ダイアログが表示されます。

[貼り付け] を選択するとオブジェクトのみが貼り付けられます。

[バインディングと貼り付け] を選択するとオブジェクトとローカル変数が貼り付けられます。

コピー先に同じ名前のローカル変数が存在する場合は、オブジェクトが貼り付けられコピー先のローカル変数とバインドされます。コピー先のローカル変数のデータの種類がコピー元と異なる場合、ビルドエラーが発生します。

その他

OPC UA サーバー、またはWeb API / WebSocket を使用してローカル変数を読み書きすることはできません。