Function Blocks (FB)は、小さなプログラムです。ファンクションブロック(FB)は、ファンクション(FUN)と異なり、値を格納できるメモリエリアを持っています。加算、減算など演算を実行した場合、格納されているデータによって、同じ入力値に対して異なる結果が得られます。ファンクションブロック(FB)は、同一プログラム中で何度でも使用することができます。プログラム作成時にファンクションブロック(FB)を呼び出すと、その度にコピーが作成されます。このコピー(インスタンス)に名前を付けることで、同じタイプのファンクションブロック(FB)によって、値が上書きされたり、演算処理されることはありません。
Control FPWIN Pro7には、2種類のファンクションブロックがあります。
システムファンクションブロック
「IEC standard library」: TON、TOFなど
「FP library」: CT_FB、PID_FBなど
ユーザー定義ファンクションブロック
ファンクションブロック(FB)は、4種類のプログラミング言語で記述することができます。
「ラダーダイアグラム(LD)」または「ファンクションブロックダイアグラム(FBD)」
「ストラクチャードテキスト(ST)」
「インストラクションリスト(IL)」
例えば、IEC Standard Libraryのファンクションブロック(FB) TON (入力ディレイ付きタイマ)を使用する場合、このファンクションブロック(FB)を"delay_motor"などのように名称を変更して使用することができます。同様に、異なる場面でこのファンクションブロックを呼び出す場合、"delay_heating"などのように別の名称で登録することができます。
ファンクションブロック(FB)は、プログラムまたはファンクションブロックからのみ呼び出すことができ、タスクに割り付けることはできません。
ファンクションブロックは、同じファンクションブロックから再帰的に呼び出すことはできません。
ファンクションブロックは、最大5階層までのネスティングができます。例: FB1(FB2(FB3(FB4(FB5(x)))))