Im WinCC Bilder mit Passwort sichtbar

Patrick13

Level-2
Beiträge
31
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Ich würde gerne Bilder Sichtbar unsichtbar schalten.
z.B.: An diesen Bild würde ich gerne die F2 Taste sperren, damit ich weder denn Text sehen kann bzw. damit die Taste erst eine Funktion hat wenn ich ein Passwort eingebe.
Ist das grundsätzlich möglich? Wenn ja bitte um eine kurze Beschreibung des Vorgangs.
2016-02-04 08_44_40-WinCC flexible Standard - FTF-FlexiMover - SIMATIC HMI-Station.png

Danke schon mal für die Hilfe.

MfG
Patrick
 
Grundsätzlich machbar, über "Animation/Sichtbarkeit" an dem Textobjekt und "Berechtigung in Runtime" an der Funktionstaste.

Soll die Animationsvariable abhängig vom angemeldeten Benutzer sein? Dann im Aufgabenplaner beim Ereignis "Benutzerwechsel" mit der Systemfunktion LeseGruppennummer die Gruppennummer des angemeldeten Benutzers in die Animationsvariable schreiben lassen.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ok danke das mit dem Bild hab ich schon mehr oder weiniger geschafft.
Da fehlt mir mir nur noch das mit dem Benutzerwechsel. (Danke für denn tipp/ aber ich verstehe es noch nicht ganz) kann man das wo nachlesen wie man das schritt für schritt macht?!


An der Funktionstaste habe ich nur Allgemein und Ereignisse
und unter Ereignisse habe ich Drücken loslassen

Vielleicht sollte ich dazusagen das es sich dabei um WinCC felx handelt und ich ein TP 177B 4 habe?!

Danke schon mal
war schon eine sehr hilfreiche Antwort :)

Patrick
 
Es gibt im Flexible einen Menüpunkt, der heißt "Aufgabenplaner". Dort kann das Ereignis "Benutzerwechsel" eingefügt werden. Ich führe da dann immer ein Script aus, was mir interne Variablen mit den entsprechenden Informationen (Name, Gruppennummer) beschreibt.
 
Danke

Jetzt fehlt mir nurmehr das mit der Funktionstaste!
Das die erst aktiv ist wenn das PW eingegeben ist.

Super danke Leute für die guten Tipps!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du könntest in der Benutzerverwaltung/Gruppen eine Berechtigung "F2_drücken" erstellen und diese Berechtigung einer oder mehreren Benutzergruppe(n) zuweisen ("Administratoren" erhalten immer alle Berechtigungen!). Beim F2-Softkey im Bild trägst Du diese Berechtigung "F2_drücken" als "Berechtigung in Runtime" ein. Dann werden die an die Taste projektierten Ereignisse nur dann ausgeführt, wenn ein Benutzer einer Benutzergruppe angemeldet ist, welche diese Berechtigung besitzt. Wenn kein Benutzer angemeldet ist oder er hat diese Berechtigung nicht, dann wird automatisch ein Anmeldedialog angezeigt.

Wenn Du nicht willst, daß ein Tastendruck bei Bedarf automatisch den Anmeldedialog zeigt oder daß auch Administratoren die Funktion aufrufen können, dann könntest Du an das Drücken der Taste ein Skript hängen, was zuerst eine Variable abfragt und nur wenn die den richtigen Wert hat dann die geschützte Funktion ausführt. Damit der Anmeldedialog nicht aufgerufen wird, darf in dem Fall an die Taste keine Berechtigung projektiert sein.

Zum checken, was Dein Panel kann: Welches Panel hast Du da eigentlich?
Nachtrag: ach, ein TP177B 4" - das kann keine Skripte.

Harald
 
Zuletzt bearbeitet:
Wenn ich diese Berechtigung für die F2 Taste mache zählt das im jeden Bild oder nur in dem wo ich es einstelle?!
Ich habe hier mehrere Unterbilder.
hat das einen Einfluss?!

