Siemens S7 TCP
Das Protokoll Siemens S7 TCP ermöglicht die Kommunikation von 2WinScada mit SPS der Siemens-S7-Familie (S7-200, S7-200 Smart, LOGO! 0BA8, S7-300, S7-400, S7-1200, S7-1500) über Ethernet. Die Kommunikation erfolgt über ISO-on-TCP; der Standardport ist TCP 102. 2WinScada liest die Bereiche DB, Eingänge (I), Ausgänge (Q), Merker (M), Timer (T) und Zähler (C) der SPS über absolute Adressen und schreibt auf beschreibbare Tags.
Adresssyntax und Datentypen sind auf der Seite Siemens-S7-Adressierung beschrieben.
Sicherheit
Bevor Sie Schreibvorgänge an Produktionsanlagen testen, überprüfen Sie das SPS-Programm, die Prozesssicherheit und die Benutzerberechtigungen. Definieren Sie die Tags bei der ersten Inbetriebnahme mit Nur lesen; geben Sie das Schreiben erst nach einer kontrollierten Prüfung frei.
Lizenz
Siemens S7 TCP gehört zu den Standardprotokollen und ist in allen Lizenzpaketen verfügbar. Einzelheiten zur Lizenz finden Sie auf der Seite Lizenz.
Kanaldefinition
Auf der Registerkarte Allgemein des Fensters für einen neuen Kanal geben Sie den Kanalnamen ein und wählen unter Verbindungstyp den Eintrag SiemensTcp aus. Bei diesem Protokoll gibt es keine Verbindungsparameter auf Kanalebene; die Verbindungseinstellungen werden für jedes Gerät einzeln eingegeben. Mit einem Klick auf Speichern wird der Kanal angelegt.
Gerätedefinition
Klicken Sie im Kanalbaum mit der rechten Maustaste auf den Siemens-Kanal und wählen Sie Neues Gerät, um das Gerätefenster zu öffnen. Auf der Registerkarte Allgemein werden Gerätename und Aktiv wie bei den anderen Protokollen festgelegt.

Registerkarte Parameter:
| Feld | Beschreibung | Standard | Bereich |
|---|---|---|---|
| CPU-Typ | SPS-Familie: S7200, Logo0BA8, S7200Smart, S7300, S7400, S71200 oder S71500 | S71200 | Auswahl aus der Liste |
| Ip | IPv4-Adresse der SPS oder des Ethernet-Moduls; ein DNS-Name wird nicht akzeptiert | 255.255.255.255 | Eine gültige IPv4-Adresse |
| Port | ISO-on-TCP-Port | 102 | 1–65535 |
| Rack | Nummer des Racks, in dem die CPU steckt | 0 | 0 und höher |
| Steckplatz | Nummer des Steckplatzes (Slot), in dem die CPU steckt | 1 | 0 und höher |
| Timeout [ms] | Wartezeit auf die Antwort beim Lesen und Schreiben | 3000 | 3000–86400000 |

