TIA Zugangskontrolle für Maschinen/ Benutzer von Steuerung am HMI anmelden

Austria

Level-1
Beiträge
36
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen!

Ich möchte eine Zutrittskontrolle mit folgenden Komponenten realisieren: S7-1500 Controller / KTP400 HMI / Siemens RF1070R RFID Reader

Folgendendermaßen bin ich vorgegangen:

Schritt 1:
eine RFID Mitarbeiterkarte wird am Reader eingescannt und über einen zusätzlichen Ethernet Konverter wird die Seriennummer an die Steuerung gesendet und in einem Datenblock abgelegt

Schritt 2:
Der S7-1500 Controller wird als OPC Server konfiguriert. Mittels OPC UA Server - Client Kommunikation wird zur gelesenen Seriennummer in einer Datenbank (Excel) eine Person mit zugehöriger Benutzergruppe ermittelt

Schritt 3:
Der OPC Client legt die ermittelte Benutzergruppe (z.B. Bediener) in einer String Variable in einem Datenbaustein auf der Steuerung ab.

Schritt 4:
Auf der User Administration des HMI Gerätes werden verschiedene Benutzergruppen angelegt (identisch wie im Excel Sheet definiert; z.B. Bediener)

Schritt 5:

Folgendes Problem ergibt sich: Nun soll die in der String Variable ermittelte Benutzergruppe, die einer Benutzergruppe in der UserAdministration entspricht am HMI Gerät angemeldet werden

Welche Möglichkeiten gibt es nun eine Benutzergruppe von der Steuerung aus am HMI Gerät anzumelden??

Mögliches Lösungskonzept:
Auf der Steuerung wird eine Variable angelegt, welche die Benutzergruppen mit Zahlenwerten symbolisiert. Beispielsweise ermittelte Benutzergruppe in der String Variable = Bediener -> dies würde Zahlenwert 2 entsprechen; Admin beispielsweise variable mit Zahlenwert = 2.

Nun wird ein VB Script erstellt, das die Benutzergruppe anmeldet und ausgeführt wird sobald LogIn Button auf HMI gedrückt wird (Trigger):

Script enthält Switch Case, der überprüft welcher Zahlenwert vorliegt (Wert = 2 (entspricht Bediener)) und dann die Aktion Benutzergruppe anmelden durchführt.
=> mittels Logon Funktion


Ist dieses Lösungskonzept um eine Benutzergruppe von der Steuerung aus am HMI anzumelden möglich oder gibt es einfachere oder bessere Alternativen?
Ich hoffe ihr könnt mir beim Anmeldevorgung der Benutzergruppen weiterhelfen bzw. habt ein paar Lösungsansätze.

Schöne Grüße!


 
Moin Austria,

so mache ich das auch. Eine einfachere oder bessere Alternative ist mir bis dato nicht bekannt.

VG

MFreiberger
 
Zuviel Werbung?
-> Hier kostenlos registrieren
okay danke für die Antwort MFreiberger! Jedoch scheint mein Script noch nicht zu funktionieren, bzw. wenn ich den LogIn Button betätige erfolgt keine Anmeldung. Was müsste ich noch ändern?

1648823516216.png

1648823577153.png

1648823670115.png


1648823697865.png
 
Jedoch scheint mein Script noch nicht zu funktionieren, bzw. wenn ich den LogIn Button betätige erfolgt keine Anmeldung. Was müsste ich noch ändern?

Anhang anzeigen 60196
Vermutlich wird die Variable "Zugriffslevel" vom HMI nicht aktualisiert, weil sie auf Deinem Bild nicht verwendet wird.

Wenn dem so ist:
Entweder die Erfassungsart von "zyklisch im Betrieb" auf "zyklisch fortlaufend" ändern oder
ein (z.B. ausgeblendetes) EA-Feld mit der Variable auf der obigen Benutzer-Seite anlegen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Habe deinen Vorschlag nun versucht umzusetzen, jedoch scheint die Logon Funktion noch nicht zu funktionieren. Habe der Variable Zugriffslevel zu Testzwecken den Wert = 10 zugewiesen. Laut EA Feld aktueller Benutzer scheint die Switch Case Anweisung im VB Script zu funktionieren, da der Benutzer Admin erscheint (Admin entspricht Zugriffslevel = 10). Klickt man nun den LogIn Button an, wird dich Logon Funktion jedoch nicht ausgeführt, da kein Benutzer im User View erscheint. Leider ist mir nicht klar warum die Logon Funktion des Scripts nicht ausgeführt wird? Muss beispielsweise das Script angepasst werden? Oder liegt das Problem an anderer Stelle?

Wäre sehr dankbar wenn mir jemand weiterhelfen könnte...
Schöne Grüße
 

Anhänge

  • HMI real.jpeg
    HMI real.jpeg
    3,3 MB · Aufrufe: 27
  • VB Script.png
    VB Script.png
    52,8 KB · Aufrufe: 31
  • HMI Screen 2.png
    HMI Screen 2.png
    18,1 KB · Aufrufe: 28
  • HMI Screen.png
    HMI Screen.png
    52 KB · Aufrufe: 19
  • HMI Tags.png
    HMI Tags.png
    84,4 KB · Aufrufe: 20
  • User Administration.png
    User Administration.png
    82,1 KB · Aufrufe: 22
