S7 - TSPP (Time Stamp Push Protocol)

Allgemein

Mit TSPP ist es möglich, Daten von der SPS an den WinCC OA Treiber spontan und mit Zeitstempel, der in der SPS generiert wurde, zu übermitteln. Dies erlaubt die Optimierung der Kommunikation, da es möglich ist, Daten nur bei Wertänderungen zu übermitteln. Zudem erlaubt es eine bessere Auflösung von Zeitstempeln im Vergleich zum Polling, da die Zeitstempel bereits in der SPS generiert werden, sobald eine Wertänderung wahrgenommen wird.

Um de TSPP-Modus zu verwenden, ist ein gewisser Parametrierungsaufwand an der SPS erforderlich, da die SPS einen festgelegten Datenpuffer mit den zu übertragenden Daten vorbereiten muss und sie diese Daten über den BSEND-Funktionsaufruf senden muss. Die Struktur des Datenpuffers wird im Folgenden näher beschrieben.

Der TSPP-Datenblock besteht aus einer Kopfzeile (Header) und mehreren gleichlangen Datensätzen. Die Länge eines Datensatzes wird in der Kopfzeile (Header) definiert und die Anzahl der Datensätze wird aus der gesamten Blocklänge kalkuliert.

Jeder Datensatz besteht aus:

  • UTC Zeitstempel,

  • DB-Nummer,

  • Startadresse, welche die Adresse des ersten Words im Datensatz ist

  • Daten in den folgenden Words.

Anmerkung:

Im TSPP Datensatz muss ein UTC Zeitstempel vorhanden sein. Wenn die SPS mit lokaler Zeit läuft, so müssen in der SPS beim Generieren des Zeitstempels für den TSPP Datensatz immer zwei Stunden abgezogen werden.

Die Größe eines Datensatzes ist beliebig. Es kann zum Beispiel mehrere kleine Datensätze oder weniger größere Datensätze in einem TSPP-Block geben. Die maximale Größe des BSEND-Funktionsaufrufes darf nicht überschritten werden.

Das Datenmapping wird wie üblich durchgeführt. Der Eingang-Adressenmodus muss spontan sein und es können alle Typen von Adressen parametriert werden. Wenn eine Adresse zum Beispiel DB 100, die Startadresse 1000 und 4 Words hat, sind die Bitadressen DB100.DBX1000.0 bis DB100.DBX1007.7 von diesem Datensatz betroffen.

Die DB müssen vorhanden sein in der SPS, anderenfalls kann keine Kommunikation erfolgen.

Tabelle 1. Datenblock Struktur des TSP -Protokolls
Byte Description Meaning Content Format Data Set Length Data Length
0 TS Header Time Stamp Protocol ID 1 T char
1 Time Stamp Protocol ID 2 S char
2 Time Stamp Protocol ID 3 P char
3 record length n byte
4 length of entire block [WORD] (6 + n) * x int
5
6 1. record with timestamp Date Time SIMATIC TIME & DATE (8 Byte)

(6 + n)

[WORD]

7
8
9
10
11
12
13
14 DB Number UINT
15
16 Start Address UINT
17
18 Value 1 WORD

n

[WORD]

29
20 Value 2 WORD
21
22 .................
...
... Value n WORD
...
... 2. record with timestamp Date Time SIMATIC TIME & DATE (8 Byte)

(6 + n)

[WORD]

...
...
...
...
...
...
...
... DB Number UINT
...
... Start Address UINT
...
... Value 1 WORD

n

[WORD]

...
... Value 2 WORD
...
... .................
...
... Value n WORD
...

...

... x. record with timestamp Date Time SIMATIC TIME & DATE (8 Byte)

(6 + n)

[WORD]

...
...
...
...
...
...
...
... DB Number UINT
...
... Start Address UINT
...
... Value 1 WORD

n

[WORD]

...
... Value 2 WORD
...
... .................
...
... Value n WORD
x

Die "record length" ist die Anzahl der 16Bit-Wörter in einem Record ohne den 6-Wort Recordheader.

Die "length of entire block" ist die Anzahl der 16Bit Wörter aller Records. Also (6+n)*x, wobei x für die Anzahl aller Records steht.

Anmerkung: Wenn ein TSPP-Telegramm mit dem Header "TSH" statt "TSP" ankommt, wird die "Record Length" als 2 Byte Word interpretiert. Das Telegramm wird danach wie gewöhnlich abgearbeitet. Damit ist es theoretisch möglich, in einem TSPP-Telegramm einen Record bis zu 65535-6 16 Bit Worte zu verschicken.

