Timing-Verhalten einer Funktions-Sequenz

Soundmodul für Fahrgeräusche (speziell für RC-Modelle). Der Nachfolger des USM-RC-2
Benutzeravatar
Werner_Fly
Beiträge: 144
Registriert: So 26. Jan 2020, 13:02

Timing-Verhalten einer Funktions-Sequenz

Beitrag von Werner_Fly »

Hallo,

ich habe bei meinem Projekt ein eigentümliches Verhalten, dessen Ursache ich bisher nicht klären konnte.

Um hier weiter zu kommen, ist es zunächst erforderlich, dass ich das genaue Verhalten einer Funktions-Sequenz ganz sicher kenne, in der sehr guten BA bleibt mir das im Zusammenhang mit der Besonderheit weiter unten unklar.

Daher hier die Erklärungen dazu:

Fkt.-Seq. 7_Start Failsafe_2022-07-16.jpg
Fkt.-Seq. 7_Start Failsafe_2022-07-16.jpg (100.59 KiB) 1490 mal betrachtet

Diese Fkt.-Seq. 7 aktiviert / deaktiviert eine Ansage, wenn über SUMD Failsafe auftritt.
Der eigentliche Failsafe-Warn-Sound ist in der Fkt.-Seq. 8, die am Ende gestartet wird.

Im störungsfreien Betrieb (kein Failsafe) ist Fkt.-Seq. 7 aktiv, so dass die Schleife in Zeilen 01 - 02 permanent läuft.
Die Fkts.-Seq. 8 wird dadurch ausgeschaltet (also keine Ansage).
Der Ausgang 10 wird nur zu Kontrollzwecken bei der Problemanalyse in der Diagnose benutzt.

Nun kommt der Störungsfall (Failsafe tritt auf) und damit wird die Fkt.-Seq. 7 inaktiv gesetzt, da deren Bedingung nicht mehr gegeben ist.
Damit stoppt die Schleife und geht zu Zeile 03, wo sie eine "Pause" von 0,05 sec macht.
Wenn sich weiter nichts verändert, dann wird in Schritt 05 die Fkts.-Seq. 8 mit der Warnansage für Failsafe ganz normal gestartet, so steht es ja auch in der BA.

Jetzt aber die eigentliche Frage:

Was passiert in Zeile 03, wenn innerhalb der 0,05 sec (also noch wärend der "Pause") die Bedingung für die Fkt.-Seq. 7 wieder erfüllt wird?

Läuft es innerhalb der Fkt.-Seq. 7 dann trotzdem normal bis zu Zeile 05 weiter (damit wird Fkt.-Seq. 8 mit der Failsafe-Ansage gestartet) oder startet die Fkt.-Seq. 7 dann sofort neu am Anfang, ohne zuvor bis zum Ende zu laufen (womit die Fkt.-Seq. 8 nicht gestartet würde)?

Danke im Voraus und Grüße
Werner
Modellflieger aus Leidenschaft - schon über 60 Jahre!

https://vimeo.com/56821772
https://vimeo.com/356373438
Rascal
Beiträge: 3276
Registriert: Do 9. Okt 2014, 01:31

Re: Timing-Verhalten einer Funktions-Sequenz

Beitrag von Rascal »

Hallo Werner,

aus der Anleitung:
Wird eine Funktions-Sequenz gestartet, wird diese immer bis zum Ende durchlaufen.
Somit wird das neue Startsignal ignoriert. Du kannst das ganz einfach testen, in dem du die Zeit in Schritt 03 z.B. auf 5 Sekunden erhöhst, dann hast du genug Zeit zu reagieren um den Störungsfall zu beheben und kannst das Verhalten leichter beobachten.
Benutzeravatar
Werner_Fly
Beiträge: 144
Registriert: So 26. Jan 2020, 13:02

Re: Timing-Verhalten einer Funktions-Sequenz

Beitrag von Werner_Fly »

Hallo Rascal,

danke für Deine Antwort.

Ja, diesen Satz aus der BA kenne ich.
Allerdings war ich mir nicht sicher, ob dieses Verhalten auch unten den hier genannten speziellen Bedingungen zutrifft.

