Skip to main content

AT宣言

I/O マッピング用の明確な設定エディタの使用

ここで説明したようにメモリアドレスを割り当てると、明確さが失われる可能性があるため、お勧めしません。

設定エディターで変数にメモリアドレスを割り当てることをお勧めします。 I / O画像を編集する デバイスの。

ザック AT 変数宣言のキーワードは、デバイスツリーで設定されているコントローラーの特定の入力アドレス、出力アドレス、またはメモリアドレスをプロジェクト変数に割り当てます。

AT宣言により、アドレスに意味のある名前を付けることができます。着信信号または発信信号に必要な変更を加えることができるのは、宣言などの1か所のみです。

ヒント

入力信号または出力信号に必要な変更は、1 つの場所 (たとえば宣言内) で行うことができます。

詳細については、以下を参照してください。

構文

<変数名> AT %<アドレス>:<データ型>;

<変数名>

必須

% <アドレス>

必須

メモリ領域内のアドレス

% <メモリ領域番号> <サイズプレフィックス> <メモリ位置>

<メモリ領域プレフィックス>

必須

  • I: 入力メモリ領域

    入力信号と入力用のメモリ領域

    入力ドライバとセンサーによる物理入力用

  • Q: 出力メモリ領域

    出力信号と出力用のメモリ領域

    出力ドライバとアクチュエータによる物理出力用

  • M: フラグメモリ領域

<サイズプレフィックス>

[オプション]

  • サイズプレフィックスなし:ビット

    シングルビット

  • X: ビット

    シングルビット

  • B: バイト

    8 ビットデータ幅

  • W: ワード

    16 ビットデータ幅

  • D: 剣

    32 ビットデータ幅

<メモリ位置>

<ポジション番号 > . <ビット位置番号>

例: %IB2.4 3 番目のバイトの 5 番目のビットを表します。

<ポジション番号 >

必須

番号はターゲットシステムによって異なり、0 から始まります。

. <ビット位置番号>

[オプション]

1 バイトの場合は 0.7

<データ型>

[オプション]

データ型はサイズプレフィックスと一致する必要があります。

21.
VAR 
    wInput AT %IW0 : WORD; 
END_VAR

入力ワードのアドレス指定による変数宣言

VAR 
    xActuator AT %QW0 : BOOL; 
END_VAR

ブール変数宣言

注:シングルビットアドレスが指定されていない場合、1バイトはブール変数に内部的に割り当てられます。の値の変化 xActuator したがって、の領域に影響を与えます QX0.0 それまで QX0.7

VAR
    xSensor AT %IX7.5 : BOOL; 
END_VAR

シングルビットアドレスを明示的に指定したブール変数宣言

アクセス時には、入力ビット7.5のみが読み取られます。

VAR 
    xSensor AT %IX* : BOOL; 
END_VAR

アドレスを指定する場合、保存位置の代わりにプレースホルダーが使用されます * 指定。最終的なアドレス指定は、変数構成で行われます。

注:これは機能ブロックで可能です。



役に立つヒント

重要

シングルビットアドレスを明示的に指定しない限り、ブール変数はバイトごとに割り当てられます。

重要

Boolean 変数にマップされる個々のビットアドレスには制限があります。これらの変数を一緒に使用することはできません VAR_IN_OUTREFERENCE TO、または ADR オペレーター。

アドレスに変数を割り当てるときは、次のことを考慮する必要があります。

  • 入力に割り当てられている変数に書き込むことはできません。これにより、コンパイラエラーが発生します。

  • あなたが作ることができます AT 宣言はローカル変数とグローバル変数のみで、POU の入力変数と出力変数の宣言は行いません。

  • 使ってはいけません AT 永続変数リスト内の宣言。

  • 使用する場合 AT 構造体メンバーまたは関数ブロック変数の宣言では、すべてのインスタンスが同じメモリを使用します。これは、「C」などの従来のプログラミング言語での「静的変数」の使用に相当します

  • 構造体のメモリレイアウトもターゲットシステムによって異なります。

PROGRAM PLC_PRG
VAR
    xVar AT %QW0 : BOOL;
END_VAR
xVar := TRUE;

変数を書くとき xVar の開始メモリ領域です QX0.0 それまで QX0.7 影響を受ける。