Insider Preview 3 veröffentlicht

Bild

Wir haben seben die Insider Preview 3 zur Version 4.8 veröffentlicht
Komplett überarbeiteter Logik Katalog mit verbesserter Übersicht und Suche für einfachere Auswahl der Lgik Module
Sechs neue Logiken für Farbraum-Umrechnungen (siehe Bild)
Fünfzehn neue Logiken aus der Community
Damit sind es nun 99 Logiken
Einundzwanzig neue winterliche Hintergründe für die VISU
Verbesserte Mouse-Over im VISU Editor für klarere Information
Das HTTP-API Subsystem liefert nun im Header stets Header Access-Control-Allow-Origin = * aus
Der Modbus Register Auswahlassistent erlaubt nun verschiedene Sortierungen beim Anlegen einer Transaktion
Viele Bugfixes


Release Notes: https://elabnet.atlassian.net/wiki/x/AYDD0

AKTION: Wir haben noch viele tolle Updates und 150 Videos (und 800 Wiki Seiten) geplant. Bitte unterstütze uns mit einem Software-Wartungsvertrag, damit wir dieses alles erreichen können. Und damit Dein Server weiterhin Updates, Upgrades und Support erhält. Jetzt in der Aktion schenken wir Dir den Insider Club mit derselben Laufzeit wie der am längsten laufende aktive Wartungsvertrag dazu - bei sofortigem Laufzeitbeginn. Damit profitierst Du auch von einer vorzeitigen Verlängerung. Alle Infos: https://elabnet.atlassian.net/wiki/x/GQB8z

[Gelöst] [V1.6.0 IP1] Genaues Verhalten vom Custommodul Monoflop

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
Robosoc
Beiträge: 1908
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 644 Mal
Danksagung erhalten: 798 Mal

[V1.6.0 IP1] Genaues Verhalten vom Custommodul Monoflop

#1

Beitrag von Robosoc »

Frage geht vermutlich an @S. Kolbinger: Was macht ein Monoflop, wenn der Triggereingang false ist und die Triggerbedingung = steigende Flanke ist?

Ich hätte gedacht, dass nichts passiert. Kann es aber sein, dass der Ausgang dann trotzdem mit False beschrieben wird?

Die Antwort könnte mir helfen zu verstehen, warum mein Vorschlag von heute in diesem Beitrag nicht funktioniert:
viewtopic.php?f=65&t=2132

Dort habe ich folgenden Code

Code: Alles auswählen

["Monoflop","$gate_1",0,"$out","$time_1",2],
["Monoflop","$gate_2",0,"$out","$time_2",2],
.
.
.
["Monoflop","$out",0,"$next","$delay",4]
Gleich zu Beginn, wenn der erste Monoflop in der Liste positiv getriggerte wird ($gate_1 hat steigende Flanke), wird die Variable $next true gesetzt. Das verstehe ich nicht, da Sie eigentlich nur true werden sollte, wenn $out eine fallende Flanke hat.

Wenn aber der zweite Monoflop in der Liste oben die Variable $out sofort wieder false setzt, obwohl der zweite Monoflop nie aktiviert war, dann würde ich das Verhalten verstehen. Das Verhalten im Monoflop würde ich aber als sehr unschön bezeichnen...und dann müssten wir es in der Beschreibung des Bausteins ergänzen.
Zuletzt geändert von Parsley am Fr Apr 11, 2025 10:24 pm, insgesamt 4-mal geändert.
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK

Robert_Mini
Beiträge: 3914
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1287 Mal
Danksagung erhalten: 2226 Mal

#2

Beitrag von Robert_Mini »

Hallo Sven!

Meines Wissens setzt jedes Monoflop seinen Status bei jedem Aufruf.
In deinem Fall bedeutet das ein out1, out2 etc. und dann ein or (out1, out2)

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

MiniMaxV2
Beiträge: 278
Registriert: Sa Jan 12, 2019 8:41 pm
Wohnort: Bremen
Hat sich bedankt: 342 Mal
Danksagung erhalten: 151 Mal

#3

Beitrag von MiniMaxV2 »

