Einführung in die Erzeugung von PLC-Meldungen mit Anweisungen (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
Einführung in die Erzeugung von PLC-Meldungen mit Anweisungen

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.