Skip to main content

AT-Deklaration

Übersichtlichen Konfigurationseditor für E/A-Abbild nutzen

Von der hier beschriebenen Zuweisung von Speicheradressen ist abzuraten, da dies zu einem Verlust der Übersichtlichdiet führen kann.

Es wird empfohlen, die Zuordnung von Speicheradressen zu Variablen im Konfigurationseditor E/A-Abbild bearbeiten der Geräts vorzunehmen.

Das Schlüsselwort AT in der Variablendeklaration ordnet einer Projektvariable eine bestimmten Eingabe-, Ausgabe- oder Speicheradresse der im Gerätebaum konfigurierten Steuerung zu.

Die AT-Deklaration ermöglicht, einer Adresse einen aussagekräftigen Namen zu geben.

Tipp

Eventuell nötige Änderungen bezüglich des ein- oder ausgehenden Signals dürfen Sie nur an einer Stelle durchführen, zum Beispiel in der Deklaration.

Für weitere Informationen siehe:

Syntax

<Variablenname> AT %<Adresse>:<Datentyp>;

<Variablenname>

Obligatorisch

% <Adresse>

Obligatorisch

Adresse im Speicherbereich

% <Speicherbereichspräfix> <Größenpräfix> <Speicherposition>

<Speicherbereichspräfix>

Obligatorisch

  • I: Eingangsspeicherbereich

    Speicherbereich für Eingangssignale, Eingänge (Inputs)

    Für physikalische Eingänge über Eingangstreiber und Sensoren

  • Q: Ausgangsspeicherbereich

    Speicherbereich für Ausgangssignale, Ausgänge (Outputs)

    Für physikalische Ausgänge über Ausgangstreiber und Aktoren

  • M: Merkerspeicherbereich

<Größenpräfix>

Optional

  • kein Größenpräfix: Bit

    Einzelnes Bit

  • X: Bit

    Einzelnes Bit

  • B: Byte

    8 Bit Datenbreite

  • W: Word

    16 Bit Datenbreite

  • D: Dword

    32 Bit Datenbreite

<Speicherposition>

<Positionsnummer> . <Bitpositionsnummer>

Beispiel: %IB2.4 steht für das 5. Bit des 3. Bytes

<Positionsnummer>

Obligatorisch

Die Nummerierung ist zielsystemabhängig und bei 0 beginnend.

. <Bitpositionsnummer>

Optional

0..7 bei einem Byte

<Datentyp>

Optional

Der Datentyp soll zum Größenpräfix passen.

Beispiel 21. Beispiele
VAR 
    wInput AT %IW0 : WORD; 
END_VAR

Variablendeklaration mit Adressangabe eines Eingangsworts

VAR 
    xActuator AT %QW0 : BOOL; 
END_VAR

Boolesche Variablendeklaration

Hinweis: Für boolesche Variable wird intern ein Byte alloziert, wenn keine Einzelbitadresse angegeben ist. Eine Wertänderung von xActuator betrifft folglich den Bereich von QX0.0 bis QX0.7.

VAR
    xSensor AT %IX7.5 : BOOL; 
END_VAR

Boolesche Variablendeklaration mit expliziter Angabe einer Einzelbitadresse

Beim Zugriff wird nur das Eingangsbit 7.5 gelesen.

VAR 
    xSensor AT %IX* : BOOL; 
END_VAR

Bei der Adressangabe ist statt der Speicherposition der Platzhalter * angegeben. Die endgültige Adressangabe wir in der Variablenkonfiguration vorgenommen.

Hinweis: Das ist in Funktionsbausteinen möglich.



Wissenswertes

Wichtig

Wenn Sie nicht explizit eine Einzelbitadresse angeben, werden boolesche Variablen byteweise alloziert.

Wichtig

Einzelne Bit-Adressen, die auf boolesche Variablen abgebildet werden, haben Einschränkungen. Es ist nicht möglich, diese Variablen mit VAR_IN_OUT, REFERENCE TO oder dem ADR-Operator zu verwenden.

Wenn Sie eine Variable einer Adresse zuweisen, müssen Sie Folgendes beachten:

  • Auf Variablen, die auf einen Eingang gelegt sind, können Sie nicht schreibend zugreifen. Dies führt zu einem Compilerfehler.

  • AT-Deklarationen können Sie nur für lokale und globale Variablen durchführen, nicht aber für Ein- und Ausgabevariablen von Bausteinen.

  • AT-Deklarationen dürfen Sie nicht in persistenten Variablenlisten verwenden!

  • Wenn Sie AT-Deklarationen bei Strukturkomponenten oder Funktionsbausteinvariablen anwenden, verwenden alle Instanzen denselben Speicher. Dies entspricht der Verwendung von „statischen Variablen“ in klassischen Programmiersprachen wie zum Beispiel „C“.

  • Das Speicherlayout von Strukturen ist ebenfalls abhängig vom Zielsystem.

Beispiel

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

Beim Schreiben der Variablen xVar ist der Ausgangsspeicherbereich von QX0.0 bis QX0.7 betroffen.