Beschreibung Der WinCC User Administrator stellt standardmäßig keine Funktion zur Verfügung, mit der ein aktuell angemeldeter Benutzer durch eine Passwortabfrage überprüft werden kann. WinCC verfügt über Funktionen, mit denen ein Anmeldevorgang ausgelöst bzw. durchgeführt werden kann. Das führt jedoch dazu, dass eine neue Anmeldung erfolgt, auch wenn bei der Anmeldung der aktuelle Nutzername wieder verwendet wird. Eine Anmeldung ist in der Regel mit einem Bildwechsel (Aufruf des Startbildes) und dem Schließen aller Bildbausteine verbunden.
Ziel Oft besteht die Anforderung, unmittelbar vor dem Ausführen einer Schalthandlung den aktuell angemeldeten Benutzer durch eine zusätzliche Passwortabfrage zu überprüfen. Es soll keine erneute Anmeldung durchgeführt werden. Nach erfolgreicher Verifizierung des Benutzers soll die Schalthandlung ausgeführt und der Bedieneingriff als Bedienmeldung gespeichert werden. Dadurch kann ein nicht berechtigter Bedieneingriff, z.B. während einer kurzen Abwesenheit des aktuell angemeldeten Benutzers ohne Abmeldung vom System, verhindert werden.
Lösung
Die Option SIMATIC Logon bietet die Möglichkeit, einen Benutzer zur Runtime zu überprüfen. Dieser Beitrag beschreibt die Vorgehensweise ab SIMATIC Logon V1.3. Ab dieser Version steht für SIMATIC Logon das "SIMATIC Logon Development Kit"zur Verfügung. Informationen dazu finden Sie:
- im Handbuch "SIMATIC Logon SIMATIC Electronic Signature" - Beitrags-ID: 34519648.
- im Handbuch "SIMATIC Logon Programming Guide" (dieses Handbuch finden Sie nach der Installation im Verzeichnis: "...\SimaticLogon\developmentkit").
Hinweise Der Beitrag 24458070 beschreibt die Vorgehensweise bis einschließlich SIMATIC Logon V1.2.
Das "SIMATIC Logon Development Kit" bietet mit der Schnittstelle "ISLSScripting" die Möglichkeit, zur Runtime mittels VBScript eine Benutzerüberprüfung auszuführen. Dieser Beitrag stellt ein VBScript (Function "SL_VerifyUser") zur Verfügung, das die Methoden "GetLogon" und "AuthenticateUser" des"SIMATIC Logon Development Kits" verwendet, um einen zur Runtime angemeldeten Benutzer zu überprüfen.
Anleitung Die folgende Tabelle beschreibt die nötigen Einstellungen für die richtige Funktionsweise.
| Nr. |
Vorgehensweise |
| 1 |
Öffnen Sie das "Computer Management" von Windows (Rechtsklick auf "Arbeitsplatz" und klick auf "Verwalten") und klicken Sie auf "System" > "lokale Benutzer und Gruppen". |
| 2 |
Legen Sie in den Ordnern "Benutzer" und "Gruppen" einen neuen Benutzer in einer neuen Gruppe an, wenn noch nicht vorhanden und schließen Sie das "Computer Management". |
| 3 |
Öffnen Sie in WinCC den "User Administrator" und legen Sie die gleiche Gruppe (Name) und den gleichen Benutzer (Name) an, wie diese in Windows angelegt wurden. |
| 4 |
Vergeben Sie die Rechte des Benutzers und aktivieren Sie das Optionskästchen "SIMATIC Logon". |
| 5 |
Öffnen Sie den Global VBS-Editior, legen Sie ein neues Projekt-Modul an und speichern Sie das Skript aus der Datei SL_VerifyUser.txt (in SL_VerifyUser.zip enthalten).
oder
Kopieren Sie die bmo-Datei in den Ordner "" des WinCC-Projektes, übersetzen und speichern Sie das Skript. |
| 6 |
Rufen Sie vor dem gewünschten Bedieneingriff die Funktion "SL_VerifyUser" auf und prüfen Sie den Rückgabewert auf "true" (aktueller Benutzer) bzw. "false" (andere Benutzer bzw. Abbruch des Login-Dialog). Lösen Sie nach der erfolgreichen Benutzer-Prüfung den Bedieneingriff und evtl. die Bedienmeldung aus. Die Prüfung des Benutzers kann mit einem "OnClick"-Ereignis eines Buttons realisiert werden.
If SL_VerifyUser = TRUE Then
'<Bedieneingriff>
'<Bedienmeldung>
Else
'<Fehlermeldung>
End If
Hinweis
- Wird der Benutzer oder das Passwort falsch eingegeben, wird der Login-Dialog erneut geöffnet.
- Im Beitrag mit der Beitrags-ID 24325381 finden Sie detaillierte Informationen zum Erzeugen einer Bedienmeldung.
|
SL_VerifyUser.zip ( 3 KB )
Funktionsweise Die folgende Tabelle beschreibt den Aufbau und die Funktionsweise dieses Scripts.
| Nr. |
Beschreibung |
| 1 |
Deklaration und Initialisierung Im ersten Teil des Scripts werden Kostanten definiert sowie verwendete Variablen deklariert und initialisiert. Um mit WinCC-VBScript zur Runtime auf das SIMATIC Logon Interface zuzugreifen, muss die COM-Schnittstelle mit dem "CreateObject"-Aufruf initialisiert werden. |
| 2 |
Aktuell angemeldeten Benutzer überprüfen
- Mit Hilfe der Methode "GetLogon"werden die Daten des aktuell angemeldeten Benutzers ermittelt.
- Es wird die Methode "AuthenticateUser" verwendet, um den Login-Dialog zu öffnen.

