Skip to main content

属性:hide

重要

プラグマの使用 {attribute 'hide'} 変数と POU を非表示にしても、ほとんどの場合、望ましい効果は得られません。代わりに、 {属性 '条件付き表示'}。プラグマ。

プラグマは、プラグマで定義された変数とPOUがプラグマに表示されないようにします。 CODESYS ユーザーインターフェース。その結果、アクセスを制限することなく、これらの識別子を意図的に非表示にすることができます。これは、ライブラリを開発するときに役立ちます。

. 機能に影響します:
  • 図書館管理

  • デバッグ

  • 入力アシスタント

  • 「コンポーネントのリスト」機能

  • モニタリング

  • シンボル構成

プラグマで定義された変数またはPOUは、ライブラリマネージャーには表示されず、入力アシスタントまたは「コンポーネントの一覧表示」機能にも表示されません。プラグマは、これらの装飾された変数がシンボル構成に表示されないようにします。その結果、これらの種類の変数をシンボルとしてエクスポートすることはできません。変数はオンラインモードでも表示されないため、それらの値を監視することはできません。さらに、デバッグ機能を使用することはできず、バグをチェックする際のサポートもありません。

アプリケーション開発者が非表示のPOUと変数の正確なインスタンスパスを知っている場合は、コードでそれらにアクセスできます。

構文

{attribute 'hide'}

挿入場所:変数の場合、変数の宣言がある行の上。 POUの場合、最初の行。

268. 隠れた変数

機能ブロック 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)、変数を表示します iInAxInit、 と iOutA、ただし隠れた変数ではありません xInvisibleIn



269. 隠しライブラリPOU

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;

オンラインモードでは、監視は実行されません。

_cds_img_hidden_pous.png


ヒント

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