Danke
 
Zuviel Werbung?
-> Hier kostenlos registrieren
wie komme ich eigentlich in die Benutzerverwaltung?!
Füge in ein Bild eine "Benutzeranzeige" ein.
Siehe in der WinCC flexible Hilfe: Index: Benutzeranzeige, projektieren
Siehe in der WinCC flexible Hilfe das Kapitel "Sicherheit in Runtime" (Index: Benutzer, in Runtime)

Wenn ich diese Berechtigung für die F2 Taste mache zählt das im jeden Bild oder nur in dem wo ich es einstelle?!
Das zählt so wie Du es projektierst:
  • wenn Du die Funktion und die Berechtigung an dem Softkey in einem Bild projektierst, dann gilt das nur in dem Bild
  • wenn Du die Funktion und die Berechtigung an dem Softkey in der Vorlage projektierst, dann gilt das in allen Bildern, wo bei dem Softkey der Haken bei "[v] Globale Zuordnung verwenden" gesetzt ist

Bei den Softkeys kann man die Bedienbarkeit nicht dynamisieren, man kann nur eine statische Berechtigung festlegen - dann kommt automatisch der Anmeldedialog, falls der Bediener nicht die nötige Berechtigung hat. Da fällt dann natürlich auf, daß die Taste eine geschützte Funktion hat. Vielleicht willst Du eine Funktion, die nur der Programmierer oder Anlagenhersteller aufrufen kann, aber kein Administrator (Administratoren haben immer alle Berechtigungen!) dann kann das nicht über Berechtigungen gehen, dann muß die Bedienbarkeit dynamisiert werden, dann muß die Aufrufbarkeit der geschützten Funktion dynamisch freigegeben werden können, z.B. per Freigabe durch eine Variable, welche durch einen bestimmten Wert in einem Eingabefeld oder einen Wert in der SPS aktiviert wird.

Wie kann man aber ohne Skript eine bedingt ausgeführte Funktion realisieren? Mit ein bisschen Mathematik kann man bedingt ein Bild aufrufen:

Mit F2-Softkey ein geschütztes Bild aufrufen, nur wenn eine Bedingung erfüllt ist:
  • das Bild wo F2 gedrückt werden kann hat die Bildnummer 1
  • das geschützte Bild hat die Bildnummer 4
  • erstelle eine Variable "F2_Freigabe" (UInt), die die Werte 0 (nein) oder 1 (ja) haben kann
  • erstelle eine Variable "F2_Zielbild" (UInt)
  • an den Softkey F2 projektiere bei Drücken 2 Funktionen:
    1) LineareSkalierung (Y: F2_Zielbild, a: 3, X: F2_Freigabe, b: 1)
    2) AktiviereBildMitNummer (Bildnummer: F2_Zielbild)

    b: ist die Bildnummer, wo F2 gedrückt werden kann (1)
    a: ist die Zielbildnummer(4) - (b) = 4 - 1 = 3
  • jetzt die Variable "F2_Zielbild" geeignet zwischen 0 und 1 steuern: bei 1 ruft F2 das geschützte Bild Nummer 4 auf.

Harald
 
Zuletzt bearbeitet:
Danke diese Antwort finde ich sehr Hilfreich.

und deine Erklärung für die Mathe-Lösung leuchtet mir soweit mal ein.

Wenn ich aber jetzt nicht nur dieses eine Bild sperren will sonder auch andere Bilder?!
Ist es wahrscheinlich der selbe Vorgang?!
und die Bildnummern hast du wahrscheinlich nur z.B.: angenommen?!

Und noch eine Frage zu der Variable "F2_Zielbild":
Wer Steuert die dann über ein Passwort oder?!

sonst habe ich alles Verstanden!

Danke

Patrick
 
Hallo nochmal,

nach einer zeit des Probierens und "krübelns" muss ich nochmal nachfragen.

Ich habe es wie Folgt parametriert:

