30.8.2 ファンクションブロックの変数について

ファンクションブロック(FB)の編集画面では、FB専用の変数またはシステム変数を使ってプログラムを作成します。

FB専用の変数は3種類あり、1つはFB内でのみ使える変数、残りの2つはファンクションブロック命令のオペランドとしてロジックプログラムとFBとのデータを受け渡しする変数です。変数はファンクションブロック画面の変数一覧で作成し、作成したFB内でのみ使うことができます。

ローカル変数

ローカル変数はFB内でのみ使う変数です。FBを挿入したロジック画面から直接ローカル変数に値を書き込むことはできません。

FBごとの最大登録個数は512個です。

入力変数/出力変数

入力変数出力変数はFBとそれを使っているロジックプログラムとのデータの受け渡しをする変数です。FBをロジック画面に挿入すると、FB内で作成した入力変数がSオペランドとして、出力変数がDオペランドとして表示されます。

入力変数出力変数の最大登録個数はFBごとにそれぞれ63個です。

オペランドには入力変数出力変数の変数タイプと一致するアドレスまたは変数を設定します。Sオペランドに設定されたアドレスや変数に格納された値が入力変数に渡りFB内で使用されます。FB内の出力変数の値がDオペランドに設定されたアドレスや変数に格納されます。

注意事項

FBを作成、使用するときは次の動作に注意してロジックプログラムを作成してください。

表示器の電源がONしている間は、FBは導通状態が終了しても初期化されずFB内の変数は前回の値を保っています。必要に応じて初期化処理を行ってください。

1つのFBをロジックプログラムで命令として複数配置する場合は、[システム設定]-[ロジックプログラム設定]-[ファンクションブロックのローカル変数の共有]の設定によってロジック変数の使用量やFB内部のローカル変数の動作が異なります。ローカル変数の動作が異なることで、ロジックプログラムの処理結果にも違いがでます。

次の例で設定による動作の違いを説明します。

例)

命令が導通するたびに1ずつ加算するFB(FB_0000)を用意します。FBはローカル変数(Count)に1を加算した値を出力変数(Output)に渡します。

ロジックプログラム上にFB_0000を2個配置し、それぞれのD1オペランドにD100とD200を設定します。