Hi Sven,
ich hätte es jetzt auch so wie Robert gesagt. Aus der Beschreibung geht mmn. hervor (wenn auch etwas indirekt), dass der Ausgang nur gesetzt ist, wenn der Timer aktiv ist (wenn der nicht aktiv ist, ist er ja quasi "abgelaufen"):
"Nach dem Empfang eines Triggers am Eingang Trigger wird der Ausgang eingeschaltet und nach Ablauf der Verzögerungszeit wieder ausgeschaltet."
LG
Hans Martin
timberwolf413 (950Q) - VPN offen - reboot erlaubt / timberwolf610 (950Q) - VPN offen - reboot erlaubt

Ersteller
Robosoc
Beiträge: 1908
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 644 Mal
Danksagung erhalten: 798 Mal

#4

Beitrag von Robosoc »

Robert und Hans Martin, danke Euch, Ihr habt recht. Es funktioniert jetzt auch. Ich werde die Beschreibung in der KB nun noch ein wenig eindeutiger machen.
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK

Robert_Mini
Beiträge: 3914
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1287 Mal
Danksagung erhalten: 2226 Mal

#5

Beitrag von Robert_Mini »

Danke für die Rückmeldung und KB-Update!!

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

Franky
Beiträge: 203
Registriert: Di Dez 24, 2024 1:24 pm
Hat sich bedankt: 137 Mal
Danksagung erhalten: 100 Mal

#6

Beitrag von Franky »

Wir sollten die Doku vielleichtergänzen um den Punkt

"Wann ändert sich der Wert von "$OutB" (dem Ausgang von Monoflop)?"

- "$OutB" ist bereits mit Start des Logikdurchlaufs aufgrund des ausgeführten Triggers durch den Monoflopd-Timerablauf geändert

oder

- nach erneutem Aufruf des Monoflops wird die Varisable erst geändert

Ich bin da grad so verunsichert (danke LLM :->) dass ich das jetzt erstmal testen muss.

Lieben Gruß

Frank

Edit: Sorry für das Reaktivieren dieses Threads, aber ich fand, dass es ins Thema passt (Verhalten Monoflop und etwaige Dokuanpassung)
Zuletzt geändert von Franky am Mo Mär 31, 2025 10:14 pm, insgesamt 3-mal geändert.
Timberwolf 3500L ID:1642; Support-VPN für ElabNET ist an.

Robert_Mini
Beiträge: 3914
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1287 Mal
Danksagung erhalten: 2226 Mal

#7

Beitrag von Robert_Mini »

Franky hat geschrieben: Mo Mär 31, 2025 9:45 pm Wann ändert sich der Wert von "$OutB" (dem Ausgang von Monoflop)
Aus meiner Sicht ist das Verhalten wie folgt:
  • "$OutB" ändert sich beim Triggern des Monoflops (Start, Reset) sofort => bis zum Aufruf des Moduls ist $OutB false, danach true.
  • Wird eine Logik durch das abgelaufene Monoflop getriggert, so ist "$OutB" bereits mit Start des Logikdurchlaufs FALSE.
=> Damit kann man durch zwischenspeichern von $OutB auf $OutB_Last vor dem Monoflop und Vergleich von $OutB und $OutB_Last nach dem Aufruf in der Logik auswerten, ob das Monoflop abgelaufen ist.

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

Franky
Beiträge: 203
Registriert: Di Dez 24, 2024 1:24 pm
Hat sich bedankt: 137 Mal
Danksagung erhalten: 100 Mal

#8

Beitrag von Franky »

Robert_Mini hat geschrieben: Mo Mär 31, 2025 10:48 pm
  • 1)"$OutB" ändert sich beim Triggern des Monoflops (Start, Reset) sofort => bis zum Aufruf des Moduls ist $OutB false, danach true.
  • 2)Wird eine Logik durch das abgelaufene Monoflop getriggert, so ist "$OutB" bereits mit Start des Logikdurchlaufs FALSE.
