Totmann-Schaltung

Fernsteuerung, Wifi-Controller, ...
little.yoda
Site Admin
Beiträge: 745
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 21 Mal
Danksagung erhalten: 109 Mal

Re: Totmann-Schaltung

Beitrag von little.yoda » 20.03.2021, 18:40

Sorry, falsche Firmware-Version verschickt.

Nächster Versuch.
Dateianhänge
littleyoda-DCC-Decoder.mhetesp32minikit.ly32
(632.24 KiB) 17-mal heruntergeladen

Ralf_St.
Beiträge: 302
Registriert: 18.09.2018, 01:14
Hat sich bedankt: 51 Mal
Danksagung erhalten: 10 Mal

Re: Totmann-Schaltung

Beitrag von Ralf_St. » 20.03.2021, 20:41

Hallo Sven

Die BIN ist drauf und die ersten Minuten bin ich bereits gefahren.
  • 9 Loks auf der Anlage.
  • 1 Tablet, Browseransicht, mit dem Controller verbunden.
  • Alle 9 Loks einmal aufgerufen um sicherzustellen das alle mit dem Controller verbunden sind.
  • 52 Minuten gefahren, ohne jegliche Abbrüche...
Ich werde in gleicher Konstellation weiter machen und berichten, wenn der Fehler auftritt.

Erst einmal DANKE für die neue BIN!
Gruß, Ralf

Ralf_St.
Beiträge: 302
Registriert: 18.09.2018, 01:14
Hat sich bedankt: 51 Mal
Danksagung erhalten: 10 Mal

Re: Totmann-Schaltung

Beitrag von Ralf_St. » 23.03.2021, 20:23

Hallo Sven

Die Displays sind auf den Weg gebracht!
Durch die Änderung der BIN Datei kann ich nun nach dem Start des Controllers im Browser sehen wie viele Clients sich beim Controller angemeldet haben.
Ich bin täglich mehrmals an der Anlage und lasse mir die Ausgabe von LOG dabei anzeigen!
Nach knapp 68 Minuten hatte ich heute den Fehler,
Lok(s) rollt aus, bei Rückwärtsfahrt schaltet das Licht um und keine der Loks kann mehr gesteuert werden!
Allerdings wird mir nun davon nichts mehr in der LOG Ausgabe angezeigt!?

Erst nach einem Neustart des Controllers habe ich wieder Zugriff auf die Loks!
Gruß, Ralf

little.yoda
Site Admin
Beiträge: 745
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 21 Mal
Danksagung erhalten: 109 Mal

Re: Totmann-Schaltung

Beitrag von little.yoda » 26.03.2021, 07:29

Hallo Ralf,


irgendwie ist das komisch.

Wenn es keine Log-Meldung auf dem Controller gibt, sollte der Notstop auf der Lok ausgelöst worden sein. Diese sollte aber direkt wieder fahren, wenn sie den nächsten Befehl kommt.


Den Notstop kannst du auch über eine Taste aufheben. Lege einfach eine der folgenden Funktionen auf die Taste:

toggleEmergencyStop (Schaltet zwischen Notstop und normalen Betrieb hinterher)
enableEmergencyStop (Schaltet Notstop nur ein)
disableEmergencyStop (Schaltet Notstop nur aus)


Ich schaue die Tage mal, dass du die die wichtigsten Punkte auch auf dem Display anzeigen lassen kannst:
- emergencystop aktiv oder nicht aktiv
- Anzahl verbundener Geräte


EDIT: LCD sind angekommen. Vielen lieben dank.

Gruß,
Sven

Ralf_St.
Beiträge: 302
Registriert: 18.09.2018, 01:14
Hat sich bedankt: 51 Mal
Danksagung erhalten: 10 Mal

Re: Totmann-Schaltung

Beitrag von Ralf_St. » 26.03.2021, 18:32

Hallo Sven

Nur damit wir nicht aneinander vorbei reden...
little.yoda hat geschrieben:
26.03.2021, 07:29
Wenn es keine Log-Meldung auf dem Controller gibt, sollte der Notstop auf der Lok ausgelöst worden sein. Diese sollte aber direkt wieder fahren, wenn sie den nächsten Befehl kommt.
  • Das Tablet ist als Client mit dem Controller verbunden.
  • 9 Loks stehen auf der Anlage und sind ebenfalls mit dem Controller verbunden.
  • Eine der Loks wird gefahren.
  • Im Browserfenster vom Tablet werden die letzten 49 Änderung vom Controller angezeigt.

