ALARM_D: Stets quittierte PLC-Meldungen erzeugen (S7-300, 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_D: Stets quittierte PLC-Meldungen erzeugen

Beschreibung

Die Anweisung generiert bei jedem Aufruf eine PLC-Meldung, an die Sie einen Begleitwert anhängen können. Darin stimmt Sie mit der Anweisung "ALARM_S" überein.

Bei der Meldungserzeugung mit "ALARM_D" belegt das Betriebssystem für die Dauer eines Signalzyklus eine Systemressource.

Der Signalzyklus dauert bei "ALARM_D" vom Aufruf mit SIG=1 bis zum erneuten Aufruf mit SIG=0. Falls innerhalb des Signalzyklus ein Überladen oder Löschen des meldungserzeugenden Bausteins erfolgt, bleibt die zugehörige Systemressource bis zum nächsten Neustart (Warmstart) belegt.

Die zusätzliche Funktionalität von "ALARM_D" gegenüber "ALARM_S" besteht nun darin, dass Sie diese belegten Systemressourcen verwalten können.

  • Mit Hilfe von READ_SI können Sie Informationen über belegte Systemressourcen auslesen.

  • Mit DEL_SI können Sie belegte Systemressourcen wieder freigeben. Dies ist insbesondere bei dauerhaft belegten Systemressourcen von Bedeutung. Eine aktuell belegte Systemressource bleibt z. B. dann bis zum nächsten Neustart (Warmstart) belegt, wenn Sie bei einer Programmänderung einen FB-Aufruf löschen und dieser "ALARM_D"-Aufrufe enthält. Wenn Sie bei einer Programmänderung einen FB mit "ALARM_D"-Aufrufen erneut laden, kann es vorkommen, dass "ALARM_D" keine PLC-Meldungen mehr erzeugen.

Die Anweisung "ALARM_D" hat einen Parameter mehr als die Anweisung "ALARM_S", nämlich den Eingang CMP_ID. Mit ihm ordnen Sie die durch die Anweisung "ALARM_D" erzeugten PLC-Meldungen logischen Bereichen zu, z. B. Teilanlagen. Falls Sie die "ALARM_D" in einem FB aufrufen, bietet es sich an, "CMP_ID" mit der Nummer des zugehörigen Instanz-DB zu belegen.

Parameter

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

Parameter

Deklaration

Datentyp

Speicherbereich

Beschreibung

SIG

Input

BOOL

E, A, M, D, L

Das meldungsauslösende Signal

ID

Input

WORD

E, A, M, D, L oder Konstante

Datenkanal für Meldungen: W#16#EEEE

EV_ID

Input

C_ALARM_S

E, A, M, D, L

Meldungsnummer (nicht erlaubt: 0)

CMP_ID

Input

DWORD

E, A, M, D, L oder Konstante

component identifier (nicht erlaubt: 0)

Kennung zur Identifikation des Teilsystems, dem die zugehörige Meldung zugeordnet ist

Empfohlene Werte:

  • low word: 1 bis 65535

  • high word: 0

Wenn Sie sich an diese Empfehlung halten, treten keine Konflikte mit von SIEMENS erstellten Programmpaketen auf.

SD

Input

ANY

E, A, M, D, T, Z

Begleitwert

Maximale Länge: 12 Byte

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

RET_VAL

Return

INT

E, A, M, D, L

Fehlerinformation

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

Parameter RET_VAL

Fehlercode

(W#16#...)

Erläuterung

0000

Es ist kein Fehler aufgetreten.

0001

  • Der Begleitwert ist länger als die maximal zulässige Länge, oder

  • Der Zugriff auf den Anwenderspeicher ist nicht möglich (z. B. Zugriff auf gelöschten DB). Die Meldung wird gesendet.

  • Der Begleitwert zeigt auf einen Wert im Lokaldatenbereich. Die Meldung wird gesendet. (nur S7‑400)

0002

Warnung: Der letzte freie Meldequittierspeicher wurde belegt. (nur S7-400)

8081

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

8082

Meldungsverlust, da Ihre CPU keine Ressourcen für die Erzeugung von PLC-Meldungen durch Anweisungen mehr frei hat.

8083

Meldungsverlust, da derselbe Signalwechsel bereits vorliegt, aber noch nicht gesendet werden konnte (Signal-Overflow).

8084

Beim aktuellen und beim vorangegangenen "ALARM_D"- Aufruf hat das meldungsauslösende Signal SIG denselben Wert.

8085

Für die angegebene EV_ID liegt keine Anmeldung vor.

8086

Ein Aufruf für die angegebene EV_ID ist bereits in einer Prioritätsklasse niedrigerer Priorität in Bearbeitung.

8087

Beim ersten Aufruf von "ALARM_D" hatte das meldungsauslösende Signal den Wert "0".

8088

Die angegebene EV_ID wird bereits von einer anderen Systemressource ("ALARM_SQ", "ALARM_S", "ALARM_DQ") belegt.

8089

Sie haben CMP_ID den Wert "0" zugewiesen.

808A

CMP_ID passt nicht zu EV_ID

8xyy

allgemeine Fehlerinformation

Siehe auch: Fehlerauswertung mit dem Ausgangsparameter RET_VAL