Spezifikation: Protokolle und Feldgeräte

Siemens S7

  • absolute Adressierung

  • TIA, symbolische Adressierung

  • S7 300/400 und 1200 & 1500

Unterstützte Datentypen

Die Unterstützten Datentypen sind von der Adressierungsart (absolut oder symbolisch) anhängig. Sie können diese der folgenden Tabelle entnehmen.

Datentyp

Im Crawler (nur Lesen)

Von SPS unterstützt

Datentyp

Im Crawler (nur Lesen)

Von SPS unterstützt

Crawler VarType

Crawler InfluxType

Bits

Symbolisch

Absolut

S7-300/400

S7-1200

S7-1500

Binärzahlen

S7_Bool

FLOAT

1

S7_Byte

FLOAT

8

S7_Word

FLOAT

16

S7_DWord

FLOAT

32

S7_LWord

FLOAT

64

 

 

Ganzzahlen

S7_SInt

FLOAT

8

 

S7_Int

FLOAT

16

S7_DInt

FLOAT

32

S7_USInt

FLOAT

8

 

S7_UInt

FLOAT

16

 

S7_UDInt

FLOAT

32

 

S7_LInt

FLOAT

64

 

 

S7_ULInt

FLOAT

64

 

 

Gleitpunktzahlen

S7_Real

FLOAT

32

S7_LReal

FLOAT

64

 

Zeiten

S7_S5Time

STRING

16

 

S7_Time

STRING

32

FLOAT
(Millisek.)

S7_LTime

STRING

64

 

 

FLOAT
(Nanosek.)

Datum und Uhrzeit

S7_Date

STRING

16

FLOAT
(Tage)

S7_Time_Of_Day

STRING

32

FLOAT
(Millisek.)

S7_LTOD

STRING

64

 

 

FLOAT
(Ticks)

S7_Date_And_Time

STRING

64

 

S7_LDT

STRING

64

 

 

S7_DTL

STRING

96

 

Zeichen

S7_Char

STRING

8

S7_WChar

STRING

16

 

S7_String

STRING

n+2 Bytes

S7_WString

STRING

n+2 Words

 

Array

S7_Array

 

 



Einzelzugriff auf jedes Element mit seiner spezifischen Adresse

Max. Dimensionen: 6
Max. Anzahl Bytes: 32.767

Max. Dimensionen: 6
Max. Anzahl Bytes: 65.535

Max. Dimensionen: 6
Max. Anzahl Bytes: 16.777.216

Zeiger

Pointer

 

48

 

Any

 

80

 

Variant

 

0

 

Manuelle Eingabe der Adressen

Werden die Messgrößen manuell über das UI oder über einen Import mittels CSV-Datei, sind bei der Angabe der Adressen folgende Dinge zu beachten.

Absolute Adressierung

Für absolut adressierten Datenzugriff muss das Adressschema dem gängigen, vollqualifizierten Schema aus Datenblock-Nummer, Operand und Byte-/Bit-Offset folgen.

Aufbau: DB<Nr>.DB<B|W|D|X><ByteOffset>.<BitOffset>; wobei zu beachten ist:

  • Der durch DBB, DBD, DBX oder DBW beschriebene Operandentyp kann gegenwärtig beliebig genutzt werden, könnte auch bei allen Datentypen auf DBB stehen (dient lediglich der gewohnten Lesbarkeit durch den SPS-Programmierer)

  • Der Bit-Offset ist optional, kann (inklusive des trennenden Punkts) bedarfsweise weggelassen werden

  • Leerzeichen sind zu entfernen

Beispiele:

  • DB9.DBX200.2
    Adressiert das zweite Bit des 200. Bytes im Datenblock Nr. 9

  • DB30.DBW558
    Adressiert das 558. Byte des Datenblocks Nr. 30

Symbolische Adressierung

