Hallo Bastler,
hier mal eine kleine hilfe für Störmeldeanzeige, dazu fangen wir mal aus
der Step 7 sicht an. Ich habe immer 2 arten von Meldungen, die da wären
Störmeldungen und Betriebsmeldungen. Der unterschied ist Störmeldungen
sollen quittiert werden wie z.b. Störung Luft, das hat den zweck wenn
der Druckschalter spitz eingestellt ist, wird die Störung solange angezeigt
bis sie quittiert ist, der Bediener bekommt diese meldung mit.
Störmeldungen sind bei mir immer Rot und haben jeweils ein quittierbit.
Dann habe ich noch Betriebsmeldungen diese meldungen müssen nicht
quittiert werden sie zeigen nur einen zustand an, wie z.b. die Endlage
einer Achse da soll den Bediener nur mitgeteilt werden warum es nicht
weiter geht. Betriebsmeldungen haben die Farbe Gelb.
Grundsätzlich sollte mann sich vorher Gedanken machen wieviel Meldungen
überhaubt möglich sind, ist das geklärt lege ich eine Datenbaustein an.
Übrigens das alles immer mit Symbolkommentar das hilft später.
Hier der Datenbaustein mit jeweils 128 Störmeldungen, Quittierbits und
Betriebsmeldungen. Die Störmeldungen bekommen den Nr.-Schlüssel
1000 und die Betriebsmeldungen bekommen den Nr.-Schlüssel 2000.
Code:
DATA_BLOCK "002-DB"
TITLE =Betriebs- und Störmeldungen
VERSION : 0.1
STRUCT
Stoermeldungen : STRUCT
_1008 : BOOL ; //001 - Störung Not-Aus
_1009 : BOOL ; //001 - Störung Luft
_1010 : BOOL ;
_1011 : BOOL ;
_1012 : BOOL ;
_1013 : BOOL ;
_1014 : BOOL ;
_1015 : BOOL ;
_1000 : BOOL ;
_1001 : BOOL ;
_1002 : BOOL ;
_1003 : BOOL ;
_1004 : BOOL ;
_1005 : BOOL ;
_1006 : BOOL ;
_1007 : BOOL ;
_1024 : BOOL ;
_1025 : BOOL ;
_1026 : BOOL ;
_1027 : BOOL ;
_1028 : BOOL ;
..
..
_1122 : BOOL ;
_1123 : BOOL ;
_1124 : BOOL ;
_1125 : BOOL ;
_1126 : BOOL ;
_1127 : BOOL ;
_1112 : BOOL ;
_1113 : BOOL ;
_1114 : BOOL ;
_1115 : BOOL ;
_1116 : BOOL ;
_1117 : BOOL ;
_1118 : BOOL ;
_1119 : BOOL ;
END_STRUCT ;
Quit_OP : STRUCT
_1008 : BOOL ;
_1009 : BOOL ;
_1010 : BOOL ;
_1011 : BOOL ;
..
..
_1117 : BOOL ;
_1118 : BOOL ;
_1119 : BOOL ;
END_STRUCT ;
Meldungen : STRUCT
_2008 : BOOL ; //001 - Endlage plus
_2009 : BOOL ; //001 - Endlage minus
_2010 : BOOL ;
_2011 : BOOL ;
..
..
_2115 : BOOL ;
_2116 : BOOL ;
_2117 : BOOL ;
_2118 : BOOL ;
_2119 : BOOL ;
END_STRUCT ;
END_STRUCT ;
END_DATA_BLOCK
Um die Störmeldungen verwalten zu können wird jetzt einen
einfacher FC erstellt.
Code:
FUNCTION "Stoermeldung" : VOID
TITLE =
VERSION : 0.1
VAR_INPUT
IN_Stoerung : BOOL ; //Eingangssignal Störmeldung
END_VAR
VAR_IN_OUT
IN_OUT_SM : BOOL ; //Störmeldung
IN_OUT_Quit_SM : BOOL ; //Quittierbit Störmeldung
END_VAR
BEGIN
NETWORK
TITLE =Auswertung
//Quittierung
U #IN_OUT_Quit_SM;
R #IN_OUT_SM;
//Melden
U #IN_Stoerung;
S #IN_OUT_SM;
//Quittier Bit löschen
UN #IN_OUT_SM;
R #IN_OUT_Quit_SM;
END_FUNCTION
Dann kann man in einen FB die Störmeldungen verwalten, da kommt jetzt
die eindeutige Nummernvergabe der Störmeldungen zu hilfe.
Code:
FUNCTION_BLOCK "002"
TITLE =Stör.- und Betriebsmeldungen
VERSION : 0.1
BEGIN
NETWORK
TITLE =001 - Störung Not-Aus
CALL "Stoermeldung" (
IN_Stoerung := "001-Not_Aus",
IN_OUT_SM := "002-DB".Stoermeldungen._1008,
IN_OUT_Quit_SM := "002-DB".Quit_OP._1008);
NETWORK
TITLE =001 - Störung Luft
CALL "Stoermeldung" (
IN_Stoerung := "001-Luft",
IN_OUT_SM := "002-DB".Stoermeldungen._1009,
IN_OUT_Quit_SM := "002-DB".Quit_OP._1009);
NETWORK
TITLE =001 - Endlage plus
U "001-plus";
= "002-DB".Meldungen._2008;
NETWORK
TITLE =001 - Endlage minus
U "001-minus";
= "002-DB".Meldungen._2009;
END_FUNCTION_BLOCK