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:
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 |
|
|
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 |
Siehe auch