SPS Header

Home  Zurück  Vor

Das datenstromorientierte TCP/IP-Protokoll ist in der Lage mehrere kurze Dateneinheiten in größere Einheiten zusammenzufasssen. Diese Eigenschaft steigert den Datendurchsatz des Netzes. Sie erfordert jedoch im Protokoll oberhalb von TCP eine Datenkennung (Header). Dies entspricht der selben Vorgehensweise wie bei anderen Protokollen (FTP, HTTP).

Zu diesem Zweck wurde der 8 Byte lange Tani SPS-Header entwickelt.

 

Den SPS-Header sollten Sie nur dann verwenden, wenn auch der Kommunikationspartner den Header unterstützt. Andersfalls schlägt der Verbindungsaufbau fehl!

Format des SPS Headers

 

Nr. des Bytes

Bedeutung

Byte 0

0x4d ´M´

Byte 1

0x4b ´K´

Byte 2***

Datalen LSB* Länge der Daten im Paket nach dem

Byte 3***

Datalen MSB** Header

Byte 4***

Bit 0 = 1, falls weitere Telegramme folgen

Byte 5***

0

Byte 6***

SeqNo. LSB*

Byte 7***

SeqNo. MSB**

Datalen Bytes

Nutzdaten

*LSB: Least (Lower) Significant Byte (Niederwertiges Byte)

**MSB: Most Significant Byte ( Höherwertiges Byte)

*** Byte 2 / 3 Byte 4 / 5 und Byte 6 / 7 bilden zusammen den Datenwert short sie werden im INTEL-Format dargestellt

Acknowledges

Ist die DataLen 0, so handelt es sich nicht um Nutzdaten selbst, sondern um ein Lebenstelegramm, ein sogenanntes Life Data Ack. Datenacknowledges ermöglichen eine Verbindungsüberwachung, die TCP/IP als Weitverkehrstelegramm eigentlich nicht vorsieht. Die Standardzeiten für die Verbindungsüberwachung entsprechen denen des H1-Protokolls. Damit stellt sich das S5-TCP/IP System aus Sicht von SPS oder PC als H1 - kompatibel dar.

Sequenznummern

Byte 6 und Byte 7 ist eine Sequenznummer, die bei Verbindungsaufbau den Wert 0 hat und bei jedem Senden von Nutzdaten um eins hochgezählt wird. Dieser Telegrammzähler dient einer zusätzlichen Sicherung der Datenübertragung. Werden Datenlebenstelegramme gesendet wird die Sequenznummern nicht hochgezählt und die Datalen beträgt 0.

Verbindungen Fetch und Write

Bei den Aufträgen Fetch und Write entsprechen die ersten 16 Datenbytes beim Start eines Auftrags dem SINEC-AP-Header. Der SINEC-AP-Header wird auch bei der Kommunikation über H1 eingesetzt.

Daten senden / empfangen

Beim Senden von Daten über den S5 TCP/IP werden in einem Telegramm maximal 512 Bytes Nutzdaten gesendet. Dieser Maximalwert ist durch die eingestellte Kachelblockgröße vorgegeben. Beim Empfangen kann ein Datenpaket bis zu 1460 Bytes enthalten. Diese Grenzen werden durch das TCP/IP Protokoll automatisch überwacht, so daß eine Überwachung auf Anwenderseite nicht mehr notwendig ist.

Übertragung ohne Telegrammheader

Der Header am Telegrammstart läßt sich abschalten. In diesem Fall ist das Applikationsprogramm auf beiden Seiten für die Überwachung verantwortlich. Dazu sollten Sie folgendes beachten:

1. Insbesondere bei den Aufträgen Send Direkt und Receive Direkt dürfen bestimmte Zeitlimits bis zur Telegrammübernahme nicht überschritten werden. Bei Mißachtung dieser Zeitlimits wären die internen Puffer z.B. durch Anfragen voll und damit ein Synchronisieren von Anfrage und Antwort nicht mehr möglich.

2. Die Einhaltung eines bestimmten Mechanismus zur geblockten Datenübertragung ist notwendig, um das Ende der Nutzdaten zu erkennen.

3. Auf der Empfangsseite ist sicherzustellen, daß die Telegramme aus dem Empfangspuffer gelesen werden, bevor die Gegenstation das nächste Telegramm sendet.

Die Erstellung einer Verbindungsüberwachung im Applikationsprogramm ist unerläßlich.