Der Standardwert von Ip ist nur ein Platzhalter; geben Sie vor dem Speichern des Geräts die tatsächliche Adresse der SPS ein (z. B. 192.168.1.10).
Rack und Steckplatz werden nach der Hardwarekonfiguration im SPS-Projekt eingegeben. Typische Werte:
| SPS | Rack | Slot |
|---|---|---|
| S7-300 | 0 | 2 |
| S7-400 | 0 | CPU-Steckplatz aus der Hardwarekonfiguration |
| S7-1200 / S7-1500 | 0 | 1 (in manchen Konfigurationen 0) |
Registerkarte Erweiterte Parameter:
| Feld | Beschreibung | Standard | Bereich |
|---|---|---|---|
| Leerlaufzeit für die Neuinitialisierung des Geräts [s] | Gelingt bei offener Verbindung während dieser Zeit kein erfolgreicher Lesevorgang bei der SPS, wird die Verbindung geschlossen und neu aufgebaut. Mit 0 ist diese Überwachung ausgeschaltet. | 0 | 0–86400 |
Tag-Definition
Tags werden wie bei den anderen Protokollen in der Tag-Tabelle des Geräts definiert (siehe Tag-Verwaltung). Bei Siemens-Geräten werden die Felder nach diesen Regeln ausgefüllt:
| Feld | Siemens-Regel |
|---|---|
| Adresse | Absolute S7-Adresse, z. B. DB1.DBD4, MW20, I0.0. Zur Syntax siehe Siemens-S7-Adressierung. |
| Datentyp | Muss dem Typ der Variablen in der SPS entsprechen. Datentyp bestimmt die Anzahl der gelesenen Bytes und wie der Wert dekodiert wird. Ein Bool-Tag erfordert eine Bitadresse; LInt, ULInt und LWord werden nicht unterstützt. |
| Länge | Bei String-Tags die in der SPS definierte maximale Zeichenzahl (z. B. 20 für STRING[20]). Bei den anderen Typen muss der Wert 1 sein. |
| Aktualisierungsintervall [s] | Leseperiode des Tags; 0,5–86400 Sekunden |
| Nur lesen | Wenn aktiviert, schreibt 2WinScada nicht auf dieses Tag. |
Beispieldefinitionen:
| Adresse | Datentyp | Bedeutung |
|---|---|---|
DB1.DBX0.0 | Bool | DB1, Byte 0, Bit 0 |
DB1.DBW2 | Int | INT ab Byte 2 in DB1 |
DB1.DBD4 | Real | REAL ab Byte 4 in DB1 |
M10.3 | Bool | Merkerbyte 10, Bit 3 |
MD40 | DInt | DINT ab Merkerbyte 40 |
IW64 | Int | Eingangswort ab Byte 64 |
Lese- und Schreibverhalten
- Die Tags werden nach dem Wert Aktualisierungsintervall [s] gruppiert. Nahe beieinanderliegende Adressen mit demselben Intervall im selben Speicherbereich (derselbe DB, I, Q oder M) werden zu einer Leseanfrage zusammengefasst: Die Lücke dazwischen darf höchstens 30 Byte betragen, eine Anfrage höchstens 200 Byte. Um die Zahl der Lesevorgänge zu verringern, legen Sie gemeinsam gelesene Variablen in der SPS auf aufeinanderfolgende Adressen.
- Ein Schreibvorgang auf ein Bool-Tag ändert nur das adressierte Bit; die anderen Bits im selben Byte bleiben unverändert.
- Der auf ein String-Tag geschriebene Text wird gemäß dem Wert Länge im S7-STRING-Format geschrieben.
- Kann keine Verbindung hergestellt werden oder bricht sie ab, wird die Qualität des Geräts und der Tags Bad. 2WinScada versucht höchstens einmal alle 30 Sekunden, die Verbindung wiederherzustellen.
- Schlägt bei offener Verbindung eine Leseanfrage fehl, wird nur die Qualität der Tags dieser Anfrage Bad.
Fehlerbehebung
| Symptom | Prüfungen |
|---|---|
| Verbindung kann nicht hergestellt werden | Prüfen Sie die Werte Ip und Port, den Netzwerkzugriff und den Port TCP 102 in der Firewall. Prüfen Sie, ob CPU-Typ, Rack und Steckplatz mit der Hardwarekonfiguration der SPS übereinstimmen. |
| Keine Verbindung zu S7-1200 / S7-1500 oder Lesen wird abgelehnt | Prüfen Sie im TIA Portal in den CPU-Eigenschaften, ob der PUT/GET-Zugriff durch entfernte Partner erlaubt ist und ob die Schutzstufe der CPU den Zugriff zulässt. |
| DB kann nicht gelesen werden | Prüfen Sie, ob der DB in der SPS vorhanden ist und die Adresse innerhalb der DB-Größe liegt. Bei S7-1200 / S7-1500 muss in den DB-Eigenschaften die Option „Optimized block access“ (Optimierter Bausteinzugriff) ausgeschaltet sein; andernfalls kann nicht über absolute Adressen auf den DB zugegriffen werden. |
| Wert unsinnig oder falsch | Prüfen Sie, ob Datentyp dem Typ in der SPS entspricht und ob die Adresse auf das Anfangsbyte der Variablen zeigt (siehe Siemens-S7-Adressierung). |
| Bool-Tag erhält keinen Wert oder wird nicht gespeichert | Die Adresse von Bool-Tags muss eine Bitnummer enthalten (z. B. DB1.DBX0.0, M10.3); Bitadressen werden nur bei Bool-Tags verwendet. |
| Tag nach dem Upgrade Bad | Das Tag erfüllt die Regeln von 2.10 nicht (LInt/ULInt/LWord oder die Adresse passt nicht zum Datentyp). Korrigieren Sie das Tag nach dem Grund im Dienstprotokoll und speichern Sie es (siehe Siemens-S7-Adressierung). |
| Adresse wird nicht akzeptiert | Prüfen Sie, ob die Adresse in Großbuchstaben und mit unterstützter Syntax geschrieben ist und ob die Bitadresse nur bei einem Bool-Tag verwendet wird. Die Fehlermeldung nennt den Ablehnungsgrund. |
| Verbindung bricht in kurzen Abständen ab und wird neu aufgebaut | Prüfen Sie, ob Leerlaufzeit für die Neuinitialisierung des Geräts [s] länger als der Wert Aktualisierungsintervall [s] der Tags ist, oder setzen Sie den Wert auf 0. |
| Schreiben schlägt fehl | Prüfen Sie die Einstellung Nur lesen, die Benutzerberechtigung und ob die Adresse in der SPS beschreibbar ist. Auf Eingänge (I) geschriebene Werte werden von der SPS in jedem Zyklus neu aktualisiert. |