Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Page 2 of 2 FirstFirst 12
Results 11 to 20 of 20

Thread: Benutzer mit SPS-Variable anmelden VB-Script

  1. #11
    Join Date
    14.05.2019
    Posts
    3
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Quote Originally Posted by PeterGötz View Post
    Ja vielen Dank. Pfunst so super. Dieses VB-Kommando habe ich einfach übersehen. Gruß von Peter Götz bei Heidelberg.
    Hallo Peter Götz,
    vor einigen Jahren hat al3x dir einen Tip gegeben, wie man über ein kleines Skript entsprechende Benutzer auswählen und anmelden kann.
    Ich stehe gerade vor einem ähnlichen Problem und soll mit dem Euchner EKS einen vorhandenen Benutzer anmelden, der bereits in der vorhandenen Siemens Benutzerverwaltung existiert. Hab schon was versucht, bin aber mit VB Skript noch nicht so bewandert und wollte Fragen, ob du nicht nen Beispiel Code einstellen könntest, mit dem es bei dir damals funktioniert hat...

    Wäre dir sehr dankbar.
    Beste Grüße

  2. #12
    Join Date
    22.03.2007
    Location
    Detmold (im Lipperland)
    Posts
    12,205
    Danke
    411
    Erhielt 2,501 Danke für 2,079 Beiträge

    Default

    Eiegentlich ist in diesem Thread schon alles zu dem Thema gesagt.
    An welcher Stelle hängst du denn genau ?
    Was hast du für ein Bediengerät / HMI ?

    Gruß
    Larry

  3. #13
    Join Date
    14.05.2019
    Posts
    3
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Default

    Hallo, habe das TP1200 Comfort. Hänge an der Stelle, dass der vorhandene Benutzer in der fertigen Benutzerverwaltung über den Befehl Logon nicht aktiviert wird.
    Danke

  4. #14
    Join Date
    22.03.2007
    Location
    Detmold (im Lipperland)
    Posts
    12,205
    Danke
    411
    Erhielt 2,501 Danke für 2,079 Beiträge

    Default

    Du mußt hier berücksichtigen, dass sich die Syntax, aber auch der Name des Befehls von WinCCFlexibel nach TIA möglicherweise geändert hat. Das müßtest du aber über die TIA-Hilfe herausbekommen ...
    Darüber hinaus muß der Benutzername, den du übergibst, identisch sein mit einem aus der Liste in der Benutzerverwaltung deiner HMI - gleiches gilt für das Passwort - ist dem ganz sicher so ?
    Dann : wird dein Script ganz sicher aufgerufen ?

    Gruß
    Larry

  5. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    J36 (15.05.2019)

  6. #15
    Join Date
    06.10.2003
    Posts
    3,925
    Danke
    525
    Erhielt 633 Danke für 497 Beiträge

    Default

    Bei mir sieht das Skript ein ganz klein wenig anders aus. Und ich meine, so funktioniert es bei mir auch.

    Code:
    SmartTags("BENUTZER") = "MeinBenutzerName"
    SmartTags("PASSWORT") = "MeinPasswort"
    Logon "PASSWORT", "BENUTZER"
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  7. Folgende 2 Benutzer sagen Danke zu Onkel Dagobert für den nützlichen Beitrag:

    J36 (15.05.2019),sepp (16.05.2019)

  8. #16
    Join Date
    22.06.2009
    Location
    Sassnitz
    Posts
    13,563
    Danke
    1,090
    Erhielt 4,005 Danke für 3,237 Beiträge

    Default

    Quote Originally Posted by Onkel Dagobert View Post
    Bei mir sieht das Skript ein ganz klein wenig anders aus. Und ich meine, so funktioniert es bei mir auch.
    [...]
    Code:
    Logon "PASSWORT", "BENUTZER"
    Bist Du sicher mit den Hochkommas vor+hinter PASSWORT und BENUTZER? Das macht nämlich diese Angaben zu String-Literalen und die ersten beiden Zeilen wären unnötig, weil dann hätten die SmartTags("BENUTZER") und SmartTags("PASSWORT") überhaupt nichts mit der Anmeldung zu tun.
    Und ich meine, zumindest das Passwort MUSS in einer Variable übergeben werden, weil die Logon-Systemfunktion das Passwort in der Variable löschen will. Gibt es da keinen Runtime-Error?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  9. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    J36 (15.05.2019)

  10. #17
    Join Date
    06.10.2003
    Posts
    3,925
    Danke
    525
    Erhielt 633 Danke für 497 Beiträge

    Default

    Ich hatte das Skript mal eben aus meinem aktuellen Projekt kopiert. In früheren Projekten hatte ich diese Funktionalität auch schon genutzt. Eine Fehlermeldung kommt nirgendwo.
    Ich gehe der Sache nachher mal auf den Grund.

    Nachher:
    Ok, der größte Skripter bin ich ganz sicher nicht, aber mein Dreizeiler funktioniert genau so wie ich es oben geschrieben habe. Die Variablen "BENUTZER" und "PASSWORT" sind als lokale Variablen vom Typ WString deklariert. Ich verwende das Skript z.Bsp. bei Bildwechsel im Aufgabenplaner während der Inbetriebnahme, oder auch wenn der Kunde letzten Endes gar keine Passwortfunktion nutzen möchte, ich sie aber vorgesehen habe.

    Interessant, ich habe mal gerade die ersten beiden Zeilen auskommentiert und E/A-Felder für beide Variablen eingerichtet. Nach Ausführung des Skriptes, bzw. nach Ausführung der Logon-Funktion ist die Variable "PASSWORT" geleert. Zum Test einer erfolgreichen Anmeldung habe ich die Funktion "LeseBenutzername" über eine Schaltfläche verwendet.

    Getestet habe ich im Simulator unter TIA V15.1. Im Projekt habe ich eine RT Advanced. Auf einem Comfort-Panel müsste es genau so funktionieren.

    Last edited by Onkel Dagobert; 14.05.2019 at 20:12.
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  11. Folgender Benutzer sagt Danke zu Onkel Dagobert für den nützlichen Beitrag:

    J36 (15.05.2019)

  12. #18
    Join Date
    14.05.2019
    Posts
    3
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Default

    Hallo zusammen,
    vielen Dank für eure schnellen Rückmeldungen. Habe versucht alle eure Tipps umzusetzen, doch irgendwie wird vermutlich das Skript nicht abgearbeitet, obwohl in der Variable eine Wertänderung stattfindet.
    Bin nun einem zweiten Hinweis gefolgt und hab es über die Steuerungsafträge 23 und 24 versucht. Hat auf Anhieb funktioniert.
    Besten Dank euch nochmals!

  13. #19
    Join Date
    22.06.2009
    Location
    Sassnitz
    Posts
    13,563
    Danke
    1,090
    Erhielt 4,005 Danke für 3,237 Beiträge

    Default

    Quote Originally Posted by Onkel Dagobert View Post
    mein Dreizeiler funktioniert genau so wie ich es oben geschrieben habe.
    Ohh, böse Falle von Siemens!
    Vermutlich wegen dem gut gemeinten TIA-Schwachfug daß Namen von HMI-Variablen alle möglichen Zeichen und Satzzeichen und Leerzeichen enthalten dürfen, werden SmartTags-Variablennamen auch bei Verwendung in VBS-Skripts in doppelten Hochkomma geschrieben. Allerdings darf auf der rechten Seite von Zuweisungen das "SmartTags(...)" weggelassen werden (weil das da so schön mit String-Literalen verwechselt werden kann ), auf der linken Seite darf es nicht weggelassen werden, weil da verwirrt das den Siemens-VBS-Compiler, obwohl gerade da klar ist daß das kein String-Literal sein kann
    Code:
    SmartTags("HMI_Variable_1") = SmartTags("HMI_Variable_2") 'so ist es klar verständlich
    SmartTags("HMI_Variable_1") = "HMI_Variable_2"            'so ist es bei Siemens TIA VBS auch zulässig!!!
    "HMI_Variable_1" = SmartTags("HMI_Variable_2")            'so ist es nicht zulässig! Das frisst der Siemens TIA VBS Compiler nicht
    Wenn ich in VBS globale HMI-Variablen anspreche, dann schreibe ich immer SmartTags("MeineHMIVariable") und fast nie nur "MeineHMIVariable". Es gibt allerdings Systemfunktionen, die hat Siemens in TIA nun so verhunzt, daß SmartTags("MeineHMIVariable") nicht mehr geschrieben werden darf - dann muß man leider die irreführende Schreibweise verwenden. (z.B. bei GetDataRecordTagsFromPLC darf bei der Angabe der Statusvariable nicht mehr SmartTags("StatusVariable") geschrieben werden)

    Schätzfrage:
    Code:
    'Siemens TIA VBS
    Dim pwd, user
    
    SmartTags("password") = "1234"
    pwd = SmartTags("password")    'pwd enthält danach "1234"
    pwd = "5678"                   'pwd enthält danach "5678"
    pwd = "password"               'pwd enthält danach ......?
    
    user = "Meier"
    Logon pwd, user

    Quote Originally Posted by Onkel Dagobert View Post
    Die Variablen "BENUTZER" und "PASSWORT" sind als lokale Variablen vom Typ WString deklariert.
    Was meinst Du mit "lokale Variablen"? HMI-Variablen des Panels? Die sind nicht lokal sondern panelweit global. Skript-lokalen Variablen kann man in VBS keinen Datentyp zuordnen.
    Warum verwendest Du in dem Skript globale HMI-Variablen und nicht lokale Skript-Variablen?

    Code:
    'Siemens TIA VBS
    Dim pwd, user
    
    'so macht es Sinn (User und Password als Konstanten im Skript)
    user = "Meier"
    pwd = "1234"
    Logon pwd, user
    
    'geht auch so (dann steht nach dem Logon "Meier" in der HMI-Variable "Benutzer")
    SmartTags("Benutzer") = "Meier"
    pwd = "1234"
    Logon pwd, SmartTags("Benutzer")
    
    'so macht es auch Sinn (User und Password werden aus HMI-Variablen (z.B. aus EA-Feldern) entnommen)
    user = SmartTags("Benutzer")
    pwd = SmartTags("Password")
    Logon pwd, user
    
    'so geht es auch (etwas kürzer)
    pwd = SmartTags("Password")
    Logon pwd, SmartTags("Benutzer")
    
    'so ist es weniger sinnvoll (weil SmartTags("Password") enthält nach dem Logon "" )
    SmartTags("Benutzer") = "Meier"
    SmartTags("Password") = "1234"
    Logon SmartTags("Password"), SmartTags("Benutzer")
    
    'und so sieht das von Siemens erfundene Verwirrspiel aus:
    '(was man nur richtig versteht, wenn man weiß daß die Parameter von Logon zwingend Variablen sein müssen)
    Logon "Password", "Benutzer"
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  14. #20
    Join Date
    06.10.2003
    Posts
    3,925
    Danke
    525
    Erhielt 633 Danke für 497 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Quote Originally Posted by PN/DP View Post
    .. Was meinst Du mit "lokale Variablen"? ..
    "Interne Variablen" wäre der korrekte Begriff gewesen, sorry.


    Quote Originally Posted by PN/DP View Post
    Warum verwendest Du in dem Skript globale HMI-Variablen und nicht lokale Skript-Variablen? ..

    Harald, ich weiß gar nicht, wie ich dir diese Frage hinreichend beantworten könnte. Möglicherweise hatte ich mit den Variablen noch mehr vor. Du kannst ja mal alle Eventualitäten erörtern .

    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

Similar Threads

  1. WinCC Script - Bildname in Variable
    By Lars Bizare in forum HMI
    Replies: 3
    Last Post: 27.08.2010, 16:33
  2. C-Script aus Index in Variable schreiben
    By WendeMarkus in forum HMI
    Replies: 0
    Last Post: 23.08.2010, 04:34
  3. Script setzt variable zu früh
    By Bensen83 in forum HMI
    Replies: 8
    Last Post: 30.03.2010, 20:04
  4. SPS Variable im Script verwenden
    By Hofi in forum HMI
    Replies: 5
    Last Post: 16.01.2009, 08:55
  5. Benutzer über Merker bei Op77 anmelden
    By ice6461 in forum HMI
    Replies: 1
    Last Post: 06.11.2008, 05:49

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •