WinCC Unified Benutzerabfrage im Unified-Skript

Ay93man

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich versuche, in einem Siemens HMI Unified-Projekt ein Skript zu schreiben, das im Aufgabenplaner alle 100 ms ausgeführt wird.


Das Skript soll prüfen, welcher Benutzer aktuell angemeldet ist.
Wenn ein bestimmter Benutzer (z. B. „user1“) angemeldet ist, soll eine interne Variable mit dem Namen user auf den Wert 1 gesetzt werden.
Bei allen anderen Benutzern soll die Variable auf 4 gesetzt werden.


Hier ist mein bisheriger Code:


export function Task_Aufgabe_1_Update() {
if ("@UserName" === 'user1') {
HMIRuntime.Tags.SysFct.SetTagValue("user", 1);
} else {
HMIRuntime.Tags.SysFct.SetTagValue("user", 4);
}
}

Leider funktioniert das Skript nicht wie erwartet.
Kann mir jemand helfen und sagen, wo mein Fehler liegt?
 
Hallo,

du musst zuerst auch über das ReadTag die Variable @Username auslesen, und diesen dann mit einem String vergleichen.
Und der Vergleich sind nur 2 "=" Zeichen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Rabi,
Vielen Dank für die Rückmeldung!


Ich habe versucht, den Benutzernamen mit ReadTag("@UserName") auszulesen, wie vorgeschlagen. Leider bekomme ich dabei in einen Syntaxfehler.
Könntest du mir bitte genau zeigen, wie der Code richtig geschrieben sein muss?
 
Prinzipiell gibt es eine gute Möglichkeit die JS-Befehle in TIA kennenzulernen.

Versuch mal im Script-Fenster einen Rechtsklick, da gibt es sehr viele vorgefertigte Funktionen die teilweise nicht schlecht kommentiert sind, bei komplexeren Sachen gibt es auch ein gutes Handbuch dazu.

Trotzdem, im zweiten Screenshot der Beispielcode.

1759248000728.png1759248074410.png
 
Du wirst im Kontext des Aufgabenplaners allerdings auf das Problem stoßen, dass der Benutzername eine clientseitige Eigenschaft ist.
Ein Zugriff aus dem Server Kontext (Aufgabenplaner) wird nicht funktionieren.

Du kannst das aber mit einer Subscription oder einem Intervall im UI-Kontext lösen.

Edit:
Hab den obligatorischen Hinweis zu "Das 💩 Logging ist nicht nur Deko (⁠╯⁠°⁠□⁠°⁠)⁠╯⁠︵⁠ ⁠┻⁠━⁠┻" vergessen.
Links/Beispiel siehe z.B.
 
Zuletzt bearbeitet:
Zurück
Oben