NEU! UPGRADE IP 10 verfügbar!
Optimierte Darstellung von VISU Editor und VISU Client - sowie viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/8HzePCm3

Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Ab sofort kann jeder die neue VISU & IFTTT testen. Info: viewtopic.php?f=8&t=5074

Release V 4 am 15. Juni 2024
Es gibt nun einen fixen Termin. Info: viewtopic.php?f=8&t=5117

NEU! Ausführliches Video Tutorial zur IP 10
Jetzt werden alle Fragen beantwortet. Das Video: https://youtu.be/_El-zaC2Rrs

[Gelöst] Frage zu Break in Custom Logik!

Informationen und Diskussionen über Logik-Engine und Logik-Editor
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
Antworten

Ersteller
Robert_Mini
Reactions:
Beiträge: 3744
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1168 Mal
Danksagung erhalten: 2076 Mal

Frage zu Break in Custom Logik!

#1

Beitrag von Robert_Mini »

Hallo @S. Kolbinger!

Ich hätte noch eine Frage zu Break.
Wenn man Break an das Ende eine Custom-Logik stellt, wird dann die Logikzelle noch bis dorthin berechnet (so wie mit update), aber die neuen Werte nicht mehr gesendet.
Bin grad bei den letzten Schritten der Beschattungslogik (die ich bald hier teilen werde) und möchte dort ein "Hold" implementieren, das zwar weiter mithört und somit am Ende des Hold wieder richtig weiter läuft (inkl. Timern!).

Stimmt das so? (Kommt dann auch gleich in die KB!)

EDIT:
Dies ist ein spezielles Modul, das die weitere Ausführung einer (Custom-) Logikzelle abbricht, sobald ein Wert auf einem der Eingänge eintrifft. Beim Abbruch wird auch kein Ausgang mehr beschrieben!
Ich hoffe, das diese Beschreibung falsch ist: sollte eigentlich nur bei True abbrechen, oder?

Danke
Robert
Zuletzt geändert von Robert_Mini am Mo Okt 21, 2019 8:51 pm, insgesamt 1-mal geändert.
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 637 Mal
Danksagung erhalten: 775 Mal

#2

Beitrag von Robosoc »

Ja, eine Logik wird bis zu einem Break, bei dem der ausgewertet Wert = true ist, durchgearbeitet und zeilenweise ausgeführt. Es muss nicht unbedingt ein Eingang sein, es kann auch eine rein interne Variable sein.

Und wenn Ausgänge in den Zeilen vorher beschrieben werden, werden diese auch extern getriggert und ggf. gesendet.

Ist die Variable = false, werde auch Teile nach dem break bearbeitet.

Es wird der Zustand ausgewertet, nicht die Flanke. Aber ich weiß nicht ob das jetzt relevant ist.

Der TWS Logik Editor verhält sich hier rein logisch und zeilenweise und nicht wie eine SPS, in der ein Prozessausgangsabbild geschrieben wird.

So hat es S. Kolbinger auch schon mal bestätigt und ich habe es mehrfach getestet.
Zuletzt geändert von Robosoc am Mo Okt 21, 2019 9:19 pm, insgesamt 1-mal geändert.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

Ersteller
Robert_Mini
Reactions:
Beiträge: 3744
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1168 Mal
Danksagung erhalten: 2076 Mal

#3

Beitrag von Robert_Mini »

Hab grad einen Fehler in der KB gefunden:
["Break", "$Eingang"] funktioniert nicht. es muss ["Break", ["$Eingang"]] verwendet werden.

@S. Kolbinger: Stimmt das? Können mehrere Eingänge direkt verwendet werden?
["Break", ["$Eingang", $Eingang2]]

Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

S. Kolbinger
Elaborated Networks
Reactions:
Beiträge: 588
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 82 Mal
Danksagung erhalten: 559 Mal

#4

Beitrag von S. Kolbinger »

Hallo Robert,
Robert_Mini hat geschrieben: Mo Okt 21, 2019 9:36 pm Stimmt das? Können mehrere Eingänge direkt verwendet werden?
["Break", ["$Eingang", $Eingang2]]
Das ist genau so vorgesehen. Die Eingänge werden "Oder" verknüpft, d.h. wenn mindestens einer der Eingänge true ist, bricht die Ausführung an dieser Stelle ab.


Übrigens:
Robert_Mini hat geschrieben: Mo Okt 21, 2019 8:49 pm Wenn man Break an das Ende eine Custom-Logik stellt, wird dann die Logikzelle noch bis dorthin berechnet (so wie mit update)
Bei einem Wert an einem Eingang mit U(update only) wird gar nix berechnet, kein einziges Modul. Es wird lediglich der Wert an den entsprechenden Level übertragen.
Gruß,
Stefan K.

Ersteller
Robert_Mini
Reactions:
Beiträge: 3744
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1168 Mal
Danksagung erhalten: 2076 Mal

#5

Beitrag von Robert_Mini »

Super, danke! Das ergibt ja tolle Möglichkeiten!!!

Danke für die rasche Antwort (bitte auch an die Erholung denken!)!
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

Ersteller
Robert_Mini
Reactions:
Beiträge: 3744
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1168 Mal
Danksagung erhalten: 2076 Mal

#6

Beitrag von Robert_Mini »

So KB ist nun auch korrekt und um die ODER-Möglichkeit ergänzt.

lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297
Antworten

Zurück zu „Logikengine & Logik-Editor“