Skip to main content

プラグマを使用する

プラグマ CODESYS

中括弧で囲まれたアプリケーションのソースコード内のテキストは、プラグマと見なされます。プラグマは、コンパイラが評価できるコードに特別なステートメントを挿入するために使用されます。したがって、プラグマは、プリコンパイルまたはコンパイル(コード生成)に関して1つ以上の変数のプロパティに影響を与える可能性があります。コンパイラが認識しないプラグマは、コメントのようにスキップされます。

プラグマの命令文字列は、複数行にすることもできます。

構文の詳細については、それぞれの説明を参照してください。 CODESYS-プラグマ。

さまざまな効果のプラグマがあります。変数の初期化、変数の監視、シンボル構成への変数の追加、コンパイルプロセス中のメッセージ出力の強制、特定の条件下での変数の動作などです。

重要

大文字と小文字を守る必要があります。

17.
{warning 'This is not allowed'}

{attribute 'obsolete' := 'datatype fb1 not valid!'}

{attribute 'Test':='TestValue1;
                    TestValue2;
                    TestValue3'}


可能な挿入位置

重要

プラグマ CODESYS Cプリプロセッサディレクティブの1対1の実装ではありません。プラグマは通常のステートメントのように配置する必要があります。式内でプラグマを使用することはできません。

そのプラグマ CODESYSコンパイラが評価する必要があります。次の位置に挿入できます。

  • プログラミングブロックの宣言部分:

    • テキスト宣言エディタでは、ブロックの先頭または変数宣言の前に、プラグマを行として直接入力します。

    • 表形式のエディターで、ダイアログの最初の宣言行の上に表示されるプラグマを入力します 宣言部分を編集 / 属性 1。

  • グローバル変数リスト内

  • プログラミングブロックの実装部分:

    • プラグマは「命令位置」にある必要があります。つまり、別の行のプログラミングブロックの先頭、または「;" また END_IFEND_WHILE 等。

    • FBD / LD / STLエディター:ジャンプラベルのようにFBD / KOP / STLエディターのネットワークにプラグマを入力します。これを行うには、コマンドを選択します。 FBD / KOP / STL→ジャンプラベルを挿入。次に、デフォルトのテキストを置き換えます ラベル: ラベルのテキストフィールドに、適切なプラグマステートメントを入力します。ジャンプラベルに加えてプラグマを使用する場合は、最初にプラグマを入力し、次にジャンプラベルを入力します。

18. 条件付きプラグマの誤った正しい配置

正しくありません:

{IF defined(abc)}
IF x = abc THEN
{ELSE}
IF x = 12 THEN
{END_IF}
y := {IF defined(cde)} 12; {ELSE} 13; {END_IF}
END_IF

正しい:

{IF defined(abc)}
IF x = abc THEN
{IF defined(cde)}
    y := 12;
{ELSE}
   y := 13;
{END_IF}
END_IF
{ELSE}
IF x = 12 THEN
{IF defined(cde)}
    y := 12;
{ELSE}
   y := 13;
{END_IF}
END_IF
{END_IF}


ヒント

対話中 プロパティ、 カテゴリー 翻訳すること プラグマで照会できる定義を指定できます。

効果範囲:

プラグマのタイプと内容に応じて、プラグマは以下に影響します。

  • 次の宣言

  • 以下に指示されているとおりです

  • 適切なプラグマで再度キャンセルされるまで、以降のすべての命令で

  • 同じプラグマが異なるパラメーターで実行されるか、コードの終わりに達するまで、後続のすべてのステートメントで。この文脈での「コード」とは、宣言部分、実装部分、グローバル変数リスト、型宣言を意味します。したがって、宣言部分の最初の行で独立していて、別のプラグマに置き換えられたりキャンセルされたりしないプラグマは、オブジェクト全体に影響します。

のプラグマカテゴリ CODESYS

the CODESYS-プラグマは次のカテゴリに分類されます。