ファンクションブロック(FB)のプログラム内で別のFBを命令として使うことをFBのネストと呼びます。FBのネストは16階層まで使うことができます。ただし、再起呼出し(ネストの中で自分自身を命令として使うこと)はできません。
*1. 最初のFB_0000からの再起呼出し
*2. 17階層目(最大ネスト数は16階層)
ネスト構造のFBをパッケージ登録するときに、命令として使っているFBを一緒に1つのパッケージへ登録するかどうかが選べます。
ネスト構造のFBをパッケージへドラッグ&ドロップすると、命令として使っているFBの一覧がダイアログボックスで表示されます。同じパッケージに含めたいFBにはチェックを入れ[OK]をクリックします。
例えば、命令としてFB_1を使っているFB_0をパッケージへ登録する場合
FB_1も登録した場合
命令として使っているFB_1のプログラムも同時にパッケージ登録されます。FB_0をパッケージから取り出すと、取り出したFB_0とその中で使われているFB_1が全て画面一覧に追加されます。取り出したFB_0のロジックプログラムは修正することなく使うことができます。
FB_1は登録しなかった場合
FB_0の中でFB_1を呼び出している命令部分は残りますが、呼び出されるFB_1の実体(ロジックプログラム)は存在しません。FB_0をパッケージから取り出すと、取り出したFB_0は画面一覧に追加されますがプログラム内で呼び出しているFB_1が存在しません。正常に動作させるには呼び出し先のFB_1を新たに作成する必要があります。
実体がなくロジックプログラム内の命令部分のみが残ったFBは、オペランドの数は保たれますがDオペランドは1つになり残りは全てSオペランドとして表示されます。
命令として呼び出したいFB(FB_1)の処理を置き換えたいときに便利です。たとえば、FB_0の中で指定された秒数で出力ビットがフリッカするFB_1を使っている場合、フリッカの単位が違うFB_1をパッケージに登録しておき必要に応じたFB_1を取り出すことで簡単にFB_0の修正ができます。