Beispiel: Alarmtyp Bitblock
Dieses Beispiel veranschaulicht die Verwendung des Bitblock-Alarmtyps.
Beispielszenario
Eine Anlage beinhaltet drei baugleiche Sensoren. Jedem Sensor ist im SPS-Programm ein Datenwort zugeordnet, in dem die verschiedenen Fehlerzustände bitweise codiert werden. Von der Visualisierung wird das Datenwort als Datentyp VT_UI2 gelesen. Jedes gesetzte Bit soll einen Alarm auslösen können. Da die drei Sensoren baugleich sind, können die Projektierungsschritte über einen Bitblockalarmtyp vereinfacht werden.
-
So gehen Sie vor:
-
Erstellen Sie eine neue Bitblock-Alarmtypdefinition:
-
Markieren Sie im Projektexplorer den Knoten Alarme > Alarmtypen > Bitblock.
-
Um eine neue Alarmtypdefinition zu erstellen, klicken Sie mit der rechten Maustaste und wählen Sie Neu aus dem Kontextmenü oder klicken Sie einmal auf den Tabelleneditor und drücken Sie F8.
-
Legen Sie im Fenster Eigenschaftenseiten den Namen für die neue Definition fest, z. B. Sensor.
-
-
Legen Sie in der Bitblock-Alarmtypdefinition vier neue Zuordnungen an:
-
Markieren Sie im Projektexplorer den Knoten der soeben erstellten Bitblock-Alarmtypdefinition.
-
Klicken Sie auf den Tabelleneditor und drücken Sie viermal hintereinander F8, um neue Zuordnungen anzulegen.
-
Legen Sie auf den Eigenschaftenseiten oder direkt im Tabelleneditor für jede Zuordnung den Namen, die auslösende Bitnummer, den Text und die Alarmklasse fest. Im Parameter Text geben Sie die Fehlerursache an.
Verwenden Sie z. B. folgende Werte:
Name
Bitnummer
Text
Alarmklasse
SensorFailure
0
No valid sensor input
Alarm
SensorCalibration
1
Recalibration interval
Alarm
VibrationLevel1
4
Vibration level 1 reached
Message
VibrationLevel2 5 Vibration level 2 reached Alarm
-
-
Legen Sie für jeden der drei Sensoren eine Alarmdefinition an:
-
Legen Sie für die Alarme zunächst eine neue Alarmgruppe an, da Alarme immer einer Alarmgruppe angehören müssen. Legen Sie im Parameter Name auf den Eigenschaftenseiten den Namen für die neue Alarmgruppe fest, z. B. Sensors.
-
Legen Sie in der neuen Alarmgruppe für jeden der drei Sensoren jeweils eine Alarmdefinition an. Legen Sie den Namen und die Ereignisvariable für jede Alarmdefinition fest:
Name
Ereignisvariable
Sensor1
Ch1.Sensors.1.Error
Sensor2
Ch1.Sensors.2.Error
Sensor3
Ch1.Sensors.3.Error
-
Geben Sie im Parameter Text der Alarmdefinition die jeweilige Alarmquelle (d. h. den Sensornamen) an. Die Fehlerursache haben Sie im Parameter Text in den Zuordnungen bereits angegeben (Schritt 2.c). Binden Sie nun den Text der Zuordnung (Fehlerursache) in den Text der Alarmdefinition (Fehlerquelle) mit Hilfe der Formatierungsanweisung @J@:
Name
Text
Sensor1
Sensor 1: @J@
Sensor2
Sensor 2: @J@
Sensor3
Sensor 3: @J@
Tippen Sie die Formatierungsanweisung @J@ direkt in den Parameter Text ein oder klicken Sie auf die Schaltfläche …, um den Dialog Lokalisierbaren Text bearbeiten zu öffnen und die Formatierungsanweisung einzufügen.
Stellen Sie sicher, dass im Parameter Textmodus der Bitblock-Alarmtypdefinition die Option Text aus der Alarmdefinition verwenden ausgewählt ist (Standardeinstellung).
Zur Laufzeit wird die Formatierungsanweisung durch den Text der jeweiligen Zuordnung ersetzt. Damit werden Fehlerquelle und Fehlerursache in einem Alarmtext kombiniert. Wird zur Laufzeit von Sensor 1 z. B. das Bit 4 gesetzt, dann erscheint in der Alarmliste oder Alarmzeile der Text Sensor 1: Vibration level 1 reached.
-
- Verknüpfen Sie alle drei Alarme mit dem Bitblock-Alarmtyp:
Öffnen Sie die Auswahlliste im Parameter Typ der Alarmdefinition und wählen Sie Bitblock aus.
Öffnen Sie unter Bitblock-Typen den in Schritt 1 angelegten Bitblock-Alarmtyp aus.
Die Alarmtypdefinition beinhaltet nun 4 Zuordnungen, die die verschiedenen Bits mit Alarminformationen verknüpften. Für jeden der 3 Sensoren ist jeweils ein Alarm definiert worden, der diesen Alarmtyp verwendet. Zur Laufzeit kann es also insgesamt 12 Alarme geben.
|
Ereignisvariable |
Bitnummer |
Alarmtext zur Laufzeit |
|---|---|---|
|
Ch1.Sensors.1.Error |
0 |
Sensor 1: No valid sensor input |
|
Ch1.Sensors.1.Error |
1 |
Sensor 1: Recalibration interval |
|
Ch1.Sensors.1.Error |
4 |
Sensor 1: Vibration level 1 reached |
|
Ch1.Sensors.1.Error |
5 |
Sensor 1: Vibration level 2 reached |
|
Ch1.Sensors.2.Error |
0 |
Sensor 2: No valid sensor input |
|
Ch1.Sensors.2.Error |
1 |
Sensor 2: Recalibration interval |
|
Ch1.Sensors.2.Error |
4 |
Sensor 2: Vibration level 1 reached |
|
Ch1.Sensors.2.Error |
5 |
Sensor 2: Vibration level 2 reached |
|
Ch1.Sensors.3.Error |
0 |
Sensor 3: No valid sensor input |
| Ch1.Sensors.3.Error | 1 | Sensor 3: Recalibration interval |
| Ch1.Sensors.3.Error | 4 | Sensor 3: Vibration level 1 reached |
| Ch1.Sensors.3.Error | 5 | Sensor 3: Vibration level 2 reached |