Skip to content

Siemens-S7-Adressierung ​

Ca. 5 Min. Lesezeit

Bei Geräten vom Typ Siemens S7 TCP wird in das Feld Adresse des Tags die absolute S7-Adresse in der SPS eingetragen. Die Geräte- und Kanaleinstellungen finden Sie auf der Seite Siemens S7 TCP.

Adresssyntax ​

Die Adresse gibt den Speicherbereich und das Anfangsbyte an (bei Bool zusätzlich die Bitnummer). Adressen werden in Großbuchstaben und ohne Leerzeichen geschrieben.

DB-Adressen (Datenbaustein) ​

text
DB<db>.DBX<Byte>.<Bit>
DB<db>.DBB<Byte>
DB<db>.DBW<Byte>
DB<db>.DBD<Byte>

Zwischen DB-Nummer und Bereich steht ein Punkt (.); eine Schreibweise mit Komma wie DB1,DBW0 wird nicht akzeptiert.

Adressen für Eingänge (I), Ausgänge (Q) und Merker (M) ​

text
I<Byte>.<Bit>   IB<Byte>   IW<Byte>   ID<Byte>
Q<Byte>.<Bit>   QB<Byte>   QW<Byte>   QD<Byte>
M<Byte>.<Bit>   MB<Byte>   MW<Byte>   MD<Byte>

Die deutschen Kürzel werden ebenfalls akzeptiert: E für Eingänge (E0.0, EW2), A oder O für Ausgänge (A0.1, AB1).

Adressen für Timer (T) und Zähler (C) ​

text
T<Nummer>
C<Nummer>

Für Zähler wird auch die deutsche Schreibweise Z<Nummer> akzeptiert.

Adressbestandteile ​

BestandteilBedeutung
DB<db>Nummer des Datenbausteins, z. B. DB10
I, Q, MBereiche Eingänge, Ausgänge und Merker
T, CBereiche Timer und Zähler
X + .<Bit>Bitzugriff; Bitnummer 0–7
BByte (1 Byte)
WWort (2 Byte)
DDoppelwort (4 Byte)
<Byte>Anfangsbyte im Bereich; höchstens 2097151

DB-, Timer- und Zählernummern dürfen höchstens 65535 sein.

TIP

Die Buchstaben B, W und D geben nur das Anfangsbyte an. Die Anzahl der gelesenen Bytes und die Dekodierung des Werts bestimmt der Datentyp des Tags. Um Verwechslungen zu vermeiden, wählen Sie den Buchstaben passend zur Größe des Datentyps: W für 2-Byte-Typen, D für 4-Byte-Typen.

Datentyp und Adressformat ​

  • Bool-Tags erfordern eine Bitadresse: DB<db>.DBX<Byte>.<Bit> oder I/Q/M + <Byte>.<Bit> (z. B. DB1.DBX0.0, M0.1).
  • Bitadressen werden nur bei Bool-Tags verwendet. Die anderen Typen verwenden Byte-, Wort- oder Doppelwortadressen (z. B. DB1.DBW0, MW10).
  • Timer- und Zähleradressen enthalten kein Bit; bei diesen Adressen wird Bool nicht verwendet.

Zum Beispiel werden ein Bool-Tag auf MW10 oder ein Int-Tag auf M0.1 nicht gespeichert.

Nicht unterstützte Schreibweisen (werden in der Tag-Tabelle und auf dem Server abgelehnt):

  • Bitadressen für Eingänge/Ausgänge/Merker mit dem Präfix X wie IX0.0, MX10.1: Verwenden Sie die Form I0.0, M10.1.
  • Bitadressen ohne Bitnummer (z. B. DB1.DBX0), DB-Adressen ohne Bereich (z. B. DB1) und Bitnummern größer als 7.
  • Adressen in Kleinbuchstaben (z. B. db1.dbw0).
  • Peripherieadressen (P).

Wird das Speichern eines Tags abgelehnt, nennt die Fehlermeldung den Grund.

Datentypen ​