Parametrierung

Die Parameter, die für eine S7-TSPP-Verbindung im S7-Parametrierpanel definiert werden müssen, sind:

Verbindungstyp

Der Verbindungstyp ändert sich automatisch auf "TSPP S7 Verbindung" und kann nicht geändert werden, wenn S7 - TSPP aktiv ist.

IP Adresse

Die IP-Adresse (oder der Host-Name) von der CPU. Um einen bestimmten Port zu verwenden, kann dieser an die IP Adresse angefügt werden, z.B. "192.168.1.13:120". Standardmäßig wird der TCP-Port 102 für den S7 Treiber verwendet.

Rack

Die Racknummer der CPU-Einheit der SPS. Diese ist bei unterschiedlichen SPS-Baugruppen z.B. S7-300 und S7-400 zu beachten.

Für TSPP ist hier die entsprechende Nummer aus der im Engineering Tool (z.B. NetPro oder TIA Portal) angelegten parametrierten Verbindung einzutragen. In diesem Fall der unter "Adressdetails" - "Lokal" und "Rack" definierte Wert (siehe auch Beispiel für TSPP-Parametrierung).

Slot

Die Slotnummer der CPU-Einheit der SPS. Diese ist bei unterschiedlichen SPS-Baugruppen z.B. S7-300 und S7-400 zu beachten.

Für TSPP ist hier die entsprechende Slot-Nummer aus der im Engineering Tool (z.B. NetPro oder TIA Portal) angelegten parametrierten Verbindung einzutragen. In diesem Fall der unter "Adressdetails" - "Lokal" und "Slot" definierte Wert (siehe auch Beispiel für TSPP-Parametrierung).

Verbindungs-Id

Die ID der S7-Verbindung auf WinCC OA S7-Treiberseite. Diese ID ist nur für den lokalen Gebrauch. Es muss nicht mit der ID der entsprechenden Verbindung in der SPS übereinstimmen.

CPId

Die CPId muss auf "Lokale Verbindungsressource", die in der SPS für die S7-Verbindung angegeben wurde, gesetzt werden.

PC-Rack

Der PC-Rack, wie in der SPS definiert. Hier sind die Werte aus der im Engineering Tool (z.B. NetPro oder TIA Portal) angelegten parametrierten Verbindung einzutragen. In diesem Fall der unter "Adressdetails" - "Partner" - "Rack" definierte Wert (siehe auch Beispiel für TSPP-Parametrierung).

PC-Slot

Der Slot vom PC, wie in der SPS definiert. Hier sind die Werte aus der im Engineering Tool (z.B. NetPro oder TIA Portal) angelegten parametrierten Verbindung einzutragen. In diesem Fall der unter "Adressdetails" - "Partner" - "Slot" definierte Wert (siehe auch Beispiel für TSPP-Parametrierung).

PCId

Die PCId muss auf "Abgesetzte Verbindungsressource", die in der SPS für die S7-Verbindung angegeben wurde, gesetzt werden.

Für die Beschreibungen der anderen Parametrierungsparameter siehe Parametrierung des S7-Treibers.

Aktiv

Selektieren Sie die Checkbox um die Verbindung zum Peripheriegerät aktiv oder inaktiv zu setzen. Eine erstellte und konfigurierte Verbindung kann deaktiviert werden. Der Verbindungs-Datenpunkt wird nicht gelöscht und kann jederzeit neu aktiviert werden. Die Status-Anzeige wechselt vom "Verbunden" auf "Nicht aktiv" wenn eine Verbindung deaktiviert ist.

Zustand

Zeigt den Status der Peripherieverbindung. Es gibt vier Möglichkeiten "Nicht verbunden" (Verbindung zu dem Peripheriegerät verloren z.B. SPS wurde vom Netzwerk getrennt), "Verbunden" (mit dem Peripheriegerät verbunden), "Generalabfrage" (Generalabfrage läuft), "Nicht Aktiv" (Gerät mit zugehöriger Checkbox ist auf inaktiv gesetzt).

GA

Die Schaltfläche GA führt eine Generalabfrage für die ausgewählte Verbindung aus. Für spontane Telegramme (TSPP) bedeutet das, dass das Generalabfrage-Bit für die Daten, die als nächstes empfangen werden, gesetzt wird. Die nächsten empfangenen Daten werden an WinCC OA gesendet (ohne Berücksichtigung des Low-Level-Vergleichs und Glättung). Siehe auch Config-Eintrag autoGQ im Kapitel Mögliche Config-Einträge des S7-Treibers). Der S7 Treiber führt automatisch eine Generalabfrage beim Verbindungsaufbau und bei einer Redundanzumschaltung aus.

