HMI Automatische Anmeldung: Unterschied zwischen den Versionen
Simon (Diskussion | Beiträge) Die Seite wurde neu angelegt: „== Einleitung == Bei einer aktiven Benutzerverwaltung in WinCC Comfort/Advanced ist es manchmal vom Kunden gewünscht, dass automatisch ein Standardbenutzer angemeldet wird, wenn kein Benutzer angemeldet ist. Dafür gibt es aber leider keine in TIA integrierte Funktion um das so einfach umzusetzen. Aber der richtige Umgang mit Skripten macht es möglich. == Umsetzung == Wie schon bekannt, gibt es zwei Skripte, die wir Standardmäßig bei unseren Visualisi…“ |
(kein Unterschied)
|
Version vom 19. August 2025, 09:47 Uhr
Einleitung
Bei einer aktiven Benutzerverwaltung in WinCC Comfort/Advanced ist es manchmal vom Kunden gewünscht, dass automatisch ein Standardbenutzer angemeldet wird, wenn kein Benutzer angemeldet ist. Dafür gibt es aber leider keine in TIA integrierte Funktion um das so einfach umzusetzen. Aber der richtige Umgang mit Skripten macht es möglich.
Umsetzung
Wie schon bekannt, gibt es zwei Skripte, die wir Standardmäßig bei unseren Visualisierungen verwenden: "TitleUpdater" zum aktualisieren der Bildüberschrift und "UserUpdater" zum Anzeigen des angemeldeten Benutzers. Der TitleUpdater wird bei jedem Bild unter "Aufgebaut" verknüpft und der UserUpdater wird über die Aufgabenplanung mit dem Trigger "Benutzerwechsel" ausgeführt.
Um jetzt die automatische Benutzeranmeldung zu implementieren, müssen diese beiden Skripte einfach nur minimal erweitert werden.
Vorbereitung
Folgende interne Variablen müssen beim HMI angelegt sein:
- Ueberschrift [Typ WString] (enthält Bildüberschrift des aktiven Bildes)
- Benutzer [Typ WString] (enthält Benutzernamen des angemeldeten Benutzers)
- UserIsLoggedIn [Typ Bool] (prüft den Anmeldezustand)
Erweiterung UserUpdater
Diese Erweiterung wird benötigt, damit beim manuellen Abmelden oder beim Abmelden durch Inaktivität automatisch der Standardbenutzer angemeldet wird.
Für das folgende Beispiel wird der Benutzer "beobachten" mit dem Passwort "123" verwendet.
Standardmäßig vorhanden:
'Angemeldeten Benutzer lesen'
GetUserName("Benutzer")
Erweiterung:
'Prüfen, ob ein Benutzer angemeldet ist'
If SmartTags("Benutzer") = "" Then
SmartTags("UserIsLoggedIn") = False
Else
SmartTags("UserIsLoggedIn") = True
End If
'Automatische Anmeldung'
If Not SmartTags("UserIsLoggedIn") Then
Dim user, pass
pass = "123"
user = "beobachten"
Logon pass, user
End If
Erweiterung TitleUpdater
Diese Erweiterung wird benötigt, damit nach einem Neustart der Runtime direkt der Standardbenutzer angemeldet wird. Bei einem Runtime-Start wird der Trigger Benutzerwechsel nämlich nicht ausgeführt!
Es wird vorausgesetzt, dass das Skript TitleUpdater am Startbild mit dem Ereignis "Aufgebaut" verknüpft ist. Somit wird dieses Skript beim Start direkt als erstes ausgeführt.
Für das folgende Beispiel wird der Benutzer "beobachten" mit dem Passwort "123" verwendet.
Standardmäßig vorhanden
'Überschrift automatisch an aktives Bild anpassen'
HmiRuntime.SmartTags("Ueberschrift") = HmiRuntime.BaseScreenName
Erweiterung
'Standardbenutzer bei Startbildaufruf anmelden, wenn kein Benutzer aktiv'
If Not SmartTags("UserIsLoggedIn") Then
Dim user, pass
pass = "123"
user = "beobachten"
Logon pass, user
End If
HINWEIS
Das Verknüpfen von ZWEI Skripten an EIN Ereignis kann bei HMI-Geräten zu starken Performence-Problemen oder zum kontinuierlichen Einfrieren der Runtime führen!
Ein Erstellen eines separaten Skriptes für die automatische Anmeldung mit Verknüpfung an dieselben Ereignisse wie z.B. die Skripte TitleUpdater und UserUpdater, ist daher nicht empfehlenswert!