2016-02-09 10_15_33-WinCC flexible Standard - FTF-FlexiMover - SIMATIC HMI-Station.jpg2016-02-09 10_04_29-WinCC flexible Standard - FTF-FlexiMover - SIMATIC HMI-Station.jpg

Was passiert:
wenn ich die F2 taste betätige springt er nicht wie von mir erwartet in das Bild mit Nummer 30 sondern er wechselt zum Startbild (Bildnummer 1)

Ich habe natürlich auch schon Probiert bei AktiviereBildMitNummer 30 rein zuschreiben.
Wenn ich das mache kommt ein Fehler: Anwahl von Objekt mit Nummer in der Tab-Reihenfolge:30 nicht möglich
und wechselt auch zum Startbild (Bildnummer 1)

nun zu meiner Frage:

Habe ich alles Richtig parametriert?!
Muss ich noch etwas anpassen oder abändern?!

und wie kann ich die Freigabe Steuerbar machen?! wäre es sinnvoll diese mit einer Anmeldung mitlaufen zu lassen?!


Danke schon mal für eure Hilfe!

Patrick
 

Anhänge

  • 2016-02-09 10_04_12-WinCC flexible Standard - FTF-FlexiMover - SIMATIC HMI-Station.jpg
    2016-02-09 10_04_12-WinCC flexible Standard - FTF-FlexiMover - SIMATIC HMI-Station.jpg
    84,3 KB · Aufrufe: 17
  • 2016-02-09 10_04_12-WinCC flexible Standard - FTF-FlexiMover - SIMATIC HMI-Station.jpg
    2016-02-09 10_04_12-WinCC flexible Standard - FTF-FlexiMover - SIMATIC HMI-Station.jpg
    84,3 KB · Aufrufe: 14
wenn ich die F2 taste betätige springt er nicht wie von mir erwartet in das Bild mit Nummer 30 sondern er wechselt zum Startbild (Bildnummer 1)

Ich habe natürlich auch schon Probiert bei AktiviereBildMitNummer 30 rein zuschreiben.
Wenn ich das mache kommt ein Fehler: Anwahl von Objekt mit Nummer in der Tab-Reihenfolge:30 nicht möglich
und wechselt auch zum Startbild (Bildnummer 1)
AktiviereBildMitNummer(Bildnummer, Objektnummer) aktiviert das Bild, was die angegebene Bildnummer hat. Die Objektnummer ist das nach dem Bildaufbau zu aktivierende Objekt (Tab-Reihenfolge) und sollte immer 0 sein.
Jedes Bild hat eine einstellbare Bildnummer - siehe in den Eigenschaften des Bildes.

Hat das Bild mit der F2-Funktion die Bildnummer 2? Hat das aufzurufende Bild die Bildnummer 30 (28 + 2 = 30)?
Hat die Variable F2_Freigabe nur die Werte 0 oder 1?

und wie kann ich die Freigabe Steuerbar machen?! wäre es sinnvoll diese mit einer Anmeldung mitlaufen zu lassen?!
Oh, das ist ohne Skript ziemlich aufwändig, abhängig von der Anmeldung/Benutzergruppe die F2_Freigabe auf 0 oder 1 zu bringen.
Die Erklärung dazu wird ziemlich lang. Ein einfaches "IF Benutzergruppe = x THEN F2_Freigabe = ..." oder "F2_Freigabe = (Benutzergruppe = x)"geht ja nicht in Funktionslisten. Dann müssen da noch diverse Siemens-Schikanen umgangen werden (die Systemfunktionen LineareSkalierung und SchiebenUndMaskieren stehen im Aufgabenplaner nicht zur Verfügung, und Loop-Breaker bei LeseGruppennummer), so daß die Zuweisung von 0 oder 1 an F2_Freigabe letztendlich über 6 zusätzliche Funktionen bei dem F2-Softkey gemacht werden muß. Ich werde die in einem späteren Beitrag aufschreiben. Nur schonmal soviel: mein mathematischer Trick besteht darin, daß bei Multiplikation mit -1 sich das Vorzeichen ändert, aber nicht bei 0 * -1. Vielleicht fällt Dir was besseres ein, wie man folgendes Ergebnis in Funktionslisten erzeugen kann:
Code:
IF Gruppennummer = 8 THEN
  F2_Freigabe = 1
