WinnCC Dynamisierung mit VBA oder C

franzlurch

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

ich versuche gerade in WinCC was mit ner VBA-Aktion zu dynamisieren aber ich seitere gnadenlos. Ich will des Username des Users abfragen welcher gerade eingeloggt ist, und dementsprechend Buttons sichtbar oder unsichtbar schalten. Dazu nutze ich die Interne Variable @CurrentUserName welche ich hier mit dem Benutzernamen service vergleiche. Wahrscheinlich ist mein Quellcode total falsch, deshalb bin ich für jede Hilfe dankbar. Ich habs auch schon mit C versucht über die interne C_bib funktion strncmp aber da hat auch nix funktioniert. Ihr könnt mir bestimmt weiterhelfen.

Hier mal mein VBA Code der Dynamisierung von meinem Button4 -> sonstiges -> Anzeige


Function Visible_Trigger(Byval Item)
Dim CurrentUserName
Set CurrentUserName = HMIRuntime.Tags("@CurrentUserName")

If CurrentUserName="service" Then
Visible=True
Else
Visible=False
End if
End Function
 
@CurrentUser enthält den Loginnanmen
@CurrentUserName den vollständigen Namen

Vielleicht hilft das schon
 
Dynamisieren

Hi marlob,

wenn ich einen Button dynamisieren will kann ich das doch über dessen Eigenschaften machen oder muss ich dazu ein global script schreiben? ich habe das Gefühl, dass die Caktion in dem Button nihct abgearbeitet wird. Passiert das nur wenn ich auf den Butten klicke?Glaube ich eigentlich nicht. Wie kann ich noch einen Button verschwinden lassen, wenn nihct der richtige USer eingeloggt ist?

Chris
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi marlob danke das mit der Farbe funtioniert. Noch eine Frage. Muss ich, wenn ich eine VAriable einlesen und bearbeiten will spezielle Funbtionen verwenden im C Compiler???
 
ich bekomms einfach net hin auf eine variable zuzugreifen. immer wenn ich auf den gelben butten im c-compilerdrücke und eine Variable einfür meckert der rum. Muss ich irgenwie mit den Get befehlen arbeiten um die Variablen ins C Progrmm zu bekommen???
 
Zu deinem anfänglichen Problem mit VB-Skript.

Du musst nachdem du die Variable "eingelesen" hast, noch den Wert der Variable "einlesen".

Also folgendermassen funktioniert die Dynamisierung:

Function Visible_Trigger(Byval Item)

Dim CurrentUserName,Button

Set CurrentUserName = HMIRuntime.Tags("@CurrentUserName")

CurrentUserName.Read()


Set Button=ScreenItems.Item("Button1")

If (CurrentUserName.Value="xxx") Then
Button.Visible=True
Else
Button.Visible=False
End If

End Function
 
@chrissi52000
Die Lösung ist aber ziemlich unflexibel, da ich immer nur auf einen User abfrage.
Wenn mehrere dazu kommen und die diesen Button auch bedienen sollen, wirds umständlich.
Daher besser dem Button eine Berechtigungstufe zuweisen und darauf abfragen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@chrissi52000
Die Lösung ist aber ziemlich unflexibel, da ich immer nur auf einen User abfrage.
Wenn mehrere dazu kommen und die diesen Button auch bedienen sollen, wirds umständlich.
Daher besser dem Button eine Berechtigungstufe zuweisen und darauf abfragen.

Ja, das habe ich auch, aber der Kunde, möchte leider, daß Buttons unsichtbar sind, die nicht bedienbar sind. Dazu haben wir auch noch den Webnavigator am Start, da ist die User-Geschichte leider eher noch umständlicher, bis gar nicht lösbar. Ich habs jedenfalls erstmal aufgegeben, du Buttons unsichtbar zu machen, wenn sie ihn weiterhin stören, lösche ich sie und es gibt ein extra Fenster für die Leute, mit der entsprechenden Berechtigung.

Die Lösung von Chrissi52000 geht beim Webnavigator, glaube ich, ohnehin nicht!
 
Die Rechteverteilung im Webnavigator ist eine einzige Katastrophe. Für den Preis hätte ich auch mehr erwartet. Aber was soll ich mich aufregen. Siemens halt.
 
Die Rechteverteilung im Webnavigator ist eine einzige Katastrophe. Für den Preis hätte ich auch mehr erwartet. Aber was soll ich mich aufregen. Siemens halt.

*ACK*

An der Stelle, ist wohl im Notfall eine eigene Userverwaltung fast am Einfachsten. Wenns denn unbedingt sein muß.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Klar wird das dann etwas umständlicher wenn mehrere Benutzer dazu kommen.
Wobei man das ja dann auch über ne switch case machen könnte.

Ich denke mal es ging ja auch mehr darum was an der Skript Syntax falsch war und es nicht ging.

Aber warum geht das mit dem Webnavigator nicht?
Wird hier der angemeldete User nicht in der Variable hinterlegt?
 
Ich habs nicht mehr ganz im Gedächtis, aber ich glaube, man kommt da irgendwie nicht richtig ran. Man kann ja auch nicht normal einloggen, wie auf einem Client, sondern nur beim Start des iexplorers, über ein Loginfenster.

Der Webclient kann nicht alles.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
"Jedes Benutzerkonto enthält das jeweilige Startbild und die Berechtigungsstufe (alle oder keine Rechte).
Eine feinere Auflösung der individuellen B&B-Berechtigungen kann mit der Projektierung individueller Startbilder erreicht werden. Dem Anwender kann nach der Anwahl des Servers beispielsweise ein Projektbild übermittelt werden, welches keine oder nur gezielte Bildwechsel zulässt. Durch mehr oder weniger zusätzlichen Projektierungsaufwand ist es also möglich, die B&B-Möglichkeiten eines jeden Anwenders genau festzulegen."


Umständlicher gings ja echt nicht mehr.
Wenn ich jetzt mehrere Benutzer habe die in einem Bild nur verschiedene Aktionen durchführen dürfen, muss ich das Bild dann also so oft anlegen und konfigurieren, wie ich Benutzer habe.

Bei dem Preis ist das schon etwas lachhaft.
 


Umständlicher gings ja echt nicht mehr.
Wenn ich jetzt mehrere Benutzer habe die in einem Bild nur verschiedene Aktionen durchführen dürfen, muss ich das Bild dann also so oft anlegen und konfigurieren, wie ich Benutzer habe.

Bei dem Preis ist das schon etwas lachhaft.
Da kann ich nur sagen
*ACK*
 
Indirekte Variablen

Guten Morgen allerseits,

ich find gut dass Ihr hier noch bischn weiter diskutiert ich nämlich noch ne Frage:oops: . Kann man das irgendwie verhindern, dass sich interne Variablen nach beendigung der RT löschen??

Chris
 
Zurück
Oben