=> Damit kann man durch zwischenspeichern von $OutB auf $OutB_Last vor dem Monoflop und Vergleich von $OutB und $OutB_Last nach dem Aufruf in der Logik auswerten, ob das Monoflop abgelaufen ist.
Meintest Du den zweiten Punkt anders rum, weil dann würde es zu deiner Schlussfolgerung passen, oder?

Es ist so (getestet): Timer läuft ab, Out hat vor Aufruf von Monoflop noch TRUE. Mit Aufruf von Monoflop wird Out FALSE

Code: Alles auswählen

{
  "Level": [
    // --- Konstanten ---
    ["$ConstTrue", "bool", true],
    ["$ConstFalse", "bool", false],
    // --- Steuerungs-Eingänge ---
    ["$StartTrigger", "bool", false], // Eingang zum Starten des Timers
    ["$TimerDuration", "float", 5.0],  // Testdauer für den Timer (z.B. 5 Sekunden)
    // --- Monoflop-Status ---
    ["$MonoflopOut", "bool", false],   // Die eigentliche Ausgangsvariable des Monoflops
    // --- Test-Variablen ---
    ["$PreMonoflopOut", "bool", false] // Wert von $MonoflopOut *bevor* das Monoflop-Modul lief
    // $MonoflopOut selbst repräsentiert den Wert *nachdem* das Monoflop-Modul lief  <-- Kein Komma hier am Ende des letzten Array-Elements
  ], // Komma nach dem Level-Array ist korrekt
  "Module": [
    // 1. Wert *vor* dem Monoflop erfassen
    ["Latch", "$MonoflopOut", "$PreMonoflopOut", "$ConstTrue", 0], // Komma nach dem Latch ist korrekt

    // 2. Monoflop ausführen
    ["Monoflop", "$StartTrigger", "$ConstFalse", "$MonoflopOut", "$TimerDuration", 2] // Kein Komma hier am Ende des letzten Array-Elements
  ], // Komma nach dem Module-Array ist korrekt
  "Input": [
    ["Start Timer", "Eingang zum einmaligen Starten des Monoflops (TRUE-Impuls)", "$StartTrigger", "c"], // Komma ist korrekt
    ["P: Timer Dauer", "Testdauer in Sekunden", "$TimerDuration", "u"] // Kein Komma hier am Ende
  ], // Komma nach dem Input-Array ist korrekt
  "Output": [
    ["Pre-Monoflop Value", "Wert von MonoflopOut BEVOR das Monoflop-Modul lief", "$PreMonoflopOut", "c"], // Komma ist korrekt
    ["MonoflopOut Value", "Wert von MonoflopOut NACHDEM das Monoflop-Modul lief", "$MonoflopOut", "c"] // Kein Komma hier am Ende
  ] // KEIN Komma nach dem letzten Array (Output)
} // Geschweifte Klammer schließt das JSON-Objekt
Bild
Ausgabe1: Pre
Ausgabe2: Post
Gruß

Franky
Zuletzt geändert von Franky am Mi Apr 02, 2025 3:43 pm, insgesamt 3-mal geändert.
Timberwolf 3500L ID:1642; Support-VPN für ElabNET ist an.

Robert_Mini
Beiträge: 3914
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1287 Mal
Danksagung erhalten: 2226 Mal

#9

Beitrag von Robert_Mini »

Hallo!

Du hast recht, ich habe irgendwie mit den Entwürfen nicht richtig gespeichert, denn ich hatte genau diese Zeile bereits angepasst.

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

Franky
Beiträge: 203
Registriert: Di Dez 24, 2024 1:24 pm
Hat sich bedankt: 137 Mal
Danksagung erhalten: 100 Mal

#10

Beitrag von Franky »

super vielen Dank! Das passt ja dann zum Test... ob wir die Doku präzisieren müssen (I don't know).

Was auch noch nicht ganz so klar aus der Doku ist, ob bspw. bei der Statemachine für state_alt und state_neu neben Konstanten auch Variablen zulässig sind. Das scheint ja nicht bei allen Eingangswerte von allen Modulen austauschbar zu sein.

LG

Franky
Timberwolf 3500L ID:1642; Support-VPN für ElabNET ist an.
Antworten

Zurück zu „Logikengine & Logik-Editor“