HMI Automatische Anmeldung

Aus wiki.vistera.de
Version vom 19. August 2025, 09:54 Uhr von Simon (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Einleitung[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

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:[Bearbeiten]

'Angemeldeten Benutzer lesen'

 GetUserName("Benutzer")

Erweiterung:[Bearbeiten]

'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[Bearbeiten]

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[Bearbeiten]

'Überschrift automatisch an aktives Bild anpassen'

 HmiRuntime.SmartTags("Ueberschrift") = HmiRuntime.BaseScreenName

Erweiterung[Bearbeiten]

'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[Bearbeiten]

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!