Flexible: Kennwort aus DB nehmen

MSP

Level-1
Beiträge
210
Reaktionspunkte
21
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich stehe gerade vor einem kleinen Problem mit Flexible 2008.

In einem Projekt habe ich bisher die interne Benutzerverwaltung verwendet von Flexible, die funktioniert auch wie gehabt.
Nun soll die Anlage aber so aufgebaut werden, dass das Passwort von einer übergeordneten Steuerung kommt (also in meinen DB geschrieben wird, DINT oder INT) und eben NICHT aus der Benutzerverwaltung des Panels.

Nur wie stelle ich das genau an? Bisher sind wie gesagt alle Rechte über die Benutzerverwaltung von Flexible gelaufen, sprich das Passwort könnte ich maximal auslesen und in die SPS schreiben, aber nicht von dort holen und im Panel verwenden.

Muss ich mir hier pro Bedienelement (es sind fast nur Buttons wo die Rechts abgefragt werden) nun etwas 'basteln' um mein Ziel zu erreichen? Ich hoffe nicht, sehe aber im Moment keine andere Möglichkeit, oder?

Gruss,
Michael
 
Hallo MSP,

Es gibt die Systemfunktion "Logon Password,User_name".
Die kann auch in Skripten verwendet werden.

Password und User_name können aus einem DB der SPS stammen,
müssen aber mit einem in der Benutzerverwaltung des Panels
angelegten Benutzer übereinstimmen.

Gruß
PN/DP
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo PN/DP,

hmm das schaut auf den ersten Blick nach einer Möglichkeit aus, allerdings genau falsch herum, da ich ja quasi den Master-User und das Master-Passwort am Leitstand haben werde, nutze ich die Systemfunktion dann muss ich trotzdem immer noch den Benutzer am Panel pflegen.

Besser ist es doch dann, das Passwort vom Leitstand im DB in der SPS zu vergleichen mit der Eingabe am Panel und mir dann zB ein Hilfsbit zu setzen.
Nur muss ich dann um das ganze am Panel auch sauber zu haben auch das ganze 'drumherum' 'nachbauen'.

Denksportaufgaben vor dem Wochenende :rolleyes:

Gruss,
Michael
 
Besser ist es doch dann, das Passwort vom Leitstand im DB in der SPS zu vergleichen mit der Eingabe am Panel und mir dann zB ein Hilfsbit zu setzen.
Nur muss ich dann um das ganze am Panel auch sauber zu haben auch das ganze 'drumherum' 'nachbauen'.

Denksportaufgaben vor dem Wochenende :rolleyes:

Gruss,
Michael
Hallo Michael,
ja, um ein basteln wirst Du da leider nicht drum rum kommen.
Lege doch einfach eine "Unsichtbare Schaltfläche" auf die Buttons. Mit Betätigung ein eigenes Login Fenster öffnen und die dort eingegebene Zahl in der SPS vergleichen, wenn korrekt dann "Unsichtbare Schaltfläche" ausblenden.
Eventuell brauchst Du verschiedene Schaltflächen, je nach Level.
Sprich:
Unsichtbare Schaltfläche 1 liegt auf Button 1, 2 & 5 und wird durch Eingabe von xyz ausgeblendet.
Unsichtbare Schaltfläche 2 liegt auf Button 3, 4 & 6 und wird durch Eingabe von abc ausgeblendet.
Schwieriger ist die Frage wann die Freigabe wieder weggenommen wird, da es kein Ereignis gibt, dass eine Touch Berührung zurückgibt.
Also gibt es nur die Möglichkeiten:
Entweder nur über Zeit, oder wenn der eigentliche Button eine bestimmt Zeit nicht mehr betätigt wurde oder bei einem Bildwechsel.
 
Zentrale Benutzer/Password-Verwaltung / Verteilung Password-Datei

Also für mich wäre die Lösung, in JEDEM Bild an JEDEM Password-geschützten Objekt
"rumzubasteln", einfach zu aufwendig, fehlerträchtig und daher inakzeptabel.

Eine von der SPS vorgenommene Benutzeranmeldung mit dem Steuerungsauftrag 23
über den Benutzer "PLC User" mit der übergebenen Gruppennummer ist eventuell für die
Aufgabe von MSP geeignet, bedingt aber einige Änderungen im Panel-Projekt. Damit
hier nicht die Panel-Benutzerverwaltung dazwischenfunkt, darf es keine Password-
geschützten Objekte im Projekt geben. An alle zu schützenden Objekte muß die
"Bedienbarkeit" abhängig von der Gruppennummer projektiert werden. VOR Benutzung
eines "Bedienbarkeit"-geschützten Objektes muß ein extra zu erstellender Anmeldedialog
mit Password-Eingabe zur SPS vom Bediener aufgerufen werden.
Eine Simulation des Panels inklusive geschützte Bereiche ist ohne CPU nicht möglich.
[EDIT] Doch möglich: Mit Variablensimulator die Variable "Gruppennummer" steuern.[/EDIT]

Leider ist in der WCCf-Benutzerverwaltung nicht vorgesehen, Passwörter von außen
vorzugeben. Die Benutzer und deren Passwörter auf einem WCCf-Panel automatisiert
zu ändern ist scheinbar nur über den Import einer Password-Datei möglich.

Dazu kann ich mir 3 Wege vorstellen.

(A) Password-Export/Import-Datei Erzeugung durch Panel