Erläuterung:
Die Lok braucht einige Minuten um vom Ausgangspunkt zum Ziel zu fahren.
Während dieser Zeit bleiben die Einstellungen am Controller unverändert.
(Lediglich die Glocke, das Horn oder die Brems-Taste werden während der Fahrt benutzt.)
Setzt nun der Notstop ein, habe ich die Lok, genau wie Du es beschreibst, immer noch unter Kontrolle.
Erfolgt keine Bewegung am Drehencoder, bleibt die Lok zwar stehen, aber drehe ich am Encoder, fährt die Lok wieder weiter.
Anmerkung dazu:
Manchmal kann ich etliche Fahrten hin und zurück durchführen, ohne das der Notstop einsetzt.
Aus mir unerklärlichen Gründen setzt irgendwann der Notstop ein!
Aktualisiere(*)ich nach einsetzten des Notstop die Log-Ausgabe, wird mir dieser Notstop aber nicht angezeigt!

Zu dem Fall, wenn in der Log-Ausgabe "Z21 Timeout" angezeigt wird.
  • Die Fahrstufe wird auf 1 gesetzt und das Licht schaltet gegebenenfalls um.
  • Es kann keine Lok mehr angesprochen werden.
  • Erst nach einem Neustart des Controllers ist die Bedienung der Loks wieder möglich
  • Seitdem die neue BIN aufgespielt ist, ist es bisher aber nicht mehr dazu gekommen!
Statt dessen startet nun der Controller manchmal neu.
Das Verhalten ist wie beim Notstop, nur das jetzt alle Loks davon betroffen sind!
Ein Blick auf das Display vom Controller zeigt alles steht wie nach dem Einschalten:
  • Kleinste Lokadresse
  • Fahrstufe 1
  • Fahrtrichtung >
  • Funktionen alle AUS
Setzt dieser Neustart ein, werden alle Decoder-Funktionen der Loks ausgeschaltet!
Der Controller muss aber nicht, wie nach einem Z21 Timeout wieder neu gestartet werden, man kann bei jeder Lok wieder den Sound einschalten und fahren!
little.yoda hat geschrieben:
26.03.2021, 07:29
Den Notstop kannst du auch über eine Taste aufheben. Lege einfach eine der folgenden Funktionen auf die Taste:

toggleEmergencyStop (Schaltet zwischen Notstop und normalen Betrieb hinterher)
enableEmergencyStop (Schaltet Notstop nur ein)
disableEmergencyStop (Schaltet Notstop nur aus)
Da sich der Notstop so verhält, dass man die Kontrolle über die fahrende Lok nicht verliert, würde ich gerne auf diesen verzichten...
little.yoda hat geschrieben:
26.03.2021, 07:29
Ich schaue die Tage mal, dass du die die wichtigsten Punkte auch auf dem Display anzeigen lassen kannst:
- emergencystop aktiv oder nicht aktiv
- Anzahl verbundener Geräte
Sorry wenn ich nachfrage, meinst Du auf den Display vom Tablet, oder vom Controller?

(*):
Wäre eine kontinuierliche "Protokollierung" in der Browser-Ausgabe (Ausgabe von Log) möglich?
Vielleicht könnte man dann einen Eintrag sehen, wenn etwas unvorhergesehenes eintritt!?
Gruß, Ralf

little.yoda
Site Admin
Beiträge: 745
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 21 Mal
Danksagung erhalten: 109 Mal

Re: Totmann-Schaltung

Beitrag von little.yoda » 28.03.2021, 11:08

Hi

Erstmal ein Danke für den strukturieren Aufbau der Mails. Hilf mir gerade mit meinen eingeschränkten Ressourcen extrem.

Das Thema "Controller startet sich neu" hatte ich bislang noch nicht auf dem Schirm. Ist das Problem neu?

Um es nochmal dokumentiert zu haben;

Wir haben ja zwei Timeout-Varianten.

