TDBuildツールでC言語ファンクションブロックの登録時に「Initialize Instance」(FBインスタンスの初期化)というオプションがあるが、これはどういう意味か?


 ISaGRAF PROV4.10以降では、ワークベンチの辞書で登録したファンクションブロックインスタンスのローカル変数に対して初期値が設定できるようになりました。「Initialize Instance」オプションはこの初期化を明示的に行うかどうかの指定するものです。

TDBuildでは、新しいCファンクションブロックを作成する時に、定義ウィンドウの"Options" から以下の設定を行うことができます。


 

  • Yes, initialize instances(ファンクションブロックインスタンスの初期化を行う)
    ファンクションブロックに2つの関数
    "FblInstInit"(ファンクションブロックインスタンスの初期化)
    "FblInstExit"(ファンクションブロックインスタンスの終了)
    が生成されます。これらの関数は各インスタンス毎にファンクションブロックのローカル変数を初期化するために使用し、ターゲットの初期化/終了時にカーネルがこの関数をコールします。
    なお、生成される関数の中身は空なので、具体的な初期処理の内容はユーザがコーディングすることになります。
  • No, don't call instance initialization(ファンクションブロックインスタンス初期化をコールしない)
    2つの関数は生成されますが、実行時にはカーネルからコールされることはありません。

"Yes"/"No"のいずれを選択しても、ワークベンチへインポートする定義ファイルのみが変更されるだけで、生成されるファンクションブロックのテンプレートのCソースは同じものになります。

ファンクションブロックインスタンスのローカル変数の初期化の設定
FblInstInit関数を実装していても、同時に辞書からローカル変数の初期値を設定すると、辞書からの設定が優先されるので留意ください。
また、辞書でファンクションブロックインスタンスを登録しても、IECプログラム中で使用しなければFblInstInit関数はコールされません。
最終更新:
2009-03-19 12:05
改訂:
1.0
評価点数:0 (0 件の投票)
Chuck Norris has counted to infinity. Twice.

このカテゴリー内のレコード

タグ