WinCC Unified Script wird ungewollt ausgeführt, Probleme beim Syntax?

Bekanor

Level-2
Beiträge
13
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,
Tia V20
Unified Comfort Panel

Plan: SPS meldet Nutzer an, schaltet Netzwerkport am Panel ein oder aus, meldet Nutzer ab.

Die zugehörigen Skripte habe ich auf das Bild 1 in die Dynamisierung eingebunden, Triggervariable definiert. Aus der SPS heraus funktioniert das auch soweit gut.

Problem: Wenn ich über Webzugriff auf das HMI zugreife, werde ich direkt wieder ausgeloggt, die Skripte scheinen dies zu steuern da ich den User aus der SPS-Anmeldung kurz sehe [Anzeigefeld angemeldeter Nutzer]. Auch wenn ich einen Bildwechsel ausführe durchlaufen die Skripte im Hintergrund.
Das Panel ist ansonsten leer, es gibt keine weiteren Funktionen im Hintergrund.

Nun wollte ich den Skripten einfach die Bedingung einer weiteren SPS-Variablen geben, dann wäre es egal wie oft sie aufgerufen werden, ohne meine Schrittkette am Anfang sollte dann nichts gehen.

Die If Funktion bekomme ich aber nicht zum laufen und da finde ich irgendwie keine Hilfe auf meine doch recht simple Frage.

Zum Test habe ich nun einen Button genommen, und in den Ereignissen -> Drücken folgendes Skript drinne
Code:
{export async function Schaltfläche_10_OnDown(item, x, y, modifiers, trigger) {
if (tags("GlobalDB_remote_ein").read() == true)  {
HMIRuntime.Tags.SysFct.IncreaseTag("Drue_Zaehler", 1);
}
}

Eigentlich sollte der Zähler nun hochzählen wenn "GlobalDB_remote_ein" =1 und Button gedrückt wird. Funktioniert nicht, und da hätte ich gerne die Hilfe.


Kann mir hier jemand helfen auf den richtigen Pfad zu kommen da ich nun langsam echt festhänge und ich auch keine Ahnung mehr habe wo ich weitersuchen sollte.
Oder jemand einen ähnlichen Aufbau mal gemacht und mein Fehler liegt ganz wo anders?


Soweit mal Danke
 
Problem: Wenn ich über Webzugriff auf das HMI zugreife, werde ich direkt wieder ausgeloggt, die Skripte scheinen dies zu steuern da ich den User aus der SPS-Anmeldung kurz sehe [Anzeigefeld angemeldeter Nutzer]. Auch wenn ich einen Bildwechsel ausführe durchlaufen die Skripte im Hintergrund.
Du denkst dran, dass du bei Web Zugriff dann zwei Client-Instanzen für die Runtimes hast?
Wie entscheidest du auf welchen Client die SPS wirken soll?

Plan: SPS meldet Nutzer an, schaltet Netzwerkport am Panel ein oder aus, meldet Nutzer ab.
Warum den Benutzer eigentlich überhaupt anmelden?
Ich bin nicht sicher ob ich verstehe was du machen willst o_O

Funktioniert nicht, und da hätte ich gerne die Hilfe.
Pack mal nen Trace drum & schau dir die Fehlermeldung an.
Du hast da nen Tippfehler drin ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Schau Dir auch mal den folgenden FAQ an möglicherweise hilft er Dir weiter
Automatische Anmeldung am HMI Unified Panel über ID-Schlüsselschalter
https://support.industry.siemens.com/cs/de/de/view/109963220

Mach auch mal eine Trace Ausgabe rein und überprüfe in dem Ausgabe mit dem TraceViewer
Prüfe auch ob Fehlermeldungen kommen
Trace Viewer in WinCC Unified verwenden
 
So, Moin nochmal.
Das mit dem Trace hatte ich bislang gar nicht auf dem Schirm, hatte mit Chrome rumprobiert, aber eher Ergebnislos weil die PC Runtime nicht richtig startet und ich in den Devtools die Sktipte nicht finde.

Nach Kampf und Suche bezüglich Trace habe ich dann immerhin mal die Fehlermeldung "Uncaught ReferenceError: tags is not defined" rausgekitzelt. Recht verstehen wollte ich es nicht, nach Versuchen mit 'Read tag' hat er mir das ".read" genauso angemeckert.

Dann habe ich feststellen müssen das Gross/Klein-Schreibung im Skript wichtig ist.
Ist mir etwas rätselhaft wieso, warum Tia das nicht anmeckern kann und ich das nirgendwo als Fehlerursache finde.. Naja es funktioniert, und über das Trace bin ich drauf gekommen. Schon mies wenn es an so einer Kleinigkeit fast scheitert..

Ich wollte/will halt aus der Ferne die 2. Netzwerkschnittstelle am Panel schalten, das benötigt Admin-User. Aber nicht jeder Panelnutzer soll Admin-User haben, daher erzwinge ich die Abmeldung nach Schaltung.

Danke, hat mir geholfen und bei all der Suche habe ich bestimmt auch etwas gelernt
:cool:
 
Nach Kampf und Suche bezüglich Trace habe ich dann immerhin mal die Fehlermeldung "Uncaught ReferenceError: tags is not defined" rausgekitzelt. Recht verstehen wollte ich es nicht, nach Versuchen mit 'Read tag' hat er mir das ".read" genauso angemeckert.

Dann habe ich feststellen müssen das Gross/Klein-Schreibung im Skript wichtig ist.
Ist mir etwas rätselhaft wieso, warum Tia das nicht anmeckern kann und ich das nirgendwo als Fehlerursache finde.. Naja es funktioniert, und über das Trace bin ich drauf gekommen. Schon mies wenn es an so einer Kleinigkeit fast scheitert..
Es würde dich ja nichts daran hindern ein Objekt oder Variable "tags" zu nennen.
Genauso könnte dieses "tags" die Methode "read" haben.
Syntaktisch ist das zumindest (leider) nicht verboten.
Ich wollte/will halt aus der Ferne die 2. Netzwerkschnittstelle am Panel schalten, das benötigt Admin-User. Aber nicht jeder Panelnutzer soll Admin-User haben, daher erzwinge ich die Abmeldung nach Schaltung.
Warum brauchst du für SysFct.SetNetworkInterfaceState() bzw. SetzeNetzwertkInterfaceStatus einen User?
Funktioniert es nicht das einfach im Aufgabenplaner an die Trigger-Variable zu koppeln?
 
Zurück
Oben