NOTIFY: Ein Signalwechsel melden (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
NOTIFY: Ein Signalwechsel melden

Beschreibung

Die Anweisung überwacht ein Signal. Sie generiert sowohl bei steigender Flanke (kommendes Ereignis) als auch bei fallender Flanke (gehendes Ereignis) eine Meldung, an die Sie bis zu zehn Begleitwerte anhängen können. Die Meldung wird an alle dafür angemeldeten Teilnehmer gesendet. Beim Erstaufruf wird eine Meldung mit dem aktuellen Signalzustand gesendet.

Die Begleitwerte werden zum Zeitpunkt der Flankenauswertung erfasst und der Meldung zugeordnet.

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

Die Anweisung "NOTIFY" entspricht der Norm IEC 1131-5.

Parameter

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

Parameter

Deklaration

Datentyp

Speicherbereich

Beschreibung

SIG

Input

BOOL

E, A, M, D, L

Das zu überwachende 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_NOTIFY

E, A, M, D, L

Meldungsnummer (nicht erlaubt: 0)
EV_ID wird nur beim Erstaufruf ausgewertet. Danach gilt bei jedem Aufruf von "NOTIFY" mit dem zugehörigen Instanz-DB die beim Erstaufruf verwendete Meldungsnummer.

Die Meldungsnummer wird automatisch vergeben. Dadurch ist die Konsistenz der Meldungsnummern gewährleistet. Die Meldungsnummer muss innerhalb Ihres Anwenderpro­gramms 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

SD_i,

1≤i ≤10

InOut

ANY

E, A, M, D, T, Z

i-ter Begleitwert

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 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 oder ggf. mit der gerade noch möglichen Anzahl von Begleitwerten 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

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 "NOTIFY" 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 "NOTIFY"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.