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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Skript-Abfragen ob bestimmter User angemeldet

  1. #1
    Registriert seit
    17.01.2011
    Beiträge
    88
    Danke
    6
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hey Leute,
    brauch mal eure Hilfe. Wie kann ich über ein Skript abfragen, ob ein bestimmter User angemeldet ist? Mit If...then?

    So:
    If SL_VerifyUser = TRUE Then
    *'<Bedieneingriff>
    *'<Bedienmeldung>
    Else
    *'<Fehlermeldung>
    End If

    ???
    Danke
    Geändert von chipset (13.10.2014 um 16:51 Uhr)
    Zitieren Zitieren Skript-Abfragen ob bestimmter User angemeldet  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.197
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Du meinst ein Skript für welche HMI-Software?

    In WinCC flexible und höchstwahrscheinlich auch TIA geht z.B. dieses VBS-Skript:
    Code:
    Dim user, msgText
    
    'aktuell angemeldeten Benutzername lesen
    GetUserName user
    If user = "" Then user = "<no_user>" 'kein Benutzer angemeldet
    
    If user = "admin" Then 'Benutzer "admin" ist angemeldet - der darf bedienen
      'Bedieneingriff
      '...
      'und Systemmeldung ausgeben
      ShowSystemAlarm "Benutzer 'admin' hat die Heizung ausgeschaltet."
    Else
      'Systemmeldung ausgeben
      msgText = "O¬ Benutzer '" & user & "' hat keine Berechtigung für diese Aktion."
      ShowSystemAlarm msgText
    End If
    Du könntest auch im Aufgabenplaner beim Ereignis "Benutzerwechsel" den Benutzername in eine Stringvariable einlesen und dann ständig anzeigen.

    Siehe auch die Hilfe zur Systemfunktion LeseBenutzername bzw. GetUserName

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. #3
    Registriert seit
    17.01.2011
    Beiträge
    88
    Danke
    6
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Hallo Harald Danke mal soweit. Also so in etwa habe ich mir das vorgestellt : Wenn ein bestimmter Benutzer angemeldet ist, dann wird ein Taster sichtbar.
    So habe ich es jetzt mal, funktioniert jedoch nicht :

    Code:
    Dim userName, userPassword
    
    GetUserName userName
    GetPassword userPassword
    
    if userName = "Meister" and userPassword= 2345
      then Anzeige = true ' Anzeige ist ein Bit

  4. #4
    Registriert seit
    05.11.2004
    Ort
    Schweiz
    Beiträge
    1.135
    Danke
    224
    Erhielt 127 Danke für 85 Beiträge

    Standard

    Welche Software? Das wäre mal gut zu wissen!
    Mit Anzeige = true ist es auch nicht getan. Ist das eine externe Variable oder ein Script-Interne?

    Paar mehr Infos brauchen wir schon!
    Kommt Zeit.... Kommt Rat.... In der Tat.
    Gartenlampe mit Windenergie anstelle von Solar? Bei Interesse -> PN

  5. #5
    Registriert seit
    17.01.2011
    Beiträge
    88
    Danke
    6
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Sorry, WinCC 2008 SP3. Die Variable ist eine inetrne Variable. Ich habs auch mit setbit probiert, geht baer auch nicht.

  6. #6
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.197
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    OK, WinCC flexible also.

    In WinCC flexible löse ich Benutzergruppen-abhängige Sichtbarkeit dadurch, daß ich im Aufgabenplaner beim Ereignis "Benutzerwechsel" mit der Systemfunktion LeseGruppennummer die Benutzergruppen-Nummer in eine Panelvariable einlese und diese Variable dann bei den betreffenden Objekten ganz normal bei Animation Sichtbarkeit verwende.

    Soll Dein Button tatsächlich nur für genau einen von vielen Benutzern sichtbar werden?
    Dann könntest Du extra nur für diesen einen Benutzer eine eigene Benutzergruppe nutzen oder neu anlegen.

    Du könntest Dich auch an das Ereignis "Benutzerwechsel" hängen und da ein Skript aufrufen, was den aktuellen Benutzername liest und davon abhängig einer Steuervariable für die Sichtbarkeit einen Wert zuweist:
    Code:
    Dim user
    
    GetUserName user  'aktuell angemeldeten Benutzername lesen
    If user = "chipset" Then
      SmartTags("showMySpecialButton") = 1  'Button sichtbar schalten
    Else
      SmartTags("showMySpecialButton") = 0  'Button unsichtbar schalten
    End If
    Die Variable "showMySpecialButton" verwendest Du dann bei der Animation > Sichtbarkeit Deines Buttons, dann ist der nur sichtbar, solange der Benutzer "chipset" angemeldet ist. Willst Du die Information, daß der Benutzer "chipset" angemeldet ist, auch noch anderswo verarbeiten, dann kannst Du die Variable auch allgemeiner "chipset_ist_angemeldet" nennen.

    Mit der Benutzergruppen-Nummer oder der Abfrage des genauen Benutzernamens kann man Objekte so sichtbar schalten, daß angemeldete Admins die nicht zu sehen bekommen... ich habe immer eine eigene Benutzergruppe "Programmierer" für solche Zwecke.


    Übrigens brauchst und solltest Du das Benutzer-Passwort nicht verarbeiten, sonst müßtest Du bei Passwort-Änderung das Runtime-Projekt ändern. Und: Wenn der Benutzer angemeldet ist, dann wird er wohl auch das korrekte Passwort benutzt haben.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

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

    chipset (15.10.2014)

  8. #7
    Registriert seit
    17.01.2011
    Beiträge
    88
    Danke
    6
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Ok ich glaub jetzt passt alles. Danke
    Geändert von chipset (15.10.2014 um 13:42 Uhr)

  9. #8
    Registriert seit
    27.04.2006
    Ort
    Sauerland
    Beiträge
    626
    Danke
    183
    Erhielt 88 Danke für 81 Beiträge

    Standard

    Naja, anstatt eine variable anzulegen, könnte er auch direkt die properties bestimmen.
    Die Kunst in der Personalführung ist es
    die Mitarbeiter so über den Tisch zu ziehen,
    dass sie die Reibungshitze als Nestwärme empfinden.

  10. #9
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.197
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von repök Beitrag anzeigen
    Naja, anstatt eine variable anzulegen, könnte er auch direkt die properties bestimmen.
    Das ist leider keine gute Idee - einmal Bildwechsel oder erneuter Bildaufbau und die Properties sind wieder auf Startwert. Man müßte dann bei jedem "Bild aufgebaut" die Zuweisungen der Properties erneut ausführen und sich dazu den letzten Wert in Variablen merken ...

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  11. #10
    Registriert seit
    27.04.2006
    Ort
    Sauerland
    Beiträge
    626
    Danke
    183
    Erhielt 88 Danke für 81 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ist das so? ich hab das verchiedenlich so gemacht - das ist mir noch nicht aufgefallen.
    Die Kunst in der Personalführung ist es
    die Mitarbeiter so über den Tisch zu ziehen,
    dass sie die Reibungshitze als Nestwärme empfinden.

Ähnliche Themen

  1. Mit C-Skript leeren String von S7 abfragen
    Von SchnitzelMatzi im Forum HMI
    Antworten: 2
    Letzter Beitrag: 07.10.2014, 07:04
  2. Antworten: 4
    Letzter Beitrag: 19.08.2014, 11:39
  3. TIA Bildbaustein-Instanzname in internem Skript abfragen
    Von mostrich im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 24.04.2014, 10:50
  4. Antworten: 0
    Letzter Beitrag: 14.11.2011, 10:06
  5. Antworten: 7
    Letzter Beitrag: 18.12.2009, 09:23

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •