WinCC Unified Nutzerrollen HMI Meldungen

Monstablokaz

Level-2
Beiträge
33
Reaktionspunkte
6
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

kann man verschiedenen Meldeklassen, verschiedene Nutzerrollen für die Quittierung zuweisen? Also zum Beispiel Nothalt darf nur jemand mit der Rolle Techniker quittieren, aber ein Timeout darf der Operator quittieren. Gibt es da was?

-> WinCC Unified V20

Beste Grüße
 
Mit Onboard-Mitteln geht das, soweit ich weiß, nicht.
Du könntest dir aber per Script was passendes stricken.
Erst per HMIRuntime.UserManagement.GetRolesFromUser() die Rollen des aktuellen Benutzers holen.
Dann per HMIRuntime.Alarming.GetActiveAlarms() ein Array mit den aktuellen Alarmen holen & über die Alarmobjekte im Array die Meldeklasse abfragen & entsprechend der aktuellen Rollen quittieren (oder auch nicht).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also sprich auf den "Quittierknopf" in der Meldeanzeige ein Script legen. Rolle und Alarme abfragen und schauen in welcher Meldeklasse der aktuelle Alarm ist und dann über einen CASE an Hand der Rolle entscheiden ob Berechtigung true oder false.
 
Im Prinzip ja, wobei ich solche größeren Scripts gerne als eigenes Modul anlege.
Vereinfacht die Wiederverwendbarkeit ¯\_(ツ)_/¯

Kleine Korrektur/Ergänzung:
Ich hab eben gesehen, dass GetActiveAlarms() ein Array mit Objekten vom Typ AlarmResult zur Verfügung stellt.
Damit bekommst du alle Informationen über den Alarm, kannst aber nicht direkt mit diesem interagieren.
Deswegen musst du, wenn du diesen quittieren willst, dir noch das "richtige" Alarm-Objekt per HMIRuntime.Alarming.Alarms() holen und dann über dessen Acknowledge()-Methode quittieren.

Also:
- Rollen auslesen per GetRolesFromUser()
- Anstehende Alarme auslesen per GetActiveAlarms()
- Das AlarmResult-Array per Schleife durcharbeiten
- Per Swich/Case entscheiden ob der Alarm mit den aktuellen Rollen quittierbar ist.
- Wenn ja: Alarm-Objekt erzeugen & dieses per .Acknowledge() quittieren.
 
Zurück
Oben