属性: implicit-parameter
この属性により、呼び出し元のPOUは、明示的なパラメータ転送や複雑なリフレクション関数を必要とせずに、暗黙的なコンテキスト情報を自動的に提供します。このコンテキスト情報は、実稼働環境でも手間をかけずに作成できる正確なプロトコルの基礎として使用されます
PLC アプリケーション開発者は、この属性を使用してログ情報を生成し、生産エラーが発生した場所を正確に特定できます。ブレークポイントを設定したり、個々のコールロケーションを調整したりする必要はありません
ライブラリ開発者は、この属性を使用して、呼び出し元の POU を自動的に検出する検証関数を提供できます。これにより、ライブラリ・ユーザーは、追加のプログラミング作業を必要とせずに、明確で意味のあるエラー・メッセージを得ることができます
構文:
{attribute 'implicit-parameter' := <value> }
| 呼び出し元の POU の修飾名を返します |
| 通話位置を人間が読める形式で指定します |
| 呼び出し元の POU のインスタンスパスを返します |
挿入可能なポイント:
属性は宣言領域で使用できます VAR_INPUT 次のタイプの入力変数経由 STRING または WSTRING。 POINTER TO STRING と POINTER TO WSTRING も可能です。
この属性は、次のタイプの POU で使用できます。
プログラム:
PROGRAM機能:
FUNCTION方法:
METHOD、インターフェースメソッドも
ザの チェック機能 暗黙的な監視用に提供され、この属性がサポートされます。
この属性は継承できません。
この属性は、自動的に生成される POU コール (など) ではサポートされません。 FB_Init、 FB_Reinit、または FB_Exit)。
デクラレーション
FUNCTION MyAwesomeLogger
VAR_INPUT
{attribute 'implicit-parameter':='pouname'}
pouName : STRING := '';
{attribute 'implicit-parameter':='position'}
position : POINTER TO STRING := 0; // Pass by reference is supported for performance reasons
{attribute 'implicit-parameter':='instance-path'}
instance_path : STRING := '';
END_VAR
実装の詳細
FUNCTION_BLOCK FB
// Can be used like this, to pass all arguments automatically
MyAwesomeLogger(); // Values inside the function: pouName="FB", position=ADR("Line 15"), instance_path = "Device.Application.GVL.fbInstance"
// Or like this with explicit parameters
MyAwesomeLogger(pouName := 'OverwrittenName', position := ADR('OverwrittenPosition'));
END_PROGRAM