ELSE
  F2_Freigabe = 0
END IF

Wenn der automatisch aufpoppende Anmeldedialog nicht stört, dann ist es vieeel einfacher, der F2-Taste fest eine Berechtigung zuzuweisen.


PS:
hab es schon geschafft
Woran hat es gelegen?

Harald
 
Danke nochmal für die Erläuterung

Mir fehlt zwar noch die beschaltbare Freigabe (0 oder 1) aber der Rest ist gelöst.

Ich habe nicht verstanden bzw kapiert das die F2_Freigabe eigentlich 0 ist.

Deine Annahme ist richtig ich. (F2_Funktion ist in Bildnr. 2 und das aufzurufende Bild hat de Nummer 30)
Wir haben ja folgende Formel:
Y=a*x+b
F2_Zielbild= 28 * F2_Freigabe( 0 ) + 2
F2_Zielbild=28*0+2=2
F2_Zielbild=2

Ich habe erst begriffen das die freigabe 0 ist wie ich probiert habe das ich in F2_Zielbild 30 rein geschrieben habe und sich danach das bild öffnen lies.
nach einer kleinen mathe stunde hab ich das auch gut verstanden ;)

in dieser Visu kann man sich schon mit einem Benutzer anmelden.
ich muss nurmehr herausfinden wie ich mir das zu nutzen machen kann!

eventuell mit der S7 steuerung verbinden und etwas einfaches ausprogrammieren?!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Beispiel: nur Benutzer der Benutzergruppe mit der Gruppennummer 8 sollen die Freigabe für die Funktion der F2-Taste erhalten

Im Aufgabenplaner beim Ereignis "Benutzerwechsel" die Systemfunktion
Code:
LeseGruppennummer(Variable: UserGruppe)
aufrufen (schreibt die Gruppennummer des angemeldeten Benutzers oder 0 bei Logout in die Variable "UserGruppe").

Dann brauchen wir eine Funktion, die die Variable "F2_Freigabe" entsprechend dem Wert von "UserGruppe" setzt:
Code:
If UserGruppe = 8 Then
  F2_Freigabe = 1
Else
  F2_Freigabe = 0
End If
Da das TP177 keine Skripte kann, geht es leider nicht so einfach.
Nun könnte man das einfach in der SPS erledigen, allerdings kann dann die Funktionalität am Panel nicht ohne angeschlossene SPS ausgeführt/getestet werden.

Mit etwas Mathematik gelingt es mit dieser Funktionsliste: :cool:
Code:
1) InvertiereLineareSkalierung (X: Int_1, Y: UserGruppe, b: 8, a: 1)    [COLOR="#008000"]<-- 8 ist die Gruppennummer für Freigabe[/COLOR]
2) LineareSkalierung (Y: Int_2, a: -1, X: Int_1, b: 0)
3) SchiebenUndMaskieren (Int_1, Int_1, 15, 1)
4) SchiebenUndMaskieren (Int_2, Int_2, 15, 1)
5) LineareSkalierung (Y: Int_1, a: 1, X: Int_1, b: Int_2)
6) LineareSkalierung (Y: F2_Freigabe, a: -1, X: Int_1, b: 1)

[COLOR="#008000"]Panel-interne Variablen:
UserGruppe, F2_Freigabe : UInt
Int_1, Int_2 : Int[/COLOR]

