Flux
Level-1
- Beiträge
- 314
- Reaktionspunkte
- 11
-> Hier kostenlos registrieren
Hallo Forum,
derzeit suche ich nach der elegantesten Lösung für folgendes Problem:
Wenn bestimmte Fehler (logisch verknüpft) auftreten, soll eine entsprechende Meldung (z.B. DB1.DBX 0.0) in einem DB1 gesetzt werden, um dann von WinCC/WinCCflexible visualisiert und archiviert zu werden.
Mit einem Sammelquittier-Taster sollen alle Meldungen quittiert werden können, jedoch nur, wenn die Fehler behoben wurden.
erster Versuch:
Funktioniert die aktuelle Variante vor jedes R den FP-Befehl mit dem selben FM (M 0.0) zu schreiben?
Oder müsste ich vor der Meldungsbehandlung einen Impulsmerker bestimmen ?
Oder wäre es auch möglich bei Tasterflanke ALLE Meldungen (4 Doppelwörter) mit 0 zu beschreiben, aber sofort wieder mit 1, falls der entsprechende Fehler weiterhin besteht (setzdominant (wie oben in den Beispielen)).
Problem: L und T werden VKE-unabhängig ausgeführt. Wie mach ich das am besten?
MfG
Flux
derzeit suche ich nach der elegantesten Lösung für folgendes Problem:
Wenn bestimmte Fehler (logisch verknüpft) auftreten, soll eine entsprechende Meldung (z.B. DB1.DBX 0.0) in einem DB1 gesetzt werden, um dann von WinCC/WinCCflexible visualisiert und archiviert zu werden.
Mit einem Sammelquittier-Taster sollen alle Meldungen quittiert werden können, jedoch nur, wenn die Fehler behoben wurden.
erster Versuch:
Code:
//Meldung1
U #Sammelquitt
FP M 0.0
R DB1.DBX 0.0
U #Fehler1
S DB1.DBX 0.0
//Meldung2
U #Sammelquitt
FP M 0.0
R DB1.DBX 0.1
U #Fehler2
S DB1.DBX 0.1
//Meldung3
... bis Meldung128
Funktioniert die aktuelle Variante vor jedes R den FP-Befehl mit dem selben FM (M 0.0) zu schreiben?
Oder müsste ich vor der Meldungsbehandlung einen Impulsmerker bestimmen ?
Code:
//Flankenauswertung des Sammelquittier-Tasters
U #Sammelquitt
FP M 0.0 //Flankenmerker
= M 0.1 //Impulsmerker
//Meldung1
U M 0.1
R DB1.DBX 0.0
U #Fehler1
S DB1.DBX 0.0
//Meldung2
U M 0.1
R ...
...
Oder wäre es auch möglich bei Tasterflanke ALLE Meldungen (4 Doppelwörter) mit 0 zu beschreiben, aber sofort wieder mit 1, falls der entsprechende Fehler weiterhin besteht (setzdominant (wie oben in den Beispielen)).
Code:
//Wenn Flanke..
U #Sammelquitt
FP M 0.0
//..dann DB1 abnullen
L 0
T DB1.DBD 0
T DB1.DBD 4
T DB1.DBD 8
T DB1.DBD 12
Problem: L und T werden VKE-unabhängig ausgeführt. Wie mach ich das am besten?
MfG
Flux