TIA Automatische Bildumschaltung nach PW eingabe in WINCC

H!dd3n94

Level-2
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Gute Abend,
Ich habe folgendes Anliegen:
Bei einem Klick auf eine Schaltfläche, soll sich der Anmeldedialog öffnen und nach erfolgreichem Login automatisch auf die in dem Button hinterlegte Seite gesprungen werden. Nach einigem suchen bin ich auf diesen Beitrag in einem anderen Forum gestoßen. Daran orientiert habe ich folgendes gemacht:

1.Bei Klicken auf den Button ->Anmeldedialog öffnen und Setze Bit "Bildwechsel_mit_PW"
2. Im Aufgabenplaner Trigger Benutzerwechsel->LeseBenutzername ->Ereignisse (Mein VB-Script)


Code:
[INDENT]Sub VBFunktion_1()
If SmartTags("Bildwechsel_mit_PW") = "True" And SmartTags("Admin(1)") = "Admin" Then
ActivateScreen "Einstellungen", 0
End If
End Sub
[/INDENT]
Habe ich irgendeinen Schritt vergessen oder ist evtl mein Code falsch? Ich habe bisher nie mit VB-Skripten gearbeitet von daher bin ich absoluter neuling auf diesem Gebiet.
Ich hoffe mir kann jemand von euch weiterhelfen. Vielen Dank schon mal im Vorraus.
 
Zuletzt bearbeitet:
Das ist auf jeden Fall schonmal der richtige Weg.

Wenn du in die Aufgabe mit der du dein Skript startest, noch einfügst, dass vor Ausführung des Skripts der Benutzername mittels "LeseBenutzername" ausgelesen und in eine Variable geschrieben wird, kannst du die Abfrage einfacher gestalten.

Eine Bitabfrage kannst du einfacher gestalten indem du sie nicht mit "TRUE" vergleichst, sondern so wie unten in meinem Beispiel. Ich habe irgendwie auch den Verdacht, dass hier der Hase im Pfeffer begraben liegt, denn eventuell könnte er ja annehmen, dass die Variable eine Stringvariable ist und er versucht die Variable mit dem Wort True zu vergleichen.

Habe gerade kein WinCC zur Hand und kann das deshalb nicht genau nachvollziehen.

Code:
Sub MEINCODE()
  If SmartTags("Bildwechsel_mit_PW") and SmartTags("Benutzername") = "Admin" Then
      ActivateScreen "Einstellungen",0
  End If
End Sub
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Habe eine Lösung gefunden. Im Prinzip war es schon soweit richtig hatte mich nur ein wenig bei dem Abfragen des Scriptes vertan.

Hier die Lösung für alle die das gleiche vlt auch vorhaben sollte und wie ich am Anfang auf dem Schlauch stehen

1. Button erstellen -> Ereignisse: Anmeldedialog öffnen und SetzeBit "xyz"

2. Variable Admin mit Datentyp WString erstellen

3. VB-Script mit folgendem Inhalt erstellen:

Code:
Sub Login_klick()
If      SmartTags("Admin") = "Admin" And SmartTags("xyz") = True Then 
       ActivateScreen "Einstellungen", 0 
       ResetBit("xyz")
End If
End Sub


4. Im Aufgabenplaner Trigger Benutzerwechsel->LeseBenutzername ->Ereignisse: VB-Script (Login_klick) und LeseBenutzername (Ausgabe:Admin)


Einziges Problem was ich jetzt noch habe ist, dass wenn sich jemand falsch anmeldet und ich in der Visu ein weiteres Anmeldefenster öffne und mich dann richtig dort anmelde ich automatisch auf die im Script aufgerufene Seite geworfen werde. Das liegt vermute ich mal daran, dass ja kein Benutzerwechsel getriggert wird und somit das script nicht aufgerufen wird. Falls jemand dafür noch ideen hat wie man das bit sinnvoll (sprich nach missglücktem Anmeldeversuch) zurücksetzen kann wäre ich für Tipps offen.
Lg
 
Zuletzt bearbeitet:
Das Script wird trotzdem aufgerufen. Nur wird wegen der nicht erfüllten If- Bedingung das Bit eben nicht zurückgesetzt.

so müsste es gehen
Code:
Sub Login_klick()
If      SmartTags("Admin") = "Admin" And SmartTags("xyz") = True Then 
       ActivateScreen "Einstellungen", 0 
       
End If
ResetBit("xyz")
End Sub
 
Zurück
Oben