Gemeinsame Parameter der Anweisungen zur S7-Kommunikation (S7-300, S7-400) - STEP 7

S7-Kommunikation (S7-300, S7-400)

ft:publication_title
S7-Kommunikation (S7-300, S7-400)
Product
STEP 7
Version
V20
Publication date
11/2024
Language
de-DE
Gemeinsame Parameter der Anweisungen zur S7-Kommunikation

Klassifikation

Die Parameter der Anweisungen zur S7-Kommunikation lassen sich von ihrer Funktion her in die folgenden fünf Klassen einteilen:

  1. Steuerparameter dienen der Aktivierung einer Anweisung.

  2. Adressierungsparameter dienen der Adressierung des remoten Kommunikationspartners.

  3. Sendeparameter zeigen auf diejenigen Datenbereiche, die zum remoten Partner gesendet werden sollen.

  4. Empfangsparameter zeigen auf diejenigen Datenbereiche, in welche die vom remoten Partner empfangenen Daten eingetragen werden.

  5. Zustandsparameter dienen zur Überwachung, ob die Anweisung ihre Aufgabe fehlerfrei beendet hat, bzw. zur Analyse der aufgetretenen Fehler.

Steuerparameter

Die Aktivierung des Datenaustauschs erfolgt nur dann, wenn beim Aufruf der Anweisung die zugehörigen Steuerparameter einen definierten Wert haben (z. B. gesetzt sind) bzw. wenn sich der Wert gegenüber dem letzten Aufruf in definierter Weise geändert hat (z. B. positive Flanke).

Hinweis

Erstaufruf bei S7-300

Sie müssen beim Erstaufruf den Parameter REQ mit FALSE belegen.

Adressierungsparameter

Parameter

Beschreibung

ID

Referenz auf die lokale Verbindungsbeschreibung (wird durch die Verbindungsprojektierung vorgegeben). Hinweis: Bei den Anweisungen der S7-Kommunikation ist die ID W#16#EEEE nicht erlaubt.

R_ID

Mit dem Parameter R_ID legen Sie die Zusammengehörigkeit einer Sende- und einer Empfangs-Anweisung fest: Der Parameter R_ID muss bei der Anweisung auf der Sendeseite und bei der Anweisung auf der Empfangsseite übereinstimmen.

Damit wird die Kommunikation mehrerer Anweisungspaare über dieselbe logische Verbindung ermöglicht.

  • R_ID muss in der Form DW#16#wxyzWXYZ angegeben werden.

  • Die über R_ID festgelegten Anweisungspaare einer logischen Verbindung müssen für diese Verbindung eindeutig sein.

Der Parameter PI_NAME ist nur bei den relevanten Anweisungen beschrieben (nur S7-400).

Hinweis

Adressierungsparameter ID und R_ID

S7-300: Sie können die Adressierungsparameter ID und R_ID zur Laufzeit umparametrieren. Die neuen Parameter werden mit jedem neuen Auftrag nach Abschluss des vorangegangenen Auftrags wirksam.

Mit folgenden Möglichkeiten können Sie Instanz-DBs und somit Arbeitsspeicher sparen:

  1. Durch variable IDs können Sie mehrere Verbindungen über einen Dateninstanzbaustein nutzen.

  2. Durch variable R_IDs können Sie mit einer Instanz mehrere Zusammengehörigkeiten von Sende- und Empfangs-Anweisungspaaren für einen Auftrag festlegen.

  3. Sie können die Fälle 1 und 2 miteinander kombinieren.

Beachten Sie, dass die neuen Parameter erst nach Abschluss des vorangegangenen Auftrags gültig werden. Wenn Sie den Sendevorgang aktivieren, muss bei der Anweisung auf der Sendeseite und bei der Anweisung auf der Empfangsseite der Parameter R_ID übereinstimmen.

S7-400: Die Adressierungsparameter ID und R_ID werden nur beim Erstaufruf der Anweisung oder beim Überladen der Instanz ausgewertet (die Aktualparameter oder die vordefinierten Werte aus der Instanz). Mit dem Erstaufruf wird somit die Kommunikationsbeziehung (Verbindung) zum remoten Partner festgeschrieben, und zwar bis zum nächsten Neustart (Warmstart) oder Kaltstart.

Zustandsparameter

Mit den Zustandsparametern überwachen Sie, ob die Anweisung ihre Aufgabe ordnungsgemäß beendet hat oder ob sie noch tätig ist. Darüber hinaus zeigen diese aufgetretene Fehler an.

Hinweis