Für symbolisch adressierten Datenzugriff setzt sich die Adresse hierarchisch aus der Programmstruktur, Gruppen, mit einem Punkt getrennt, zusammen. Sie beginnt immer mit den beiden Gruppenelementen PLC (nicht dem Gerätenamen wie bspw. PLC_1 !) und Blocks. Zu beachten:

  • Enthalten Gruppenelemente oder Variablen einen Punkt, so ist dieser Adressteil in doppelte Anführungszeichen (ASCII-Code 0x22) zu setzen

  • Enthalten Gruppenelemente oder Variablen ein doppeltes Anführungszeichen, so ist dieser Adressteil in doppelte Anführungszeichen zu setzen und zusätzlich das enthaltene Anführungszeichen zu verdoppeln

  • Die Groß-/Kleinschreibung ist zu beachten

  • Gewissen Sonderzeichen erfordern ebenfalls die Maskierung mit doppeltes Anführungszeichen
    (z.B.: <>[ ] . { } )

Beispiele:

  • PLC.Blocks.TestDB.MyFunkyVariable
    Adressiert eine Variable namens MyFunkyVariable im (direkt der Hauptstruktur untergeordneten) Datenblock namens TestDB

  • PLC.Blocks.TestDB."My.Funky.Struktur".MyFunkyVariable
    Adressiert eine Variable namens MyFunkyVariable in einer UDT-Instanz My.Funky.Struktur im (direkt der Hauptstruktur untergeordneten) Datenblock namens TestDB

  • PLC.Blocks.TestDB."My""Funky""Struktur"."My""Funky""Variable"
    Adressiert eine Variable namens My"Funky"Variable in einer UDT-Instanz My"Funky"Struktur im (direkt der Hauptstruktur untergeordneten) Datenblock namens TestDB 

  • PLC.Blocks.TestDB.TestArray.MyFunkyElement[28]
    Adressiert das 28. Element des eindimensionalen Arrays TestArray im (direkt der Hauptstruktur untergeordneten) Datenblock namens TestDB

  • PLC.Blocks.TestDB.TestArray.MyFunkyElement[2,1,28]
    Adressiert das Element Nr. [2,1,28] des mehrdimensionalen Arrays TestArray im (direkt der Hauptstruktur untergeordneten) Datenblock namens TestDB

Ungültige Adressangaben, wie sie häufig bei manueller Eingabe auftreten, verhindern einen ordnungsgemäßen Datenzugriff!
Durch Nutzung der Import-Funktion wird diese Fehlerquelle ausgeschlossen, die Variablen werden somit korrekt formatiert und maskiert in die Crawler-Struktur übernommen.

Modbus TCP

Funktion

Kommentar

Funktion

Kommentar

Unterstützte Zugriffsmethoden

READ_COIL, READ_DISCRETE_INPUT, READ_INPUT_REGISTER, READ_HOLDING_REGISTER

Unterstützte Datentypen

BOOLEAN*, INT16, UINT16, INT32, UINT32, INT64, UINT64, FLOAT, DOUBLE, STRING**

*Boolean nur für Bit-level Zugriffsmethoden (read coils, read discrete input) unterstützt.

** Der Datentyp STRING ist standardmäßig auf 8 Zeichen eingestellt. Wird eine andere Zeichenanzahl gewünscht, muss aktuell Kontakt mit dem Support aufgenommen werden.

Slave ID
(Modbus RTU)

Bei Modbus RTU kann die “Slave ID” angegeben werden. Standard = 1

 

Byte-Reihenfolge
(endianness)

Big-endian*, little-endian* (Standard)

* Für Datentypen größer als 16 Bit (INT32, UINT32, INT64, UINT64, FLOAT, DOUBLE, STRING). Definiert in welchem REGISTER (nicht Bytes) das höchste Bit enthält.

Byte-Reihenfolge ist ein optionaler Konfigurationsparameter, welcher aktuell nicht im UI eingerichtet werden kann. Ist eine Abweichung vom Standard erforderlich, kontaktieren Sie bitte den Support.

© Dr. Ecklebe GmbH