属性:hide
重要
プラグマの使用 {attribute 'hide'}
変数と POU を非表示にしても、ほとんどの場合、望ましい効果は得られません。代わりに、 {属性 '条件付き表示'}。プラグマ。
プラグマは、プラグマで定義された変数とPOUがプラグマに表示されないようにします。 CODESYS ユーザーインターフェース。その結果、アクセスを制限することなく、これらの識別子を意図的に非表示にすることができます。これは、ライブラリを開発するときに役立ちます。
図書館管理
デバッグ
入力アシスタント
「コンポーネントのリスト」機能
モニタリング
シンボル構成
プラグマで定義された変数またはPOUは、ライブラリマネージャーには表示されず、入力アシスタントまたは「コンポーネントの一覧表示」機能にも表示されません。プラグマは、これらの装飾された変数がシンボル構成に表示されないようにします。その結果、これらの種類の変数をシンボルとしてエクスポートすることはできません。変数はオンラインモードでも表示されないため、それらの値を監視することはできません。さらに、デバッグ機能を使用することはできず、バグをチェックする際のサポートもありません。
アプリケーション開発者が非表示のPOUと変数の正確なインスタンスパスを知っている場合は、コードでそれらにアクセスできます。
構文:
{attribute 'hide'}
挿入場所:変数の場合、変数の宣言がある行の上。 POUの場合、最初の行。
機能ブロック FB_MyA
属性プラグマが含まれています {attribute 'hide'}
ローカル変数を非表示にする xInvisibleIn
。
FUNCTION_BLOCK FB_MyA VAR_INPUT iInA : INT; {attribute 'hide'} xInvisibleIn : BOOL; xInit: BOOL; END_VAR VAR_OUTPUT iOutA : INT; END_VAR VAR iCounter : INT; END_VAR
機能ブロックの2つのインスタンス FB_MyA
メインプログラムで定義されています。
PROGRAM PLC_PRG VAR fbMyA1, fbMyA2 : FB_MyA; xVar2 : BOOL; iVar1 : INT; iVar2 : INT; END_VAR fbMyA1(iInA := 1, xInit := TRUE, xInvisibleIn := TRUE, iOutA => iVar1); fbMyA2(iInA := 1, xInit := TRUE, iOutA => iVar2);
の入力値が fbMyA1
入力時に開く「コンポーネントの一覧表示」関数が実装されました fbMyA1.
(の実装部分で PLC_PRG
)、変数を表示します iInA
、 xInit
、 と iOutA
、ただし隠れた変数ではありません xInvisibleIn
。
FB_A
ライブラリのファンクションブロックです HiddenFunctionality
デフォルトの名前空間 HIDDEN
。識別子とPOUコードをアプリケーション開発者から隠すには、属性pragmaを使用してPOUの宣言を開始します。 {attribute 'hide'}
。同じ方法で従属POU(アクション、メソッド、プロパティ、および遷移)を非表示にするには、宣言を次のように開始します。 {attribute 'hide'}
。
{attribute 'hide'} FUNCTION_BLOCK FB_A VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR iA : INT; iCount : INT; iInvisible : INT; END_VAR {attribute 'hide'} METHOD METH_Count : INT VAR_INPUT END_VAR iCount := iCount + 1; {attribute 'hide'} METHOD METH_Invisible : BOOL VAR_INPUT END_VAR iInvisible := iInvisible + 1; {attribute 'hide'} PROPERTY PUBLIC prop_iA : INT
アプリケーション開発者の場合、すべてのPOUは表示されません。インスタンスパスがわかっている場合にのみ使用できます。
PROGRAM PLC_PRG VAR fbHidden : HIDDEN.FB_A; // Hidden function block from library HiddenFunctionality iCounter : INT; END_VAR fbHidden.METH_Invisible(); iCounter := fbHidden.iInvisible;
オンラインモードでは、監視は実行されません。

ヒント
とともに {属性 'hide_all_locals'}
プラグマ、POUのすべてのローカル変数を非表示にすることができます。