Ich hatte im Rahmen des Projekts ganz am Rande mal den Eindruck, dabei ein anderes Verhalten beobachtet zu haben, daher meine Frage.

Ich werde das morgen dann mal mit einer speziell darauf ausgelegten Sequenz testen und dann hier wieder berichten.
Evtl. habe ich da auch etwas Falsches in Erinnerung gehabt.

Schönen Abend und viele Grüße
Werner
Modellflieger aus Leidenschaft - schon über 60 Jahre!

https://vimeo.com/56821772
https://vimeo.com/356373438
Benutzeravatar
Werner_Fly
Beiträge: 144
Registriert: So 26. Jan 2020, 13:02

Re: Timing-Verhalten einer Funktions-Sequenz

Beitrag von Werner_Fly »

Guten Morgen, Rascal,

so, ich habe getestet.
Das Ergebnis ist für mein Projekt wichtig, daher jetzt die genaue Analyse des Verhaltens.

Ich habe eine spezielle Test-Fkt.-Seq. aufgesetzt, über die ich in der Diagnose das Verhalten verfolgen kann.

Test Fkt-Sequenz-8_Restart Seq._2022-07-17.jpg
Test Fkt-Sequenz-8_Restart Seq._2022-07-17.jpg (115.99 KiB) 1449 mal betrachtet

Die Kontrolle erfolgt in der Diagnose über die vier Ausgänge A1 bis A4.
Entscheidend ist der A4, denn wenn der aktiv wird, ist die Seq. bis zum Ende gelaufen.

Zeile 01+02 stellen nur einen definierten Ausgangszustand her, falls "Reste" irgendwo hängen geblieben sind.

Es geht los, also den Seq.-Start aktivieren.

Zeile 03 schaltet A1 ein
Zeile 04 schaltet A2 ein und läuft in Schleife, da der Seq.-Start ja noch aktiv ist.

Nun wird der Seq.-Start abgeschaltet.
Damit stoppt die Schleife in Zeile 4.

In Zeile 5+6 werden A1 und A2 abgeschaltet.
In Zeile7 wird A3 eingeschaltet.

In Zeile 8 erfolgt eine Pause von 3 sec.
In dieser Pause kann ich nun Aktionen durchführen, hier also auch den Seq.-Start wieder aktivieren - oder auch nicht

Fall 1: Seq.-Start nicht aktivieren:
Dann lauft die Seq. nach den 3s weiter bis zum Ende und A4 bleibt als Indikator dazu eingeschaltet.
Das wäre ja auch das "normale" Verhalten.

Fall 2: Start wird innerhalb der 3 sec (Zeile 8) wieder aktiviert:

A3 und A4 werden danach NICHT eingeschaltet, die Sequez läuft also NICHT weiter wie im Fall 1 bis zum Ende!!
Die Seq.-Springt hier sofort an den Seq.-Eingang zurück und A1 und A2 werden wieder eingeschaltet und die Schleife läuft!

Ich halte ein solches Verhalten auch für äußerst sinnvoll, denn wenn der Seq.-Start durch Herstellung der Bedingungen wieder aktiviert wird während die Seq. noch nicht ihr Ende erreicht hat, soll sie natürlich sofort auch diesen Befehl ausführen und neu starten.

Ansonsten könnte es ja sein, dass ggf. noch längere Zeit vergeht, bis die Sq. an ihr Ende gekommen ist und erst dann der neue Seq.-Start erfolgt.

Genau dieses hier getestete Verhalten des sofortigen Seq.-Neustarts benötige ich auch in meinem Projekt.

Da wäre es vielleicht auch sinnvoll, in der BA diesen Fall zu ergänzen, denn das dortige "immer" gilt wohl nur eingeschränkt.

Rascal, es würde mich freuen, wenn Du mein Ergebnis noch mal verifizieren könntest, nicht dass ich da etwas übersehen hätte.

Danke im Voraus und einen schönen Sonntag.

Grüße
Werner
Modellflieger aus Leidenschaft - schon über 60 Jahre!

https://vimeo.com/56821772
https://vimeo.com/356373438
Rascal
Beiträge: 3276
Registriert: Do 9. Okt 2014, 01:31

