ファンクション(FUN)は、実行した演算結果として、クラスVAR_OUTPUTとVAR_IN_OUT型の出力変数の値を返すプログラム構成単位(POU)です。ファンクションの出力データ型をVOID型に指定すると、ファンクションは結果を返しません。
ファンクションは、VAR_EXTERNAL、VAR_EXTERNAL_RETAIN、VAR_EXTERNAL_CONSTANTを介して、グローバル変数にアクセスすることもできます。
ファンクションは、内部ステータス情報を持っていません。したがって、VAR_INPUT、VAR_IN_OUT、VAR_EXTERNAL型の変数に同じ値を代入し、ファンクションを実行すると、クラスVAR_OUTPUT、VAR_IN_OUT、VAR_EXTERNAL型の出力変数には、常に同じ値が得られます。
Control FPWIN Pro7には、2種類のファンクションがあります。
システムライブラリのシステム命令
「IEC standard library」
「FP library」
「FP tool library」
「FP pulsed library」
ユーザー定義ファンクション
ユーザーが独自のファンクションを定義し、ユーザーライブラリに加えることができます。新しいファンクションは、ユーザーライブラリがインストールされているすべてのプロジェクトで利用することができます。
ファンクションは、次のプログラミング言語で記述することができます。
「ラダーダイアグラム(LD)」または「ファンクションブロックダイアグラム(FBD)」
「ストラクチャードテキスト(ST)」
「インストラクションリスト(IL)」
ファンクションは、プログラム、ファンクション、ファンクションブロックから呼び出すことができますが、タスクに登録することはできません。
ファンクションは、同じファンクションを再帰的に呼び出すことはできません。
ファンクションブロックは、最大5階層までのネスティングができます。例: Fun1 (Fun2 (Fun3 (Fun4 (Fun5 (x)))))
仮パラメータを持たないSTまたはILファンクションを除けば、ファンクション結果とファンクション出力は未接続のままにできます。
STエディタで、仮パラメータを持つファンクションを呼び出すときは、以下の条件が適用されます: