AR_SEND: Archivdaten senden (S7-400) - STEP 7

Erweiterte Anweisungen (S7-300, S7-400)

ft:publication_title
Erweiterte Anweisungen (S7-300, S7-400)
Product
STEP 7
Version
V20
Publication date
11/2024
Language
de-DE
AR_SEND: Archivdaten senden

Beschreibung

Die Anweisung sendet Archivdaten an dafür angemeldete Bedien- und Beobachtungssysteme. Diese teilen im Anmeldetelegramm der CPU die relevante Archivnummer mit. Die Archivdaten können je nach Arbeitsspeicher der CPU und verwendetem Operandenbereich bis zu 65 534 Byte groß sein. Beim Aufbau der Archivdaten müssen Sie die Vorgaben des verwendeten Bedien- und Beobachtungssystems berücksichtigen.

Die Aktivierung des Sendevorgangs erfolgt nach Aufruf des Bausteins und positiver Flanke am Steuereingang REQ. Die Anfangsadresse der zu sendenden Archivdaten wird durch SD_1 vorgegeben, die Länge des Datenblocks durch LEN. Das Senden der Daten erfolgt asynchron zur Bearbeitung des Anwenderprogramms. Der erfolgreiche Abschluss des Sendevorgangs wird am Zustandsparameter DONE mit "1" angezeigt. Bei einer positiven Flanke am Steuereingang R wird ein laufender Sendevorgang abgebrochen.

Parameter

Die folgende Tabelle zeigt die Parameter der Anweisung "AR_SEND":

Parameter

Deklaration

Datentyp

Speicherbereich

Beschreibung

REQ

Input

BOOL

E, A, M, D, L

Steuerparameter request

R

Input

BOOL

E, A, M, D, L

Steuerparameter reset: Abbruch des aktuellen Auftrags

ID

Input

WORD

E, A, M, D oder Konstante

Datenkanal für Meldungen: W#16#EEEE
ID wird nur beim Erstaufruf ausgewertet.

AR_ID

Input

C_AR_SEND

E, A, M, D, L oder Konstante

Archivnummer (nicht erlaubt: 0); AR_ID wird nur beim Erstaufruf ausgewertet. Danach gilt bei jedem Aufruf von AR_SEND mit dem zugehörigen Instanz-DB die beim Erstaufruf verwendete Archivnummer.

Die Archivnummer wird automatisch vergeben. Dadurch ist die Konsistenz der Archivnummern gewährleistet.

DONE

Output

BOOL

E, A, M, D, L

Zustandsparameter DONE: Sendevorgang abgeschlossen

ERROR

Output

BOOL

E, A, M, D, L

Zustandsparameter ERROR:
ERROR=TRUE bedeutet, dass bei der Bearbeitung ein Fehler aufgetreten ist. Genaueres siehe Parameter STATUS.

STATUS

Output

WORD

E, A, M, D, L

Zustandsparameter STATUS: Anzeige einer Fehlerinformation

SD_1

InOut

ANY

E, A, M, D, T, Z

Zeiger auf Archivdaten. Die Längenangabe wird nicht ausgewertet.

Zulässig sind nur die Datentypen BOOL (nicht erlaubt: Bitfeld), BYTE, CHAR, WORD, INT, DWORD, DINT, REAL, DATE, TOD, TIME, S5TIME, DATE_AND_TIME.

Sie müssen die Archivdaten zielsystemspezifisch aufbauen.

Hinweis: Wenn der ANY-Pointer auf einen DB zugreift, ist der DB immer zu spezifizieren (z.B.: P# DB10.DBX5.0 Byte 10).

LEN

InOut

WORD

E, A, M, D, L

Länge des zu sendenden Datenblocks in Byte

Weitere Informationen zu den gültigen Datentypen finden Sie unter "Übersicht über die gültigen Datentypen".

Parameter ERROR und STATUS

Die folgende Tabelle enthält alle spezifischen Fehlerinformationen, die über die Parameter ERROR und STATUS ausgegeben werden können.

ERROR

STATUS

(dezimal)

Erläuterung

0

11

Warnung: Neuer Auftrag ist unwirksam, da vorangegangener Auftrag noch nicht abgeschlossen ist.

0

25

Die Kommunikation wurde angestoßen. Der Auftrag ist in Bearbeitung.

1

1

Kommunikationsprobleme

1

2

Negative Quittung, Funktion nicht ausführbar

1

3

Für die angegebene AR_ID liegt keine Anmeldung vor.

1

4

  • Fehler im Archivdatenzeiger SD_1 bezüglich der Datenlänge oder des Datentyps

  • Beim Erstaufruf liegt die angegebene AR_ID außerhalb des zulässigen Bereichs.

1

5

Resetanforderung wurde ausgeführt

1

7

RESET-Auftrag irrelevant, da die laufende Funktion abgeschlossen oder nicht aktiviert wurde (Baustein im falschen Zustand)

1

10

Zugriff auf lokalen Anwenderspeicher nicht möglich

(z. B. Zugriff auf gelöschten DB)

1

12

Beim Aufruf der Anweisung wurde

  • ein Instanz-DB, der nicht zu AR_SEND gehört, angegeben

  • kein Instanz-DB, sondern ein Global-DB angegeben

1

18

AR_ID wurde bereits von einem AR_SEND verwendet.

1

20

Zu wenig Arbeitsspeicher vorhanden.

Datenkonsistenz

Um Datenkonsistenz zu gewährleisten, dürfen Sie den aktuell benutzten Teil des Sendebereichs SD_1 erst dann wieder beschreiben, wenn der aktuelle Sendevorgang abgeschlossen ist. Dies ist der Fall, wenn der Zustandsparameter DONE den Wert "1" annimmt.