Re: Timing-Verhalten einer Funktions-Sequenz

Beitrag von Rascal »

Hallo Werner,

in der ersten Sequenz hast du "Schleife/Sofortstop" gewählt, in der zweiten nur "Schleife". Außerdem hat die 2. Sequenz nur noch eine Funktion statt 2 in der Schleife, somit sind die beiden nicht mehr vergleichbar.

Bitte auch mal prüfen ob die Funktionen in der Schleife quasi permanent (Dauer = 0,01s) wiederholt werden müssen, insbesondere wenn "Schleife/Sofortstop" gewählt wird. Dann könnte auch eine längere Zeit eingestellt werden.
Alternativ könnte man in der 1. Sequenz einen zusätzlichen Schritt nach 02 einfügen, der keine Funktion hat und diesen als Schleife laufen lasst (statt Schleife mit Schritt 01 und 02). Ditto für die 2. Sequenz nach Schritt 04.

Ich benötige noch folgende Informationen:
  • Benutzt du ein USM-RC-2 oder USM-RC-3 für den Test?
  • Welche Software Version benutzt du?
  • Wie wird der Sequenz-Start aktiviert - mit oder ohne Memory?
Benutzeravatar
Werner_Fly
Beiträge: 144
Registriert: So 26. Jan 2020, 13:02

Re: Timing-Verhalten einer Funktions-Sequenz

Beitrag von Werner_Fly »

Hallo Rascal,

danke für Deine Antwort.

Ich war / bin heute etwas knapp mit der Zeit, daher jetzt nur kurz zu Deinen Fragen.

- Ich habe den RC-3 (dieses Thema habe ich daher auch hier eingegeben). Aber klar, hätte ich noch mal erwähnen sollen.
- die FW ist die aktuelle V1.00b
- der Sequenz-Start ist statisch, also ohne Memory
- es hat keinen Einfluss, ob Sofort-Stopp oder nur die normale Schleife eingestellt ist
- Die zusätzliche oder alternative Ergänzung von Delays (also Wartezeiten) hat keinen Einfluss
- Hinsichtlich der konkreten Fragestellung ist kein grundsätzlicher Unterschied zwischen den beiden hier gezeigten Sequenzen.
--- Die erste kommt direkt aus dem Projekt.
--- Für die zweite habe ich ein neues, eigenes Testprojekt angelegt, das nur diese Sequenz enhält.
--- So bin ich sicher, dass nicht andere Projektteile auf die Untersuchungen einen ("heimlichen") Einfluss habe können.
- Diese Tests habe ich nur noch mit der 2. Sequenz gamacht.

Wie schon geschrieben ist mein Ergebnis bei dieser Konfiguration, dass die Sequenz sofort verlassen und an ihren Anfang gesprungen wird, wenn noch während der Sequenzausführung die Startbedingung wieder aktiv wird.

Zu welchem Ergebnis kommst Du?

Noch mal danke für Deine Bemühungen und viele Grüße.
Werner
Modellflieger aus Leidenschaft - schon über 60 Jahre!

https://vimeo.com/56821772
https://vimeo.com/356373438
Benutzeravatar
Werner_Fly
Beiträge: 144
Registriert: So 26. Jan 2020, 13:02

Re: Timing-Verhalten einer Funktions-Sequenz

Beitrag von Werner_Fly »

Hallo Rascal,

ich habe kurz noch mal einen weiteren Test gemacht mit einer Sequenz ohne Schleife, also die einfachste Version.
Damit kann auch ein evtl. Einfluss der Schleife auf das Verhalten der Sequenz ausgeschlossen werden.

Fkt.-Seq. 5_ohne Schleife_2022-07-18.jpg
Fkt.-Seq. 5_ohne Schleife_2022-07-18.jpg (100.6 KiB) 1412 mal betrachtet

Die Auslösung ist wieder statisch, die Funktionskontrolle erfolgt über die Diagnose mit den Ausgängen A6 bis A8.
Mit den Zeilen 01 bis 03 wird lediglich ein definierter Ausgangszustand hergestellt.

Test 1:
Seq. mit Aktivierung der Bedingung starten.
Dann läuft sie bis zum Ende und die drei Ausgänge werden in der Diagnose nacheinander aktiv, also alles normal.

