Anweisungen zur Erzeugung von PLC-Meldungen
Sie können mit folgenden Anweisungen eine PLC-Meldung erzeugen:
Diese Anweisungen haben folgende Eigenschaften:
-
Die gesendeten PLC-Meldungen von "ALARM_SQ" und "ALARM_DQ" mit Signalzustand "1" sind von einem angemeldeten Anzeigegerät aus quittierbar. Die PLC-Meldungen von "ALARM_S" und "ALARM_D" sind immer implizit quittiert.
-
Nicht ein erkannter Flankenwechsel, sondern jeder Aufruf erzeugt eine PLC-Meldung.
-
Nach dem Bausteindurchlauf ist der Begleitwert SD vollständig erfasst und der PLC-Meldung zugeordnet.
Bezüglich der Konsistenz gegenüber höherprioren Prioritätsklassen gilt für den Begleitwert: Konsistent sind-
die einfachen Datentypen (Bit, Byte, Wort und Doppelwort)
-
ein Array des Datentyps Byte bis zu einer CPU-spezifischen Maximallänge
-
ALARM_SC
Mit Hilfe der Anweisung "ALARM_SC" können Sie
-
den Quittierzustand der letzten "Gekommen-Meldung" und den Signalzustand beim letzten Aufruf von "ALARM_SQ" / "ALARM_DQ" bzw.
-
den Signalzustand beim letzten Aufruf von "ALARM_S" / "ALARM_D" ermitteln.
Anmeldung von Anzeigegeräten
Eine Voraussetzung dafür, dass die Anweisungen zur Erzeugung von PLC-Meldungen beim Aufruf eine PLC-Meldung senden, ist, dass sich mindestens ein Anzeigegerät für PLC-Meldungen angemeldet hat.
Meldungspufferung
Damit auch bei einer hohen Belastung des Kommunikationssystems möglichst keine PLC-Meldungen verloren gehen, können die Anweisungen "ALARM_SQ", "ALARM_S", "ALARM_DQ" und "ALARM_D" jeweils zwei Meldungen zwischenspeichern.
Falls dennoch PLC-Meldungen verloren gehen, wird Ihnen dies über RET_VAL mitgeteilt. Mit der nächsten PLC-Meldung, die gesendet werden kann, erhalten die angemeldeten Anzeigegeräte darüber eine Mitteilung.
Meldungsquittierung bei "ALARM_SQ" und "ALARM_DQ"
Wenn Sie an einem Anzeigegerät eine "Gekommen-Meldung" quittiert haben, wird diese Quittierinformation zunächst an die meldungsverursachende CPU geschickt. Von dort wird die Quittierinformation an alle dafür angemeldeten Teilnehmer verteilt.
Meldungen sperren und freigeben
PLC-Meldungen, die Sie mit "ALARM_SQ" oder "ALARM_S" oder "ALARM_DQ" oder "ALARM_D" erzeugt haben, können Sie nicht sperren und anschließend wieder freigeben.
Änderungen Ihres Programms, das "ALARM_SQ" / "ALARM_S"-Aufrufe enthält
|
Hinweis Beim Laden eines bereits in der CPU vorhandenen Bausteins mit "ALARM_SQ" / "ALARM_S" -Aufrufen ist es möglich, dass der bisherige Baustein eine kommende PLC-Meldung abgesetzt hat, der neue Baustein aber keine zugehörige gehende PLC-Meldung absetzt. Dadurch bleibt diese Meldung im internen Meldungsspeicher der CPU stehen. Dieser Zustand kann auch auftreten, wenn Sie Bausteine mit "ALARM_SQ" / "ALARM_S" -Aufrufen löschen. Sie können solche PLC-Meldungen aus dem internen Meldungsspeicher der CPU entfernen, indem Sie die CPU in den Betriebszustand STOP überführen und anschließend einen Neustart (Warmstart) oder Kaltstart durchführen. |
Änderungen Ihres Programms, das "ALARM_DQ" / "ALARM_D"-Aufrufe enthält
Auch wenn Ihr Programm "ALARM_DQ"- und/oder "ALARM_D"-Aufrufe enthält, können mit den oben beschriebenen Programmänderungen PLC-Meldungen im internen Meldespeicher stehen bleiben und dadurch Systemressourcen dauerhaft belegen.
Im Gegensatz zu Systemressourcen, die durch "ALARM_SQ" / "ALARM_S"-Aufrufe belegt wurden, können Systemressourcen, die durch "ALARM_DQ" / "ALARM_D"-Aufrufe belegt werden, von Ihnen wieder freigegeben werden, ohne dass Sie Ihre CPU in den Betriebszustand STOP überführen. Dies geschieht durch Einsatz der Anweisung "DEL_SI". Bevor Sie durch Aufruf von "DEL_SI" dynamisch belegte Systemressourcen freigeben, kann es sinnvoll sein, mit Hilfe der Anweisung "READ_SI" Informationen über die momentan dynamisch belegten Systemressourcen Ihrer CPU auszulesen (siehe Anweisung "READ_SI").
Anzahl übertragbarer Daten
Die Anzahl der über den Begleitwert SD der Anweisungen "ALARM_S", "ALARM_SQ", "ALARM_D" und "ALARM_DQ" übertragbaren Daten darf eine maximale Länge nicht überschreiten. Diese maximale Datenlänge berechnet sich wie folgt:
maxleng = min (pdu_lokal, pdu_remote) - 48
Dabei ist:
-
pdu_lokal die maximale Länge der Datenblöcke der eigenen CPU (SZL_ID W#16#0131, INDEX 1, Variable pdu)
-
pdu_remote die maximale Länge der Datenblöcke der Anzeigegeräte
Beispiel
Eine CPU 414-2 sende Meldungen an ein PG 760 (über MPI).
pdu_lokal = 480 Byte, pdu_remote = 480 Byte,
Damit gilt:
maxleng = min (480, 480) - 48 = 480 - 48 = 432
Die maximal übertragbare Datenlänge beträgt pro Anweisung also 432 Byte.