Dein Skript verwendet Skript-lokale Variablen benutzergruppe und passwort für das Logon, denen Du allerdings nie etwas zuweist.
Dim benutzergruppe, passwort deklariert zwei Skript-lokale Variablen
SmartTags("benutzergruppe") und SmartTags("passwort") sind globale HMI-Variablen, die mit den Skript-lokalen Variablen nichts zu tun haben.
Logon benutzergruppe, passwort verwendet die Skript-lokalen Variablen

Harald
 
Danke für die Antwort Harald! Okay das heißt also nur lokale Variablen müssen verwendet werden. Hab das Script mal geändert jedoch funktioniert es immer noch nicht. Stehe da irgendwie auf der Leitung bzw. gibt es auch keine vernünftige Dokumentation dazu. Wie müsste ich in meinen Anwendungsfall nun das Script umschreiben?
1649165832623.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Klickt man nun den LogIn Button an, wird die Logon Funktion jedoch nicht ausgeführt, da kein Benutzer im User View erscheint. Leider ist mir nicht klar warum die Logon Funktion des Scripts nicht ausgeführt wird?
Dir ist nicht klar? Du sagst doch im vorausgehenden Satz "da kein Benutzer im User View erscheint".
Mir ist nicht klar:
Ich kenne die Thematik nicht, aber wie soll das in der Praxis funktionieren?
Es meldet sich eine Person (also ein Individuum einer BenutzerGruppe) mit dem richtigen Passwort an - so weit, so gut.
Aber was passiert, wenn eine BenutzerGruppe versucht, sich anzumelden, ohne einen Bezug auf ein Individuum aus dieser Gruppe?
Gibt es für die BenutzerGruppe ein weiteres Passwort oder gelten die Passwörter jedes einzelnen Mitglieds der BenutzerGruppe?
Wenn es möglich ist, eine BenutzerGruppe anzumelden, wozu dann noch die Möglichkeit ein Individuum der Gruppe anzumelden?
Wer legt das Passwort für die Gruppe fest?

Mein Verständnis wäre:
Ein Individuum meldet sich erfolgreich an und das war's auch schon, was die Anmeldung betrifft.
Einmal angemeldet wird das Individuum anhand einer Liste einer Gruppe zugeordnet, es muss aber nicht die Gruppe als solche noch zusätzlich angemeldet werden.
Wo klemmt es mit meinem Verständnis?
 
Tut mir Leid, war in diesem Fall nicht klar und deutlich formuliert. Allgemein ist es ja nicht möglich direkt Benutzergruppen am HMI anzumelden, nur einzelne Benutzer. Deshalb wird für jede Benutzergruppe ein "Dummy" Benutzer angelegt, der den identischen Namen wie die Benutzergruppe hat. Sollte also im Script nicht Benutzergruppe, sondern Benutzer heißen. Lange Rede kurzer Sinn: => dann möchte ich eben einen Benutzer mit meinem Script anmelden, was jedoch noch nicht funktioniert...
 
Okay das heißt also nur lokale Variablen müssen verwendet werden.
Ja
Hab das Script mal geändert jedoch funktioniert es immer noch nicht.
Aha, jetzt weiß ich voll Bescheid und verstehe, was nicht funktioniert ;) Und habe direkt den Grund gefunden...
Stehe da irgendwie auf der Leitung bzw. gibt es auch keine vernünftige Dokumentation dazu.
... denn in der "unvernünftigen" TIA Dokumentation ist die Beschreibung der Systemfunktion "Logon" einfach zu finden, wenn man im Suchfeld "logon" eintippt. Da wird z.B. erklärt:
Logon
(...)
Verwendung in benutzerdefinierten Funktionen
Logon Password, User_name
Nun ändere mal in Deinem Skript die 3 Zeilen mit dem Logon zu: Logon passwort, benutzergruppe
Das Skript sollte dann so aussehen und funktionieren:
Code:
Sub User_login_logoff()

Dim  benutzergruppe, passwort

Select Case SmartTags("Zugriffslevel")
    Case 10
        benutzergruppe = "Admin"
        passwort = "123"
        Logon passwort, benutzergruppe

    Case 20
        benutzergruppe = "Servicetechniker"
        passwort = "123"
        Logon passwort, benutzergruppe

    Case 30
        benutzergruppe = "Bediener"
        passwort = "123"
        Logon passwort, benutzergruppe

    Case Else
        'keinen Benutzer gefunden
End Select

End Sub

Harald
 
Hey,
ich habe ein ähnliches Projekt. (s. http://SPS-Forum Beitrag).
Vorgehen ist sehr ähnlich, nur dass ich die DB lokal auf dem HMI zwischenspeichere und die Abfrage durch ein Skript im HMI durchführe.
Ich habe das ganze bisher an einer Anlage umgesetzt und den Reader mit einem Kommunikationsmodul an die SPS gehängt.
Wegen der aktuellen Lieferzeiten ist es ist die Umsetzung so ... langwierig.

Ich habe dieses Siemens Beispiel gefunden bzgl. der Verbindung mit USB, aber leider keine Beschreibung wie ich den so ausgelesenen Code innerhalb der Runtime einbinde.
Ist das so direkt überhaupt möglich?
Hat hier jemand Erfahrung oder ein Codebeispiel oder so?
LG Stogi
 
Zurück
Oben