Die Zustandsparameter sind nur einen Zyklus lang gültig, nämlich vom ersten Befehl, der dem Aufruf folgt, bis zum nächsten Aufruf. Daraus folgt, dass Sie diese Parameter nach jedem Durchlauf der Anweisung auswerten müssen.

Sende- und Empfangsparameter

Wenn Sie bei einer Anweisung nicht alle Sende- bzw. Empfangsparameter nutzen, so muss der erste unbenutzte Parameter jeweils ein NIL-Pointer sein, und die benutzten Parameter müssen lückenlos hintereinander stehen.

Hinweis

Erstaufruf bei S7-400

Beim Erstaufruf wird durch die ANY-Pointer die für den Auftrag maximal übertragbare Nutzdatenmenge festgeschrieben; es wird nämlich im Arbeitsspeicher der CPU ein Kommunikationsdatenpuffer zur Konsistenzsicherung der Daten angelegt. Dieser belegt bis zu 480 Byte Arbeitsspeicher. Es wird empfohlen, den Erstaufruf dann im Neustart- (Warmstart-) oder Kaltstart-OB durchzuführen, wenn der Baustein mit dem Aufruf der Anweisung nicht im Betriebszustand RUN der CPU nachgeladen wird.

Bei Folgeaufrufen können Sie eine beliebige Anzahl von Daten versenden/empfangen, jedoch höchstens so viele wie beim Erstaufruf.

Eine Ausnahme von dieser Regel bilden die Anweisungen "BSEND" und "BRCV". Mit ihnen können Sie bis zu 64 Kbyte pro Auftrag übertragen.

Bei den Anweisungen zur zweiseitigen Kommunikation

  • muss die Anzahl der verwendeten SD_i-und RD_i-Parameter auf Sende- und Empfangsseite übereinstimmen

  • müssen die Datentypen bei zusammengehörigen SD_i- und RD_i-Parametern auf Sende- und Empfangsseite übereinstimmen

  • darf die Anzahl der über den Parameter SD_i zu sendenden Daten nicht größer sein als der Bereich, der durch den zugehörigen Parameter RD_i aufgespannt wird (gilt nicht für "BSEND" / "BRCV").

Wenn Sie gegen die genannten Regeln verstoßen, so wird Ihnen dies mit ERROR = 1 und STATUS = 4 angezeigt.

Nutzdatengröße

Bei den Anweisungen "USEND", "URCV", "GET" und "PUT" darf die Anzahl der zu übertragenden Daten eine bestimmte Nutzdatenlänge nicht überschreiten. Die maximale Nutzdatengröße ist abhängig von:

  • verwendeter Anweisung und

  • Kommunikationspartner.

Die garantierte Mindestgröße der Nutzdaten für eine Anweisung mit 1-4 Variablen können Sie folgender Tabelle entnehmen:

Anweisung

Partner: S7-300

Partner: S7-400

PUT / GET

160 Byte

400 Byte

USEND / URCV

160 Byte

440 Byte

BSEND / BRCV

32768/65534 Byte

65534 Byte

Beachten Sie die Einschränkungen zur Nutzdatengröße in den Technischen Daten der jeweiligen CPU.

Exakte Nutzdatengröße

Wenn die oben angegebene Nutzdatengröße nicht ausreicht, können Sie die exakte maximale Nutzdatenlänge in Byte wie folgt ermitteln:

  • Zunächst lesen Sie aus der folgenden Tabelle die bei der Kommunikation gültige Datenblockgröße ab:

Eigene CPU

Remote CPU

Datenblockgröße in Byte

S7-300

beliebig

240 (S7-300)

S7-400

S7-300

240 (S7-400)

S7-400

S7-400

480

  • Mit diesem Wert gehen Sie in die folgende Tabelle und lesen daraus die maximal mögliche Nutzdatenlänge in Byte als Summe der benutzten Parameter ab. Sie gilt für gerade Längen der Bereiche SD_i, RD_i, ADDR_i. Für jeden Bereich ungerader Länge reduziert sich die maximal mögliche Nutzdatenlänge um ein Byte.

Anzahl benutzter Parameter SD_i, RD_i, ADDR_i

Datenblockgröße

Anweisung

1

2

3

4

240 (S7-300)

PUT/GET/
USEND

160

-

-

-

240 (S7-300 via integrierte Schnittstelle)

PUT

212

-

-

-

GET

222

-

-

-

USEND

212

-

-

-

240 (S7-400)

PUT

212

196

180

164

GET

222

218

214

210

USEND

212

-

-

-

480

PUT

452

436

420

404

GET

462

458

454

450

USEND

452

448

444

440