ALARM_8P: PLC-Meldungen mit Begleitwerten für acht Signale erzeugen (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
ALARM_8P: PLC-Meldungen mit Begleitwerten für acht Signale erzeugen

Beschreibung

Die Anweisung ist die Erweiterung von "ALARM" auf acht Signale.

Falls Sie das Verfahren des Quittierungsgetriggerten Meldens nicht aktiviert haben, wird stets eine Meldung generiert, wenn bei mindestens einem Signal ein Signalwechsel erkannt wurde (Ausnahme: Beim Erstaufruf wird stets eine Meldung gesendet.). Für alle acht Signale gibt es eine gemeinsame Meldungsnummer, die am Anzeigegerät in acht Teilmeldungen aufgeteilt wird. Sie können jede Teilmeldung einzeln quittieren oder auch mehrere Teilmeldungen auf einmal.

Über den Ausgangsparameter ACK_STATE können Sie den Quittierungszustand der einzelnen Meldungen in Ihrem Programm weiterverarbeiten. Falls Sie eine Meldung einer "ALARM_8P"-Anweisung sperren oder freigeben, so betrifft das immer die gesamte "ALARM_8P"-Anweisung. Das Sperren und Freigeben einzelner Signale ist nicht möglich.

Pro Instanz von "ALARM_8P" steht ein Meldespeicher mit zwei Speicherplätzen zur Verfügung. Genaueres zur Zwischenspeicherung von Signalwechseln siehe Abschnitt Einführung in die Erzeugung von PLC-Meldungen mit Anweisungen.

Parameter

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

Parameter

Deklaration

Datentyp

Speicherbereich

Beschreibung

EN_R

Input

BOOL

E, A, M, D, L

Steuerparameter enabled to receive, der bewirkt, dass der Ausgang ACK_STATE beim Aufruf aktualisiert wird (EN_R=1) bzw. nicht aktualisiert wird (EN_R=0).

SIG_i,

1≤i ≤8

Input

BOOL

E, A, M, D, L

i-tes zu überwachendes Signal

ID

Input

WORD

E, A, M, D, L oder Konstante

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

EV_ID

Input

C_ALARM_8P

E, A, M, D, L

Meldungsnummer (nicht erlaubt: 0); EV_ID wird nur beim Erstaufruf ausgewertet. Da­nach gilt bei jedem Aufruf von "ALARM_8P" mit dem zugehörigen Instanz-DB die beim Erstaufruf ver­wendete Meldungsnummer.

Die Meldungsnummer wird automatisch vergeben. Dadurch ist die Konsistenz der Meldungsnummern gewährleistet. Die Meldungsnummer muss innerhalb Ihres Anwenderprogramms eindeutig sein.

SEVERITY

Input

WORD

E, A, M, D, L oder Konstante

Gewicht des Ereignisses

Mögliche Werte: 0 bis 127 (Wert 0 bedeutet höchstes Gewicht)
Dieser Parameter ist für die Bearbeitung der Meldung nicht relevant.

DONE

Output

BOOL

E, A, M, D, L

Zustandsparameter DONE:

Meldungsgenerierung 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

ACK_STATE

Output

WORD

E, A, M, D, L

Bitfeld mit dem aktuellen Quittierzustand aller acht Meldungen (1: Ereignis quittiert, 0: Ereignis nicht quittiert):

  • Bit 0 bis 7 ist abgebildet auf das gekommene Ereignis bei SIG_1 bis SIG_7

  • Bit 8 bis 15 ist abgebildet auf das gegangene Ereignis bei SIG_1 bis SIG_7

  • Initialisierungszustand: W#16#FFFF, d. h. alle kommenden und gehenden Ereignisse sind quittiert

SD_j,

1≤ j ≤10

InOut

ANY

E, A, M, D, T, Z

j-ter Begleitwert

Die Begleitwerte gelten für alle Meldungen. Zulässig sind nur die Datentypen BOOL (nicht erlaubt: Bitfeld), BYTE, CHAR, WORD, INT, DWORD, DINT, REAL, DATE, TOD, TIME, S5TIME, DATE_AND_TIME.

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

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 für die Anweisung "ALARM_8P" spezifischen Fehlerinformationen, die über die Parameter ERROR und STATUS ausgegeben werden können.

ERROR

STATUS

(dezimal)

Erläuterung

0

11

Meldungsverlust: Der vorangegangene Signalwechsel bzw. die vorangegangene Meldung konnte nicht gesendet werden und wird durch die aktuelle Meldung ersetzt.

0

22

  • Fehler im Zeiger auf die Begleitwerte SD_i:

    • bezüglich der Datenlänge oder des Datentyps

    • Begleitwerte im Anwenderspeicher nicht erreichbar, z. B. wegen gelöschtem DB oder Bereichslängenfehler

    • Die aktivierte Meldung wird ohne Begleitwerte gesendet.

  • Der von Ihnen gewählte Aktualparameter von SEVERITY liegt oberhalb des zulässigen Bereichs. Die aktivierte Meldung wird mit SEVERITY=127 gesendet.

0

25

Die Kommunikation wurde angestoßen. Die Meldung ist in Bearbeitung.

1

1

Kommunikationsprobleme: Verbindungsabbruch oder keine Anmeldung vorhanden.

Bei aktiviertem Quittierungsgetriggerten Melden: temporäre Anzeige, falls keine Anzeigegeräte das Quittierungsgetriggerte Melden beherrschen.

1

4

Beim Erstaufruf:

  • liegt die angegebene EV_ID außerhalb des zulässigen Bereichs.

  • liegt ein formaler Fehler des ANY-Pointers SD_i vor.

  • wurde der für die CPU pro "ALARM_8P" maximal versendbare Speicherbereich überschritten.

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 "ALARM_8P" gehört, angegeben.

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

1

18

EV_ID wurde bereits von einem der Anweisungen "NOTIFY", "NOTIFY_8P", "ALARM", "ALARM_8" oder "ALARM_8P" verwendet.

1

20

Zu wenig Arbeitsspeicher vorhanden.

1

21

Die Meldung mit der angegebenen EV_ID ist gesperrt.

Hinweis

Nach dem ersten Aufruf sind alle Bits des Ausgangs ACK_STATE gesetzt, und die Vergangenheitswerte der Eingänge SIG_i, 1< i < 8, werden zu "0" angenommen.