FBとFCはそれそれのInterfaceタイプがあります:In,InoutとOutです。FCとFBがこのInterfaceに通じてBlockのパラメータとして提供することができます。パラメータはBlockの中に処理させ、そのあとBlockに出力されます。
”InOutパラメータ”の役目はまさにデータをBlockに転送し、そしてBlockが運算し、最後は結果を出力。そのパラメータは2種類のデータ転送方があります。
豆知識ですが、それらの少しつつ重ねておけばプログラムのPerformancesもあげるじゃないかな?と私はそう思います。
Call-by-value
BlockがCallされたとき、パラメータの現在値はパラメータにCOPYされます。その場合は付加的なメモリが必要になります。
Call-by-reference
BlockがCallされたとき、参照値がパラメータに転送されます。その場合は付加的なメモリが必要ではありません。
もしDataBlockが”non-optimized access”されるの場合、普通”COPY”してから転送します。そのBlockが構造されたパラメータ(Structure、String、Data typeなど)たくさんあるの場合、Blockの中にあるTempメモリエリアがすぐOverflowになることもあります。