Adressen
Achtung
Wenn Sie Pointer auf Adressen verwenden, können sich beim Online-Change Inhalte von Adressen verschieben! Wenn Sie direkte Adressen verwenden, verschieben sich Inhalte von Adressen beim Online-Change nicht!
Syntax:
%
<Speicherbereichspräfix> <Größenpräfix> <Positionsnummer> .
<Bitpositionsnummer>
| Obligatorisch Adresse im Speicherbereich
|
<Speicherbereichspräfix> | Obligatorisch
|
<Größenpräfix> | Optional
|
<Speicherposition> | <Positionsnummer> Beispiel: |
<Positionsnummer> | Obligatorisch Die Nummerierung ist zielsystemabhängig, bei 0 beginnend. |
| Optional 0..7 bei einem Byte |
Bei der Angabe einer Adresse werden die Position im Speicher und die Größe mittels spezieller Zeichenfolgen ausgedrückt. Eine Adresse ist gekennzeichnet mit dem Prozentzeichen %
, dann folgt der Speicherbereichspräfix, der optionale Größenpräfix und die Speicherposition. Die Nummerierung, mit der Sie die Speicherposition adressieren, ist zielsystemabhängig.
| Einzelbitadresse des Ausgangsbits 7.5 |
| Wortadresse des Eingangsworts 215 |
| Bytesdresse des Ausgangsbytes 7 |
| Adresse eines Doppelworts an Speicherstelle 48 im Merkerbereich |
| Wortadresse eines Eingangsworts, Interpretation abhängig von der aktuellen Steuerungskonfiguration |
VAR wVar 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 |
VAR xSensor AT %IX7.5 : BOOL; END_VAR | Boolesche Variablendeklaration mit expliziter Angabe einer Einzelbitadresse Beim Zugriff wird nur das Eingangsbit 7.5 gelesen. |
Speicherposition
So stellen Sie sicher, dass die Adresse gültig ist:
Um in einer Applikation eine gültige Adresse zuzuweisen, muss Ihnen zunächst die geforderte Position im Prozessabbild bekannt sein; das bedeutet der zuständige Speicherbereich: Eingangs- (I
), Ausgangs- (Q
) oder Merkerspeicherbereich (M
), siehe oben. Weiterhin müssen Sie das erforderliche Größenpräfix angeben: Bit, BYTE
, WORD
, DWORD
(siehe oben: X
, B
, W
, D
)
Eine entscheidende Rolle spielen die aktuell verwendete Gerätekonfiguration und die Geräteeinstellungen (Hardwarestruktur, Gerätebeschreibung, E/A-Einstellungen).
Beachten Sie insbesondere die Unterschiede in der Interpretation von Bitadressen zwischen Geräten mit Byteadressierung und Geräten mit wordorientierter IEC-Adressierung.
Bei der Bitadresse %IX5.5
adressiert die Nummer vor dem Punkt in einem byteadressierten Gerät Byte 5 und in einem wordadressierten Gerät Word 5.
Dagegen ist die Adressierung mit Word- oder Byteadresse unabhängig vom Gerätetyp: Mit %IW5
wird immer Word 5 angesprochen und mit Byteadresse %IB5
immer Byte 5. Abhängig von der Größe und dem Adressierungsmodus können Sie deshalb mit der gleichen Adressangabe unterschiedliche Speicherzellen ansprechen.
Die folgende Tabelle zeigt die Gegenüberstellung der Byteadressierung und der wordorientierten IEC-Adressierung für Bit, Byte, Word und Double Word. Sie zeigt auch die überlappenden Speicherbereiche bei Byteadressierung. Siehe das Beispiel im Anschluss an die Tabelle.
Bei der Syntax ist zu beachten, dass die IEC-Adressierung immer wordorientiert ist. Die Wordnummer steht vor dem Punkt, die Bitnummer nach dem Punkt.

n = Bytenummer
D0
enthält B0
- B3
. W0
enthält B0
und B1
. W1
enthält B2
und B3
. W2
enthält B4
und B5
.
W1
, aber auch D1
, D2
und D3
dürfen nicht zur Adressierung verwendet werden. Dadurch werden Überlappungen vermieden.