Um eine Projektvariable mit einer endgültigen Adresse zu verknüpfen, können Sie die Variablen in der Ansicht E/A-Abbild für ein Gerät in einer Steuerungskonfiguration (Geräteeditor) einer Adresse zuweisen. Alternativ dazu besteht die Möglichkeit, diese Adresse direkt in die Deklaration der Variablen einzugeben.
<Kennung> AT <Adresse> : <Datentyp>;
Auf das Schlüsselwort AT muss eine gültige Adresse folgen. Weitere Informationen erhalten Sie im Abschnitt zur Adressenbeschreibung. Bedenken Sie, dass es im Byte-Adressierungsmodus zu Überlappungen kommen kann.
Mit der Deklaration können Sie einzelnen Adressen aussagekräftige Namen zuweisen. Änderungen mit Bezug auf ein ein- oder ausgehendes Signal können nur an einem einzigen Ort vorgenommen werden, beispielsweise in der Deklaration.
Bei der Auswahl einer Variablen für die Zuweisung zu einer Adresse ist Folgendes zu bedenken:
oDer Schreibzugriff ist für Variablen, die eine Eingabe erfordern, nicht verfügbar. Der Compiler erkennt Schreibzugriffe als Fehler.
oAT-Deklarationen können nur zusammen mit lokalen bzw. globalen Variablen verwendet werden. Eine Verwendung zusammen mit Eingangs- und Ausgangsvariablen eines POUs ist nicht möglich.
oIn Listen mit persistenten Variablen sind AT-Deklarationen nicht erlaubt.
oWerden AT-Deklarationen zusammen mit Struktur- oder Funktionsbausteinelementen verwendet, greifen alle Instanzen auf den gleichen Speicherort in den entsprechenden Strukturen bzw. Funktionsbausteinen zu. In den klassischen Programmiersprachen, wie z. B. C entspricht dieses Prinzip den statischen Variablen.
oDas Speicherlayout der Strukturen wird ebenfalls über das Ziel festgelegt.
xCounterHeat7 AT %QX0.0: BOOL;
xLightCabinetImpulse AT %IX7.2: BOOL;
xDownload AT %MX2.2: BOOL;
Wenn Boolean-Variablen BYTE-, WORD- oder DWORD-Adressen zugewiesen werden, dann nehmen Sie mit TRUE oder FALSE 1 Byte in Anspruch, und nicht nur das erste Bit nachdem Offset.
Die Speichergröße für Eingangs-, Ausgangs- und Speicherdaten (Deklarationen mit AT %I, %Q und %M) wird vom Zielgerät vordefiniert und kann in den Eigenschaften eines Anwendungsobjekts für PacDrive-Steuerungen (PacDrive LMC Eco, PacDrive LMC Pro/Pro2) überschrieben werden.