SPS-TypDatentypGelesene GrößeBeispieladresse
BOOLBool1 BitDB1.DBX0.0, I0.0, Q0.1, M10.3
BYTE, USINTByte1 ByteDB1.DBB1, IB0, QB1, MB5
INTInt2 Byte, mit VorzeichenDB1.DBW2, IW64, MW20
WORD, UINTWord2 Byte, ohne VorzeichenDB1.DBW4, QW2, MW22
DINTDInt4 Byte, mit VorzeichenDB1.DBD6, MD40
DWORD, UDINTDWord4 Byte, ohne VorzeichenDB1.DBD10, ID4
REALReal4 Byte, GleitkommaDB1.DBD14, MD44
LREALLReal8 Byte, GleitkommaDB1.DBD18
STRING[n]Stringn + 2 ByteDB1.DBB26 (Länge = n)

Regeln:

  • String: Die Adresse zeigt auf das Anfangsbyte der STRING-Variablen. In das Feld Länge wird die in der SPS definierte maximale Zeichenzahl eingetragen (z. B. 20 für STRING[20]). Nur S7-STRING wird unterstützt; WSTRING und CHAR-Arrays werden nicht unterstützt.
  • Länge: Muss bei allen Typen außer String 1 sein; das Lesen von Arrays wird nicht unterstützt. Definieren Sie für jedes Array-Element ein eigenes Tag.
  • Sbyte: Wird bei Siemens-Geräten nicht unterstützt. Übertragen Sie SINT-Variablen im SPS-Programm in eine INT-Variable und lesen Sie diese als Int.
  • LInt, ULInt und LWord: Werden in 2.10 nicht unterstützt; sie können bei Siemens-Geräten in der Liste nicht ausgewählt werden, und der Server lehnt das Speichern ab. Übertragen Sie LINT-, ULINT- und LWORD-Variablen im SPS-Programm in eine DINT-, DWORD- oder LREAL-Variable und lesen Sie diese.
  • Automatisch: Wird bei Siemens-Geräten nicht unterstützt; wählen Sie den Datentyp ausdrücklich aus.

Tags aus älteren Versionen

In einer älteren Version gespeicherte Tags vom Typ LInt, ULInt oder LWord oder mit einer Adresse, die nicht zum Datentyp passt (siehe Datentyp und Adressformat), werden nicht gelöscht. Sie werden zur Laufzeit nicht gelesen, bleiben in der Qualität Bad, und der Grund wird in das Dienstprotokoll geschrieben; auch Schreibzugriffe auf diese Tags werden abgelehnt. Zur Korrektur ändern Sie Adresse oder Datentyp des Tags und speichern es; ein Speichern, bei dem nur die Beschreibung geändert wurde, wird abgelehnt.

Timer und Zähler ​

Die Adressen T<Nummer> und C<Nummer> lesen den 16-Bit-Rohwert des Timers oder Zählers mit dem Datentyp Word oder Int. Der Wert wird nicht in Sekunden oder eine Dezimalzahl umgerechnet; bei Timern kommen Zeitbasis und BCD-codierter Wert zusammen. Wird ein lesbarer Wert benötigt, übertragen Sie den Timer- oder Zählerwert im SPS-Programm in einen DB oder ein Merkerwort (z. B. MW100) und lesen diese Adresse. Greifen Sie auf Timer- und Zähleradressen nur lesend zu.

Beispiele ​

AdresseDatentypLängeBedeutung
DB1.DBX0.0Bool1DB1, Byte 0, Bit 0
DB1.DBX0.7Bool1DB1, Byte 0, Bit 7
DB1.DBB1Byte1DB1, Byte 1
DB1.DBW2Int1DB1, Byte 2–3
DB1.DBD6DInt1DB1, Byte 6–9
DB1.DBD14Real1DB1, Byte 14–17
DB1.DBB26String20STRING[20] ab Byte 26 in DB1
I0.0Bool1Eingangsbyte 0, Bit 0
IW64Int1Eingangsbyte 64–65
Q0.1Bool1Ausgangsbyte 0, Bit 1
QB1Byte1Ausgangsbyte 1
M10.3Bool1Merkerbyte 10, Bit 3
MW20Word1Merkerbyte 20–21
MD44Real1Merkerbyte 44–47
T5Word1Rohwert von Timer 5
C3Word1Rohwert von Zähler 3

Das Schreiben auf Eingänge (I) wird nicht empfohlen; die SPS füllt den Eingangsbereich in jedem Zyklus neu aus den physischen Eingängen.

2WinScada 2.10