Schön wäre es jetzt, wenn man die Funktionsliste direkt im Aufgabenplaner hinter der Systemfunktion LeseGruppennummer(UserGruppe) aufrufen könnte - doch im Aufgabenplaner stehen die benötigten Berechnen-Systemfunktionen nicht zur Verfügung. :(

Bei der Variable "UserGruppe" beim Ereignis Wertänderung nutzt die Funktionsliste leider auch nichts, weil LeseGruppennummer bei internen Variablen nicht das Ereignis Wertänderung auslöst. (Loop breaker) :(

Die Funktionsliste muß also beim F2-Softkey beim Ereignis "Drücken" abgearbeitet werden:
Code:
1) InvertiereLineareSkalierung (X: Int_1, Y: UserGruppe, [COLOR="#FF0000"]b: 8[/COLOR], a: 1)
2) LineareSkalierung (Y: Int_2, a: -1, X: Int_1, b: 0)
3) SchiebenUndMaskieren (Int_1, Int_1, 15, 1)
4) SchiebenUndMaskieren (Int_2, Int_2, 15, 1)
5) LineareSkalierung (Y: Int_1, a: 1, X: Int_1, b: Int_2)
6) LineareSkalierung (Y: F2_Freigabe, a: -1, X: Int_1, b: 1)

7) LineareSkalierung (Y: F2_Zielbild, [COLOR="#FF0000"]a: 3[/COLOR], X: F2_Freigabe, [COLOR="#FF0000"]b: 1[/COLOR])
8) AktiviereBildMitNummer (Bildnummer: F2_Zielbild)

[COLOR="#008000"]Anmerkungen:
1) [COLOR="#FF0000"]b[/COLOR]: ist die Gruppennummer, welche die Freigabe erhalten soll ([COLOR="#FF0000"]8[/COLOR])
7) [COLOR="#FF0000"]b[/COLOR]: ist die Bildnummer, wo F2 gedrückt werden kann ([COLOR="#FF0000"]1[/COLOR])
7) [COLOR="#FF0000"]a[/COLOR]: ist die Zielbildnummer(4) - (b) = 4 - 1 = [COLOR="#FF0000"]3[/COLOR][/COLOR]

Für dynamische Animationen (z.B. Sichtbarkeit) abhängig vom angemeldeten Benutzer muß die Variable "UserGruppe" verwendet werden. Die Variable "F2_Freigabe" kann nicht dafür verwendet werden, weil sie erst beim Drücken von F2 zugewiesen wird - sie ist nicht automatisch synchron zum Wert in "UserGruppe".


PS: gibt es vielleicht eine einfachere Lösung, wie man "If UserGruppe = 8 Then F2_Freigabe = ..." ohne Skript realisieren kann? (am besten im Aufgabenplaner)

Harald
 
habe ich soweit alles gemacht.

ich verstehe allerdings nicht ganz was du hier machst.

Code:
1) InvertiereLineareSkalierung (X: Int_1, Y: UserGruppe, [COLOR=#FF0000]b: 8[/COLOR], a: 1)
2) LineareSkalierung (Y: Int_2, a: -1, X: Int_1, b: 0)
3) SchiebenUndMaskieren (Int_1, Int_1, 15, 1)
4) SchiebenUndMaskieren (Int_2, Int_2, 15, 1)
5) LineareSkalierung (Y: Int_1, a: 1, X: Int_1, b: Int_2)
6) LineareSkalierung (Y: F2_Freigabe, a: -1, X: Int_1, b: 1)