Anmerkung: Die TSPP-spezifischen Parameter werden im _S7_Config.TSPPExtras-DPE gespeichert.
VORSICHT: Wenn die S7-Verbindung über die integrierte IE-Schnittstelle der S7-300 Steuerungen der CPU31x-2PN/DP oder der CPU319-3PN/DP projektiert ist, dann müssen der FB12 "BSEND" und FB13 "BRCV" aus der Bibliothek "Standard Library -> Communication Blocks -> Blocks" mit der Familie="CPU_300" verwendet werden. Diese FBs sind für die S7-Kommunikation über die integrierte IE-Schnittstelle der CPU sowie für die S7-Kommunikation über die S7-300 IE-CPs verwendbar.
VORSICHT: Wenn der Treiber keine TSPP-Nachricht innerhalb des Alive-Intervalls (Defaultwert 30 Sekunden, siehe Mögliche Config-Einträge des S7-Treibers) erhält, schließt der Treiber die Verbindung zu der SPS und baut die Verbindung neu auf. Wenn der Treiber erneut keine TSPP-Nachricht erhält, schließt er die Verbindung erneut. Der Treiber muss mindestens ein TSPP-Signal innerhalb des Alive-Intervalls erhalten.
Anmerkung: Wenn eine SPS über TSPP mit einem redundanten WinCC OA System verbunden ist, müssen die Res.CPId und Res.PCId unterschiedlich für beide Verbindungen sein. In einem redundanten Projekt erlauben die Panels die Eingabe dieser Einträge in zwei zusätzlichen Feldern. Diese Felder sind nur in einem redundanten Projekt sichtbar.

Beispiel für TSPP-Parametrierung

>

In der SPS müssen die parametrierten Verbindungen für jede TSPP-Verbindung definiert werden. Die Verbindungen können mit dem STEP 7 NetPro-Tool oder dem TIA Portal definiert werden. Die nächsten Abbildungen zeigen eine solche Konfiguration in der SPS.

NetPro

Abbildung 1. STEP 7 Verbindungsparametrierung für TSPP
Abbildung 2. Verbindungsparametrierung für TSPP (cont)

TIA Portal

Öffnen Sie das TIA-Projekt, gehen Sie auf Geräte & Verbindungen und wählen Sie die gewünschte SPS aus. Wechseln Sie in der Netzwerksicht auf den Verbindungen-Tab.

Wählen Sie eine Verbindung aus, um die entsprechenden Adressdetails anzuzeigen.

TSPP mit redundanter SPS oder Verbindungen

Das Standardverhalten von TSPP im Zusammenhang mit redundanten SPS oder redundanten Verbindungen ist, dass der Treiber eine der aufgebauten Verbindungen auswählt, um die TSPP-Telegramme für das Mapping auf DPs zu übernehmen. Dies bedeutet, dass alle aufgebauten TSPP-Verbindungen die gleichen TSPP-Telegramme senden müssen. Es ist nicht möglich, dass eine Verbindung falsche oder leere TSPP-Telegramme sendet.

In diesem Modus kann es daher zu einem Verlust von Telegrammen kommen, wenn die "benutzte" Verbindung unterbrochen wird, bis der Treiber eine andere wählt.

Mit dem Config-Eintrag [s7] reduModeTSPP (1 oder 2) kann der Treiber so konfiguriert werden, dass er TSPP-Daten von jeder Verbindung akzeptiert. Dies hat den Vorteil, dass keine Umschaltung erforderlich ist. Damit ist es möglich, dass die SPS leere TSPP-Telegramme zur Alive-Prüfung sendet, aber es ist nicht möglich, dass TSPP-Telegramme mit ungültigen Daten gesendet werden.

Wenn dieser Modus gewählt wird, werden doppelte Werte in WinCC OA gesehen wenn die gleichen TSPP-Telegramme über mehrere Verbindungen gesendet werden.

Dies kann entweder durch Low-Level Alt-Neu-Vergleich gefiltert werden (Modus 1) oder wenn der [s7] reduModeTSPP Wert 2 ist, erfolgt die Filterung bereits auf Basis von TSPP-Telegrammen.

Mit dem Config-Eintrag [s7] LimitedTSPPAliveCheck = " Yes " kann vermieden werden, dass Alive-Fehlermeldungen ausgegeben werden, wenn die SPS nicht auf allen Verbindungen periodische TSPP-Telegramme sendet.