Auf dem Controller ("Z21 Zentrale Timeout"")
  • Auswirkungen:Nichts geht mehr. Auch nachdem die Verbindung neu aufgebaut wurde, wird an alle Lok ein Notstop gesendet.
  • Ursache: Für mehrere Sekunden (4,2 Sekunden) hat der Controller von keiner Lok/Gerät eine Rückmeldung erhalten
  • Aufheben: z21 App oder Wlan-Maus und den Notstop deaktivieren. Oder siehe unten.
Auf der Lok ("Z21 wlan Timeout")
  • Auswirkungen: Notstop für eine Lok
  • Ursache: Die einzelne Lok hat für eine Sekunde keinen Befehl mehr vom Controller empfangen.
  • Aufheben: Einen neuen Befehl an die betroffene Lok senden
Ein Timeout der Lok wird auf dem Controller nicht angezeigt, da ja nicht der Controller den Timeout erkannt hat, sondern die Lok. Hier müsstest du die Logs der Lok abrufen. Dort würdest du dann auch eine Meldung sehen.

Auch für meinen geplanten MegaTest baue ich gerade eine Funktion ein, damit alle Lognachrichten aller Geräte zentral gesammelt werden können. Dauert aber noch.


Ralf_St. hat geschrieben:
26.03.2021, 18:32
little.yoda hat geschrieben:
26.03.2021, 07:29
Den Notstop kannst du auch über eine Taste aufheben. Lege einfach eine der folgenden Funktionen auf die Taste:

toggleEmergencyStop (Schaltet zwischen Notstop und normalen Betrieb hinterher)
enableEmergencyStop (Schaltet Notstop nur ein)
disableEmergencyStop (Schaltet Notstop nur aus)
Da sich der Notstop so verhält, dass man die Kontrolle über die fahrende Lok nicht verliert, würde ich gerne auf diesen verzichten...
Missverständnis. Du deaktiviert hiermit nicht die Totmannschaltung oder so.

Sondern du kannst den Notstop aktivieren (=alles steht) oder aufheben (=alles fährt wieder). Damit kannst du vermeiden, dass du den Controller neustarten musst.
Ralf_St. hat geschrieben:
26.03.2021, 18:32
little.yoda hat geschrieben:
26.03.2021, 07:29
Ich schaue die Tage mal, dass du die die wichtigsten Punkte auch auf dem Display anzeigen lassen kannst:
- emergencystop aktiv oder nicht aktiv
- Anzahl verbundener Geräte
Sorry wenn ich nachfrage, meinst Du auf den Display vom Tablet, oder vom Controller?
Primär geht es auf dem Display am Controller.

Man kann später ergänzen, dass es dann auch in der Webansicht angezeigt wird.

Ralf_St.
Beiträge: 302
Registriert: 18.09.2018, 01:14
Hat sich bedankt: 51 Mal
Danksagung erhalten: 10 Mal

Re: Totmann-Schaltung

Beitrag von Ralf_St. » 31.03.2021, 13:54

Hallo Sven
little.yoda hat geschrieben:
28.03.2021, 11:08
Erstmal ein Danke für den strukturieren Aufbau der Mails. Hilf mir gerade mit meinen eingeschränkten Ressourcen extrem
Ich habe da einen Post in Erinnerung in dem steht das wir Dich besser mitnehmen sollen, Danke für die Rückmeldung!
Eingeschränkte Ressourcen, ich hoffe es geht Dir gut und die Aussage bezieht sich auf das, womit Du deine Brötchen verdienst!!
little.yoda hat geschrieben:
28.03.2021, 11:08
Das Thema "Controller startet sich neu" hatte ich bislang noch nicht auf dem Schirm. Ist das Problem neu?
Ja, es ist zuvor nicht aufgetreten.
Ich habe aber auch noch nie so intensiv getestet...

Anmerkung dazu:
Es gibt weitere kleine "Kinderkrankheiten" wie die dass der Controller neu startet. Zum Beispiel die, dass sich hin und wieder Funktionen selbstständig einschalten. Aber beides ist eher selten und gehört eigentlich auch nicht zu diesem Thema!?
little.yoda hat geschrieben:
28.03.2021, 11:08
Wir haben ja zwei Timeout-Varianten.

Auf dem Controller ("Z21 Zentrale Timeout"")
Dieser Fehler ist seit der neuen Firmware maximal 2 oder 3 mal aufgetreten!
Seit mehreren Tagen überhaupt nicht mehr...
little.yoda hat geschrieben:
28.03.2021, 11:08
Auf der Lok ("Z21 wlan Timeout")
....
Hier müsstest du die Logs der Lok abrufen. Dort würdest du dann auch eine Meldung sehen.
Das werde ich mal machen!
little.yoda hat geschrieben:
28.03.2021, 11:08
Ursache: Die einzelne Lok hat für eine Sekunde keinen Befehl mehr vom Controller empfangen.
Aufheben: Einen neuen Befehl an die betroffene Lok senden
Zu Ursache:
Hupen oder Läuten wäre doch auch ein Befehl...!?
Beides, wie auch andere Funktionen werden unmittelbar ausgeführt.
Dennoch wird (manchmal) im Decoder die Fahrstufe 1 (0?) gesetzt!

Zu Aufheben
Eine kleine Bewegung am Drehencoder bewirkt das die am Controller angezeigte Fahrstufe vom Decoder und somit der Lok wieder aufgenommen wird!

Fazit:
Ein Lok- Timeout ist zwar nicht schön, da die Lok aber weiterhin auf den Controller reagiert, hat man seinen Zug immer noch unter Kontrolle.

Startet der Controller im Betrieb neu (was selten vorkommt), werden bei allen Loks die am Controller als Client angemeldet sind, alle Funktionen des Decoders abgeschaltet! Fahrende Loks bleiben also stehen und alle Funktionen werden ausgeschaltet, auch bei den Loks die stehen! So gesehen hat man immer noch alles unter Kontrolle...

Geht hingegen der Controller ins Timeout, rollt der Zug mit den letzten Einstellungen weiter, bis der Controller (zuzüglich einiger Sekunden Wartezeit) neu gestartet ist und die Lok als Client gefunden hat!!

Wenn die Fehlfunktion "Controller-Timeout" erst mal gefunden ist, kann der Controller bedenkenlos benutzt werden.
Bis dahin bleibt, zumindest bei mir, dieses ungute Gefühl wann so ein Timeout wieder zuschlägt...
Was das angeht bin ich aber guter Dinge, ich denke Du hast schon weitaus heftigere Probleme gelöst!

Was positives:
Meine drei LYCONT-32, auch der mit den 10 Funktionstasten, machen mir betrieblich extrem viel Freude!
Dank der Ansteuerung über die zwei Drehencoder und die Positionierung der Funktionstasten kann ich den Controller blind bedienen und bin mit den Augen immer beim Zug!!
Das ich alle Controller umgehängt als Bauchladen nutzen kann, hat sich ebenfalls als richtige Entscheidung erwiesen!
Ich habe die Hände frei und brauche auch nicht nach einer Ablage zu suchen, auf der ich meinen Controller ablegen kann!
Gruß, Ralf

little.yoda
Site Admin
Beiträge: 745
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 21 Mal
Danksagung erhalten: 109 Mal

Re: Totmann-Schaltung

Beitrag von little.yoda » 04.04.2021, 21:47

Hallo Ralf,
Ralf_St. hat geschrieben:
31.03.2021, 13:54
Anmerkung dazu:
Es gibt weitere kleine "Kinderkrankheiten" wie die dass der Controller neu startet. Zum Beispiel die, dass sich hin und wieder Funktionen selbstständig einschalten. Aber beides ist eher selten und gehört eigentlich auch nicht zu diesem Thema!?
mhh ... Lass uns den Thread als "Kinderkrankheiten" uminterpretieren, dann passt es :-)
Ralf_St. hat geschrieben:
31.03.2021, 13:54
little.yoda hat geschrieben:
28.03.2021, 11:08
Auf der Lok ("Z21 wlan Timeout")
....
Hier müsstest du die Logs der Lok abrufen. Dort würdest du dann auch eine Meldung sehen.
Das werde ich mal machen!
little.yoda hat geschrieben:
28.03.2021, 11:08
Ursache: Die einzelne Lok hat für eine Sekunde keinen Befehl mehr vom Controller empfangen.
Aufheben: Einen neuen Befehl an die betroffene Lok senden
Zu Ursache:
Hupen oder Läuten wäre doch auch ein Befehl...!?
Beides, wie auch andere Funktionen werden unmittelbar ausgeführt.
Dennoch wird (manchmal) im Decoder die Fahrstufe 1 (0?) gesetzt!
Mal wieder missverständlich von mir ... Mit Befehlen meine ich keine Geschwindigkeits- oder F-Tasten-Änderungen in eigentlichen Sinne, sondern mehr Pakete.

Der Client fragt mehrfach pro Sekunde bei dem Controller nach Informationen bzgl. seiner Lok nach. Also in Richtung "Controller, sag mir mal, wie schnell die Lok sein soll und welche F-Tasten aktiv sind". Wenn er eine Sekunde keine Antwort erhält, geht er in den Notstop.

Besser wäre wohl folgende Formulierung:
Ursache: Der Client hat auf seine mehrfach pro Sekunde an die Zentrale verschicken Anfragen für mindestens eine Sekunde keine Antwort von der Zentrale erhalten.

Ralf_St. hat geschrieben:
31.03.2021, 13:54
Startet der Controller im Betrieb neu (was selten vorkommt), werden bei allen Loks die am Controller als Client angemeldet sind, alle Funktionen des Decoders abgeschaltet! Fahrende Loks bleiben also stehen und alle Funktionen werden ausgeschaltet, auch bei den Loks die stehen! So gesehen hat man immer noch alles unter Kontrolle...

Geht hingegen der Controller ins Timeout, rollt der Zug mit den letzten Einstellungen weiter, bis der Controller (zuzüglich einiger Sekunden Wartezeit) neu gestartet ist und die Lok als Client gefunden hat!!
Bin gerade überrascht, da ich das Problem mit den weiterfahrenden Loks bis gerade nicht kannte.

Deine Schilderung formt leider bei mir im Kopf noch keine Idee, wo der Fehler liegen könnte.
  • Im ersten Fall verhält sich die Lok, wie sie soll (auch wenn der Controller sich nicht neustarten soll)
  • im zweiten Fall sollte aber der Timeout auf der Lok zuschlagen. Entweder funktioniert die Totmann-Schaltung auf der Lok nicht (was nicht zur Schilderung des ersten Fall passen würde) oder irgendwas anderes stimmt mit dem Controller nicht und er antwortet noch auf Pakete.
Aber eigentlich sollte der Controller-Timeout (4 Sekunden) viel später anschlagen, als die Timeouts der Clients (1 Sekunde). Irgendwas macht keinen Sinn.

Mal schauen, ob ich es auch mit ein paar wenigen ESP nachstellen kann.


Ich habe heute schon einen Fehler gefunden und korrigiert. Wenn zu viele Pakete kurz hintereinander verschickt werden sollen, streikt der ESP und sende einige Pakete nicht. Ich bin mir gerade nicht sicher, ob dieser Fehler Ursache für die Sache oben sein konnte.

Du könntest mal die aktuelle Alpha/Beta Version auf dem Controller testen.

Gruß,
Sven

little.yoda
Site Admin
Beiträge: 745
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 21 Mal
Danksagung erhalten: 109 Mal

Re: Totmann-Schaltung

Beitrag von little.yoda » 05.04.2021, 13:21

Ein weiteres Problem wird auch sein, dass im Framework nicht sauber zwischen Timeout und Gleisspannung an/aus unterschieden wird.

Die Z21 kennt eine Notstop Funktion, die die Gleisspannung abschaltet (z21 blinkt dann blau).

Egal, ob die z21-Notstop und der Timeout aktiv ist, wenn eine der beiden Zustände aufgehoben wird, fährt der Client auch wieder. Eigentlich müsste der Client warten, bis beides aufgehoben ist.

Ralf_St.
Beiträge: 302
Registriert: 18.09.2018, 01:14
Hat sich bedankt: 51 Mal
Danksagung erhalten: 10 Mal

Re: Totmann-Schaltung

Beitrag von Ralf_St. » 05.04.2021, 19:35

Hallo Sven
little.yoda hat geschrieben:
04.04.2021, 21:47
Bin gerade überrascht, da ich das Problem mit den weiterfahrenden Loks bis gerade nicht kannte.
Die Lösung des Problems liegt nicht bei der aufgespielten Software, sondern beim Decoder selber!!!

Erklärung dazu:
In den Einstellungen des Decoders gibt es eine, die die Geschwindigkeit der Lok hält.
Diese hatte ich zwar nicht aktiviert, wie sich aber herausstellte konnte diese dennoch eingeschaltet werden...
Aufgefallen war mir das aber erst, als ich den Decoder am Programmer hatte und diese Fehlfunktion auf dem Programmiergleis auftrat!!
Nachdem ich den Decoder neu programmiert habe, verhält sich die Lok im Falle eines Timeout so wie es zu erwarten ist.
Sie rollt aus, bleibt mit eingeschaltetem Sound stehen und kann erst wieder gefahren werden, wenn der Controller neu gestartet wurde.
Da mehrere Loks dieses Sound-Projekt aufgespielt hatten, war das Verhalten dieser Loks gleich...

Entschuldige bitte das es hier zu Problemen kam, die mit der Firmware nichts zu tun haben!

Neue Erkenntnisse:
Den Timeout vom Controller kann ich nur noch beobachten, wenn der ESP32 ohne zusätzlichen Router eine Z21 simuliert!
Sobald der Router dazu kommt, ist solch einen Timeout nicht mehr aufgetreten! (Zumindest in den vergangenen Tagen...)
Bei beiden Varianten kommt es jedoch hin und wieder dazu dass der ESP in der Lok in den Timeout schaltet.

little.yoda hat geschrieben:
04.04.2021, 21:47
Du könntest mal die aktuelle Alpha/Beta Version auf dem Controller testen.
Ich melde mich sobald ich etwas neues berichten kann.
Gruß, Ralf

Antworten