Bild 01
Der Benutzer hat in diesem Dialog die Möglichkeit, interaktiv einen Benutzernamen und ein Passwort einzugeben. Der Login-Dialog wird so initialisiert, dass die Schaltfläche "Kennwort ändern ... " nicht bedienbar ist und das Eingabefeld "Kommentar" nicht angezeigt wird. Das System überprüft die Eingaben des Benutzers. Bei erfolgreicher Identifikation schließt die Methode den Login-Dialog und liefert als Ergebnis die Login-Informationen zurück. Bei nicht erfolgreicher Identifikation (falscher Benutzername oder falsches Passwort) bleibt der Login-Dialog geöffnet. Es wird ein kurzer Fehlertext angezeigt und der Benutzer hat die Möglichkeit, den Benutzernamen und das Passwort erneut einzugeben. Betätigt der Benutzer die Schaltfläche "Abbrechen", wird der Login-Dialog geschlossen. Die Methode liefert in diesem Fall einen Fehlerstatus zurück, der anzeigt, dass der Login-Dialog abgebrochen wurde.
Die Methode "AuthenticateUser" bietet nicht die Möglichkeit, das Feld "Benutzername" beim Öffnen des Login-Dialogs mit dem aktuell angemeldeten Benutzer vorzubelegen. Aus diesem Grund wird die Methode "AuthenticateUser" in einer Schleife erneut aufgerufen, wenn die Benutzerprüfung zwar erfolgreich beendet wird, jedoch der überprüfte Benutzer nicht dem aktuell angemeldeten Benutzer entspricht.
In der Titelzeile des Login-Dialog wird deshalb zusätzlich der Name des aktuell angemeldeten Benutzers angezeigt. Dadurch wird der Benutzer darauf hingewiesen, dass die Benutzerüberprüfung bzgl. des aktuell angemeldeten Benutzers erfolgt.
Hinweis
- Ein mit der Methode "AuthenticateUser" geöffneter Login-Dialog wird nicht automatisch abgebrochen (geschlossen), wenn eine gleichzeitige Abmeldung oder Neuanmeldung am System erfolgt. Der zweite Aufruf der Methode "GetLogon" stellt aus diesem Grund sicher, dass die Benutzerprüfung auch dann korrekt arbeitet, wenn während der Benutzerüberprüfung (Login-Dialog ist geöffnet) eine Abmeldung bzw. erneute Anmeldung am System erfolgt.
- Die "HMIRuntime.Trace"-Anweisungen dienen lediglich zur Ausgabe von Diagnosemeldungen im Global Script-Diagnosefenster bzw. im "Output Window" von APDIAG.
|
| 3 |
Ressourcen freigeben und Funktion beenden In diesem Teil werden verwendete Ressourcen wieder freigegeben und die Funktion beendet. Die Funktion "SL_VerifyUser" liefert bei erfolgreicher Benutzerüberprüfung den Wert TRUE, sonst FALSE zurück. |
Version Die Anleitung wurde mit den folgenden Versionen getestet.
|
Komponente |
Produkt- und Versionsbezeichnung |
| PC-Betriebssystem |
Microsoft Server 2003 SP2 |
| Standard Tools |
--- |
| HMI Software |
WinCC 7.0 |
| Optionen |
SIMATIC Logon 1.4 SP1 |
| Steuerungen |
--- |
Suchbegriffe GMP, Pharma, Life Science, Validierung, FDA 21 CFR Part 11
|