Test 2:
Seq. mit Aktivierung der Bedingung starten und dann gleich die Bedingung deaktivieren.
Die Seq. läuft und aktiviert zunächst A6 und pausiert anschließend dann für 2 sec (Zeile 05).

Schaltet man diesen 2 sec nun die Seq.-Bedingunen wieder aktiv, springt die Seq.direkt zurück auf Zeile 01.
Analog auch aus Zeile 07.

Ergebnis:
Auch hier ist das Verhalten identsich wie bei der Seq. zuvor mit Schleife.

Also:
Wird während des Durchlaufs einer Fkt.-Seq. deren Startbedingung deaktiviert und dann wiedr aktiviert, läuft die Seq. nicht bis bis zu ihrem Ende sondern springt zurück auf den Anfang und startet dort neu.

Daher noch mal meine Empfehlung, dieses Feature mit in die BA aufzunehmen.

Viele Grüße
Werner
Modellflieger aus Leidenschaft - schon über 60 Jahre!

https://vimeo.com/56821772
https://vimeo.com/356373438
Rascal
Beiträge: 3276
Registriert: Do 9. Okt 2014, 01:31

Re: Timing-Verhalten einer Funktions-Sequenz

Beitrag von Rascal »

Hallo,

ich hatte das am Samstag getestet (mit Schleife bzw. Schleife/Sofortstop) und bin mir 100%ig sicher, daß die Sequenz nicht neu gestartet wurde, da ich die Zeiten gestoppt hatte.
Ich habe es soeben nochmal probiert, auch ohne Schleife, und die Sequenz wird wie von dir beschrieben jedesmal neu gestartet wenn das Startsignal erneut anliegt. Seltsam. :?

Wenn das Verhalten so korrekt ist werde ich vorschlagen die BA entsprechend anzupassen.
Benutzeravatar
Werner_Fly
Beiträge: 144
Registriert: So 26. Jan 2020, 13:02

Re: Timing-Verhalten einer Funktions-Sequenz

Beitrag von Werner_Fly »

Hallo Rascal,

vielen Dank für Deine Infos - und dass Du Dich noch mal in das Thema "verbissen" hast.
Ja, solche Merkwürdigkeiten bei Testergebnissen kenne ich auch, da ist einem einfach etwas durchgerutsch.
Ist aber kein Problem, Du hast es ja nun noch mal getestet.

Freut mich sehr, dass Du nun zum gleichen Ergebnis gekommen bist. Dieses Verhalten von Seqenzen ist in meinem Projekt von Bedeutung.
Prima auch, das in die BA zusätzlich aufzunehmen, kann ja auch für andere Nutzer hilfreich sein.

Noch mal danke - und gute Kühlung bei der aktuellen Hitze :cry:

Grüße
Werner
Modellflieger aus Leidenschaft - schon über 60 Jahre!

https://vimeo.com/56821772
https://vimeo.com/356373438
Rascal
Beiträge: 3276
Registriert: Do 9. Okt 2014, 01:31

Re: Timing-Verhalten einer Funktions-Sequenz

Beitrag von Rascal »

Kurzer Nachtrag:

Es hat mir keine Ruhe gelassen, daß bei meinem ersten Test die Sequenz nicht neu gestartet wurde. Das "Geheimnis" lag darin, daß ich diese mit Memory geschaltet hatte. Da der verwendete Geber ein Taster war konnte ich damit die Schleife in der Sequenz dauerhaft laufen lassen ohne das Startsignal sprich den Geber manuell zu halten.

Um dann aus der Schleife zu kommen wurde des Startsignal durch ein 2. Betätigen des Tasters aufgehoben; dann lief die Pause in Schritt 03 und ich habe den Taster ein 3. Mal betätigt, um nochmal ein Startsignal zu senden.
Dabei wurde die Sequenz aber nicht wieder neu gestartet sondern lief sofort bis zum Ende weiter.

Beim Test der 2. und 3. Funktions-Sequenz oben hatte ich das Memory entfernt und somit wurde die Sequenz neu gestartet.

D.h. das Verhalten mit und ohne Memory ist unterschiedlich!
Antworten