Protokolle und Feldgeräte
Siemens S7
Abschnitt betitelt „Siemens S7“- absolute Adressierung
- TIA, symbolische Adressierung
- S7 300/400 und
1200 & 1500
Unterstützte Datentypen
Abschnitt betitelt „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 Edge (nur Lesen) | Von SPS unterstützt | |||||
|---|---|---|---|---|---|---|---|
| Edge VarType | Edge 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
Abschnitt betitelt „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
Abschnitt betitelt „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.2Adressiert das zweite Bit des 200. Bytes im Datenblock Nr. 9DB30.DBW558Adressiert 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.MyFunkyVariableAdressiert eine Variable namensMyFunkyVariableim (direkt der Hauptstruktur untergeordneten) Datenblock namensTestDBPLC.Blocks.TestDB."My.Funky.Struktur".MyFunkyVariableAdressiert eine Variable namensMyFunkyVariablein einer UDT-InstanzMy.Funky.Strukturim (direkt der Hauptstruktur untergeordneten) Datenblock namensTestDBPLC.Blocks.TestDB."My""Funky""Struktur"."My""Funky""Variable"Adressiert eine Variable namensMy"Funky"Variablein einer UDT-InstanzMy"Funky"Strukturim (direkt der Hauptstruktur untergeordneten) Datenblock namensTestDBPLC.Blocks.TestDB.TestArray.MyFunkyElement[28]Adressiert das 28. Element des eindimensionalen ArraysTestArrayim (direkt der Hauptstruktur untergeordneten) Datenblock namensTestDBPLC.Blocks.TestDB.TestArray.MyFunkyElement[2,1,28]Adressiert das Element Nr. [2,1,28] des mehrdimensionalen ArraysTestArrayim (direkt der Hauptstruktur untergeordneten) Datenblock namensTestDB
Modbus TCP
Abschnitt betitelt „Modbus TCP“| 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. |