Wenn es gelänge, den Aufbau der exportierten Password-Datei zu reengineeren, dann
wäre es möglich, mit Skript-Unterstützung des Panels bei Änderung einer Variablen
in der SPS aus dem vorgegebenen Password im DB einer SPS eine Password-Datei im
FLASH des Panels zu erzeugen und anschließend zu importieren.

So kompliziert kann der Datei-Aufbau eigentlich nicht sein, denn Siemens empfiehlt
immer, diese Datei nach Simulation auf dem Engineeringsystem zu löschen, damit die
Benutzernamen samt Password nicht unbefugt ausgelesen werden können.

Es geht aber auch, ohne den Aufbau der Password-Datei zu kennen:

(B) Password-Export/Import-Datei Verteilung über Netzwerk

Wenn alle Panels per Ethernet vernetzt sind und in dem Netzwerk ein PC mit einem
freigegebenen Ordner oder ein NAS vorhanden ist, dann kann man bei zentraler Vorgabe
der Benutzernamen/Passworte mit einem Panel oder PC-RT die gewünschte Passwort-
Änderung vornehmen und in den zentralen Ordner/NAS exportieren.
Die anderen Panels importieren die Password-Datei immer von dieser zentralen Stelle.

Als Trigger-Variable in der SPS, die das Importieren der Passwordliste auslösen soll,
eignet sich z.B. ein INT, das immer ungleich 0 ist und bei jeder Passwordgeneration
incrementiert wird. Dann werden die Panels bei jedem Runtime-Start und bei laufender
Runtime bei Änderung der Trigger-Variable die Passwordliste importieren.

(C) Password-Export/Import-Datei Verteilung über SPS-DB

Auf einem Panel oder PC-RT wird die gewünschte Passwort-Änderung vorgenommen und
in eine Password-Datei exportiert, das Panel oder die PC-RT liest dann die Datei im
Binärmodus aus und schreibt den Inhalt in einen DB der SPS (je nach Größe eventuell
in mehreren Schritten).
Die anderen Panels lesen "auf Kommando" den DB aus, erzeugen die Password-Datei im
FLASH und importieren diese anschließend.


Die Variante (B) habe ich schon einmal realisiert und es funktioniert.
Der zentrale Speicherort der Password-Datei war ein PC unter Windows XP Prof.
Mit einem PC unter Windows Vista in einer Domäne habe ich den Panel-Zugriff auf die
Freigabe nicht hinbekommen. Der Siemens-Support fand auch keine passende Lösung.

Die Variante (C) habe ich noch nicht ausprobiert, es sollte aber machbar sein.

Gruß
PN/DP

PS:
Seit WinCC flexible 2008 gibt es in "Runtime Sicherheitseinstellungen" die Option
"Nur mit Kennwort anmelden". WCCf 2008 kenne ich aber noch nicht. Vielleicht gibt
es hier einen einfacheren Ansatzpunkt?

PPS:
Für die zentrale Benutzerverwaltung vernetzter WCCf-Panels gibt es von Siemens
das kostenpflichtige Produkt "SIMATIC Logon", nutzbar ab WinCC flexible 2007
in Verbindung mit Logon Remote Access.

SIMATIC Logon V1.4 incl. SP1 ab sofort lieferbar
Projektierungshandbuch SIMATIC Logon 08/2008
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Also für mich wäre die Lösung, in JEDEM Bild an JEDEM Password-geschützten Objekt
"rumzubasteln", einfach zu aufwendig, fehlerträchtig und daher inakzeptabel.
Wenn Du mit "rumzubasteln" eine Schaltfläche drauf legen meinst OK, denn die Bedienbarkeit an den geschützten Objekten entfernen musst Du ja auch. Sprich Du musst alle Objekte bearbeiten (aufwendig und fehlerträchtig ;) )
An alle zu schützenden Objekte muß die
"Bedienbarkeit" abhängig von der Gruppennummer projektiert werden. VOR Benutzung
eines "Bedienbarkeit"-geschützten Objektes muß ein extra zu erstellender Anmeldedialog
mit Password-Eingabe zur SPS vom Bediener aufgerufen werden.
PS:
Seit WinCC flexible 2008 gibt es in "Runtime Sicherheitseinstellungen" die Option
"Nur mit Kennwort anmelden". WCCf 2008 kenne ich aber noch nicht. Vielleicht gibt
es hier einen einfacheren Ansatzpunkt?
Das bringt leider auch nichts, denn der Benutzername wird intern weiter geführt. Genauso wie er in der Benutzerverwaltung angelegt wurde.
Vorteil ist nur, dass der Name nicht mehr eingegeben werden muss.
 
Hallo zusammen,

danke für die verschiedenen Vorschläge und Ideen.

Ich habe es nun auf folgende Art und Weise gelöst:

Auf dem Startbild habe ich ein Loginbild platziert wo man lediglich das Passwort eingeben kann dass dann im DB landet. Da ich keine besondere Benutzerverwaltung brauche, sondern nur ein paar Knöpfe und Schalter schützen soll geht das so.

Das Passwort vergleiche ich dann auf Knopfdruck mit dem Passwort was an anderer Stelle im DB von meiner übergeordneten Steuerung abgelegt wird.
Stimmt das ganze überein setze ich mit einen Timer von x Minuten und blende in dieser Zeit meine Elemente ein.
Ein Logout-Knopf existiert auch der den Timer zurücksetzt und somit die Elemente wieder ausblendet.

Ist zwar zweckmäßig, aber nicht die feine englische :)

Gruss und danke,
Michael
 
Zurück
Oben