7) LineareSkalierung (Y: F2_Zielbild, [COLOR=#FF0000]a: 3[/COLOR], X: F2_Freigabe, [COLOR=#FF0000]b: 1[/COLOR])
8) AktiviereBildMitNummer (Bildnummer: F2_Zielbild)

[COLOR=#008000]Anmerkungen:
1) [COLOR=#FF0000]b[/COLOR]: ist die Gruppennummer, welche die Freigabe erhalten soll ([COLOR=#FF0000]8[/COLOR])
7) [COLOR=#FF0000]b[/COLOR]: ist die Bildnummer, wo F2 gedrückt werden kann ([COLOR=#FF0000]1[/COLOR])
7) [COLOR=#FF0000]a[/COLOR]: ist die Zielbildnummer(4) - (b) = 4 - 1 = [COLOR=#FF0000]3[/COLOR][/COLOR]

leider kann ich aus welchen Grund auch immer in der Simulation mich nicht anmelden sondern nur beim Log in versuch nur das PW ändern.
Das ist grundsätzlich kein Problem da ich diese Visu sowieso ins TIA migriere und dann das Gerät tausche damit es später ein KTP400 Basic PN wird.

Das ist von einen Externen Programmierer so eingeführt (er will nicht mit dem TIA direkt arbeiten)

Ich habe leider die Erkenntnis gemacht das das KTP400 diesen Befehl
Code:
[COLOR=#333333][FONT=Courier]LeseGruppennummer(Variable: UserGruppe)
[/FONT][/COLOR]
nicht kann.
da es nach meinen Änderungen hoffentlich ein bisschen nach meinen Kopf gehen wird werde ich das ganze nurmehr im TIA belassen.
gibt es eine alternative zu dem Befehl "LeseGruppennummer"?!

Danke nochmals!
 
Hab es schon kapiert musste im Tia Eigentlich nur im Reiter Trigger auf Benutzerwechsel stellen.


Jetzt funktioniert alles so wie ich das wollte

Herzlichen DANK!!! :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich verstehe allerdings nicht ganz was du hier machst.
mein mathematischer Trick besteht darin, daß bei Multiplikation mit -1 sich das Vorzeichen ändert, aber nicht bei 0 * -1
Ausführlich:
Code:
1) InvertiereLineareSkalierung (X: Int_1, Y: UserGruppe, b: 8, a: 1)
   [COLOR="#0000FF"]Int_1 := UserGruppe - 8[/COLOR]

2) LineareSkalierung (Y: Int_2, a: -1, X: Int_1, b: 0)
   [COLOR="#0000FF"]Int_2 := Int_1 * -1[/COLOR]

3) SchiebenUndMaskieren (Int_1, Int_1, 15, 1)
   [COLOR="#0000FF"]Int_1 := Vorzeichen(Int_1)[/COLOR]   [COLOR="#008000"]// 0 (positiv) oder 1 (negativ)[/COLOR]

4) SchiebenUndMaskieren (Int_2, Int_2, 15, 1)
   [COLOR="#0000FF"]Int_2 := Vorzeichen(-Int_1)[/COLOR]  [COLOR="#008000"]// 0 (positiv) oder 1 (negativ)[/COLOR]

5) LineareSkalierung (Y: Int_1, a: 1, X: Int_1, b: Int_2)
   [COLOR="#0000FF"]Int_1 := Vorzeichen(Int_1) + Vorzeichen(-Int_1)[/COLOR]  [COLOR="#008000"]// ergibt 0 bei X==0 / oder 1 bei X<>0[/COLOR]

6) LineareSkalierung (Y: F2_Freigabe, a: -1, X: Int_1, b: 1)
   [COLOR="#0000FF"]F2_Freigabe := NOT(Int_1)[/COLOR]    [COLOR="#008000"]// ergibt 1 bei X==0 (UserGruppe==8) / oder 0 bei X<>0 (UserGruppe<>8)[/COLOR]
kurz:
Code:
[COLOR="#008000"]1) normiert das Problem von "IF (UserGruppe == 8)" zu "IF (X == 0)"

2) bis 4) sind Zwischenrechnungen zum Ermitteln der Vorzeichen von X und -X

5) macht den "Vergleich" auf (X <> 0) durch Addition der Vorzeichen: "VZ(X) + VZ(-X)"
   was immer 1 ergibt, außer wenn X gleich 0 ist dann ergibt das 0

6) invertiert 0 --> 1 / 1 --> 0, weil auf (X == 0) statt (X <> 0) verglichen werden sollte[/COLOR]

Harald :cool:
 
Zurück
Oben