WinCC Unified Interne Variablen in js nicht möglich?

schwimmer

Level-3
Beiträge
1.660
Reaktionspunkte
574
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Unified-Experten,
kann es sein, dass interne Variablen in Skripten nicht funktionieren oder liegt es an der Simulation im Demo-Mode?
TIA V19 Upd2; MTP1900
Mir fehlt gerade die Hardware und ich wollte meine ersten Schritte mit js probieren und habe an mir selbst gezweifelt.
Nachdem nichts klappte, wollte ich einfach einer Variablen auf Knopfdruck einen Wert zuweisen
1718810482747.png
was allerdings auch nicht funktionierte. TestVar hatte ich als interne Variable deklariert und im Bild angezeigt. Im TIA hatte ich dann die Simulation vom Panel gestartet, mit der Meldung das diese im Demo-Modus läuft, weil Runtime PC Lizenzen fehlen.
Dann habe ich die Variable in einem DB angelegt und erst PLCSim gestartet und dann die Simulation vom Panel, schon wurde der Variablen der Wert zugewiesen.

Meine Frage wäre jetzt ob das an der Simulation und den fehlenden Lizenzen liegt oder können in den Skripten generell keine internen Variablen beschrieben werden?
 
Hi,

also unter V18 klappte es noch so. Auch in der Simulation auf meinem PC.

Liegts eventuell an dem Apostroph (') statt den Anführungszeichen(") beim Variablennamen?
 
Mit dem Schlüsselwort Tags() sagst du ja, dass du damit eine SPS oder HMI Variable meinst.

Wenn das nur eine JS Script-interne Variable werden soll:
let tag1 = 1234;
 
Mit dem Schlüsselwort Tags() sagst du ja, dass du damit eine SPS oder HMI Variable meinst.

Wenn das nur eine JS Script-interne Variable werden soll:
let tag1 = 1234;
Die Variable soll nicht nur im Skript verwendet werden, ich möchte sie auch im HMI anzeigen bzw. weiter verarbeiten.
Wenn ich die Variable (tag1) als interne HMI-Variable deklariere und sie auf einem Bild anzeigen möchte, wird der Wert nicht angezeigt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich glaube, du verdrehst im Kopf, was hier die HMI-Variable und was hier die Skript-Variable ist.

Mit let tag1 = Tags('TestVar') weist du der Variable tag1 in deinem Skript den Wert und die Eigenschaften der HMI-Variable "TestVar" zu. Wenn du jetzt noch tag1 als HMI-Variable deklarierst, hat das AFAIK nichts mit der Variable aus deinem JS-Skript zu tun
 
Mein Fehler war wohl, dass ich dachte einer HMI-Variablen, einfach einen Wert zuweisen zu können.
Wenn ich es richtig verstehe, dann muss eine Variable, damit ich sie im HMI anzeigen oder der PLC weiterverarbeiten kann, explizit gelesen bzw. geschrieben werden. Mit dem Snippets Read tag bzw. Write tag
Oder gibt es da noch eine elegantere Lösung?
 
Zurück
Oben