#Alarm |
Top Previous Next |
Das #Alarm-Objekt ist ein Alarmarchiv und überwacht die in der Alarmdefinitionen definierten Alarme. Das Objekt Alarm ist ein globales Objekt.
Parameter Object
Text/File
Action
VarValue
VarType
Option
Der Alarmbuffer ist wortorientiert aufgebaut und die Startadresse wird beim Alarmobjekt definiert. Jedes Bit ab dem Datenwort 4 stellt einen Alarm dar. Die max. Anzahl Alarme ist abhängig von der max. Arraygrösse die auf der Steuerung definiert werden kann. Die letzten 512 Alarme werden in einem Ringbuffer gespeichert (Alarmhistory). Die Alarmhistory und die aktuelle Einstellung (Sortierung, Filter) wird in der Datei <alarm>.ini netzausfallsicher gespeichert.
Handshake EPAM / Steuerung: Die Statusbits im Alarmbuffer werden jeweils von einer Seite gesetzt und müssen dann von der anderen Seite rückgesetzt werden, nachdem diese erkannt wurden. z.B. EPAM setzt [0].1 (Alarme im EPAM quittiert), daraufhin wird dieses Bit von der Steuerung wieder auf 0 gesetzt, sobald der Wert dort verarbeitet wurde.
Definition des Alarmbuffer in der Steuerung
CoDeSys:
Globale Variable: z.B. VAR_GLOBAL Alarm : ARRAY[0..20]OF WORD END_VAR
Die Alarme können dann über Alarm[x].x adressiert werden.
Step7:
In der Step7 empfiehlt es sich ein Array einer Bitstruktur anzulegen. Damit kann man die Alarme transparent wie in EPAM ansprechen. Z.B. Alarm[x].Bit[x]
Alarm ARRAY[0..x] STRUCT Bit ARRAY [0..15] BOOL END_STRUCT
Wenn die S7-Alarm-Variablen in der Form als Array einer Bitstruktur angelegt werden, dann muss in der UserVar die Option "Raw" definiert werden, da sonst der Kommunikationstreiber ein High/Low-Byte-Swapping durchführt.
Siehe auch |