Siemens 840dsl Alarme auslesen

Zuviel Werbung?
-> Hier kostenlos registrieren
Muss mal sehen ob ich das noch zusammenbekomme. Die 8 Bits in dem Byte sind für die Alarm_8 Typen, bei Alarm_S hast du immer nur ein Signal pro EventID, d.h. es kommt bei allen immer nur SIG_1.

Vom Prinzip her kannst du über die Masken die Meldungszustände abbilden:
- K (gekommen, unquittiert)
- KG (gekommen, gegangen, unquittiert)
- KQ (gekommen, quittiert)
- KGQ (gekommen, gegangen, quittiert)

"EventState" sagt dir, dass die Meldung aktiv ist.
"Ackstate Going" habe ich bisher immer als true gesehen. Wahrscheinlich ist das nicht realisiert, weil du immer nur das Kommen der Meldung quittierst. Aber es gibt zumindest in der S7 verschiedene Bausteine (Alarm_S, Alarm_SQ, Alarm_D, Alarm_DQ) die sich bezüglich Quittierpflicht unterschiedlich verhalten.

Bei den Alarm-Events gibt es noch ein Feld mehr, aber rein bei der Abfrage der anstehenden Meldungen wäre die Verknüpfung meiner Meinung nach:

K = EventState==1 && AckStateComing==0
KG = EventState==0 && AckStateComing==0
KQ = EventState==1 && AckStateComing==0

Gehende Meldungen (d.h. KGQ) bekommst du mit dem Verfahren ja nicht mit, bzw. wäre es dann gegangen wenn es nicht mehr in der Liste ist.
Normalerweise bekommst du für alles ein Event von der SPS mit Zeitstempel, also kommend, quittiert, gegangen.
 
Zurück
Oben