Servus,
Zitat von est2fe
> Der GFP löscht die untätige Lok aber nach einiger Zeit aus dem Refreshzyklus.
Dem kann ich in der Form nicht zustimmen, wenn ich die CAN-Spec. zur CS2 lese. Das macht laut der Spec. die GUI bzw. die Zentrale mit einem CAN-Befehl an den GFP.
Aber genau so steht es in der offiziellen Märklin CS2/CAN Offenlegung: Beschreibung des Systembefehles "Lok Zyklus beenden"
Zitat
Lok aus Verwaltungsliste des Gleis Format Prozessor löschen. Die Lok erhält keine Befehle mehr (kein Refreshzyklus)
Systembefehle betreffen immer den Gleis Format Prozessor direkt und bestimmen die Funktionsweise, bzw. die Zustände. Desweiteren werden Zustände des GFP weitergemeldet.
Das GUI - oder wie es in der Offenlegung heißt: das Bediengerät - erteilt natürlich dem GFP die Systembefehle. Wer sonst? Mein nächster Satz war auch: "Normalerweise genügt aber ein einfacher Fahrbefehl im GUI, um die Lok wieder in den Zyklus aufzunehmen."
Ich führe gerne eine Grundlagendiskussion, vor allem zur persönlichen Wissenserweiterung - aber bitte meine Aussagen nicht aus dem Zusammenhang reißen.
Zitat von est2fe
Also bitte mal prüfen, was passiert, wenn man eine CS2 runterfährt, und dann wieder hochfährt. Bekommen dann alle angemeldeten mfx-Loks mindestens ein mfx-Verify oder einen Fahrbefehl mit FS 0?
Wenn nein, dann sendet der GFP für diese Loks auch nichts auf das Gleis, weil er nach dem Booten von der vorherigen Session sich nichts merkt.
Nach meinen Erklärungen (weiter oben im Thread) über die Unterschiede der Systembefehle STOPP und HALT ist klar, dass nur das "Bediengerät" entscheidet, welche Fahrbefehle der GFP an die "aktiven" Loks zu senden hat. Das ist ja auch alles im backup file abgespeichert.
Ich verwende übrigens bewußt den Ausdruck "aktive Loks" für Loks im Refreshzyklus - zum Unterschied von "angemeldeten Loks", also Loks in der gesamten Lokliste der CS2.
Zitat von est2fe
Ich hoffe jedoch, dass man auf dem PC alle CAN-Befehle, auch das Anmelden des GFPs an der Zentrale sieht. Wenn dem so ist, dann einfach mal alles mitloggen, was da am Anfang so an den GFP versendet wird.
Ich habe vor längerer Zeit schon etliche verschiedene Sequenzen "mitgeschnitten"; nach einem "System GO" Befehl habe ich zum Beispiel folgende Konversation protokolliert:
00300F3600
0031B70108435342E401170000
1. Zeile:
Das ist ein "Teilnehmer PING" zur Suche von Steuergeräten am CAN-Bus.
2. Zeile:
Antwort mit Bekanntgabe der Geräte UID, und dessen Softwarestandes (0x 01 17 > also 1.23)
Diese Sequenz wird vom Booten weg etwa alle 12 Sekunden am CAN-Bus gesendet. Bei einem angeschlossenem Slave Bediengerät, das über den CAN-Bus kommuniziert, müsste dann eine weitere "Teilnehmermeldung" aufscheinen.
Auch das "Lok Discovery" - also das Auslesen der Decoder UID - ist eine interessante Prozedur. Aber das führt uns allerdings schon etwas weit weg vom Thema dieses Thread.
Zitat von est2fe
Wenn keine Fahrbefehle oder mfx-Verifys nach dem Booten kommen, dann einfach mal die Anlage ein paar Minuten bis zu einer 1/2h so stehen lassen, aber _nicht_ im Stop-Modus, sondern schon mit aktiver Gleisspannung. Danach alle mfx-Loks mal fahren lassen.
Ich bin gespannt, was da so alles an mfx-Loks noch fährt?
Ich verspreche, so bald als möglich zu testen.
Zitat von est2fe
Übrigens versenden die MS1, CS1 und ECoS immer zyklisch, zwischen die Fahrbefehle gestreut, ihre eigene UID, fragen danach ob sich jemand anmelden will, und fragen auch jede mfx-Lok mit einem mfx-verify in äquidistanten Abständen. Ich meine, das wäre so in einigen 100ms-Abstand gewesen und hängt auch von der Anzahl abgemeldeter mfx-Loks ab.
Ich meine, die zeitlichen Abstände sind auch in dem Dokument von Stefan Krauss angesprochen. Bin gerade nur zu faul zum suchen ...
Also mit dieser Studie unter dem Titel "Beschreibung des mfx-Schienensignals" habe ich so meine Bedenken. Man kann zwar sehr viel Interessantes - vor allem über die Grundlagen der Datenpakete in der Schiene - darin lesen, aber so allgemein gültig sollte der Titel nicht lauten. Es wird zwar das offizielle Märklin CS2/CAN Dokument auch als Quelle zitiert, doch stimmt etliches damit nicht überein. Zum Thema "mfx Verify" heißt es zum Beispiel:
Zitat
Datenframes ohne ein Kommando (also nur Adresse + Checksumme) erwarten eine einfache 1Bit-Rückmeldung vom angesprochenen Decoder. Damit lässt sich feststellen, ob unter der angegeben Adresse (SID) zur Zeit ein Decoder erreichbar ist.
Dieses Kommando wurde bisher noch bei keiner Zentrale beobachtet, sondern experimentell ermittelt.
Abgesehen davon, dass laut Märklin Dokument der Befehl auch die mfx-UID enthält, wurde dieser Befehl noch bei keiner Zentrale beobachtet???
Woher kommt dann die Vermutung, dass dieser Befehl bei den "ESU-Steuergeräten" alle 100ms gesendet wird?
Oder ein anderes Beispiel betrifft den PING-Befehl: Märklin beschreibt den Befehl total anders und betont, dass darauf keine LokDecoder antworten.
Möglicherweise ist das Dokument nur für die "ESU-Geräte" und deren Kommunikation gültig. Das kann ich nicht beurteilen, weil ich kein derartiges Gerät habe. Aber je mehr ich mich mit der andiskutierten Problematik beschäftige, desto mehr wachsen meine Zweifel über die in der genannten Studie beschriebenen "Verhaltensregeln" der mfx-Decoder, die ich leider bisher ungeprüft akzeptiert hatte.
EDITIERTER ZUSATZ: Nach meinen letzten Erkenntnissen dürften manche Diskrepanzen darin begründet sein, dass die erwähnte Studie nur den auf den Schienen befindlichen Datenverkehr beschreibt - aber die Märklin CS2/CAN Protokoll Offenlegung sich eben dem CAN-Bus widmet, der über das Gateway zugänglich ist. Dazwischen arbeitet der GFP, der manche (befohlene) Subprozesse selbsttätig ausführt und nur die Ergebnisse an den CAN-Bus meldet. Deshalb kann man auch die Datenstrukturen der Meldungen nicht so leicht gegenseitig zuordnen.
Zitat von est2fe
Die CS2 macht das aber meines Wissens anders bzw. lässt den mfx-verify bei normalem Fahrbetrieb einfach weg. Schade eigentlich, denn dadurch könnte man mit einem Lok-Rückmelder zurückmelden in welchem Rückmeldeabschnitt sich die mfx-Lok gerade befindet. Ich weiss, bei vielen angemeldeten mfx-Loks dauert das auch relativ lange.
Warum brauche ich dafür unbedingt einen mfx-Verify Befehl?
Jeder Lokbefehl wird mit einer Quittierung, in der die SID steht beantwortet:
- beim Geschwindigkeitsbefehl sogar inklusive des momentanen Geschwindigkeitswertes
- beim Richtungsbefehl sogar inklusive der momentanen Richtung
- beim Funktionsbefehl sogar inklusive des momentanen Wertes einer bestimmten Funktion
EDITIERTER ZUSATZ:
Die Dinge liegen komplizierter als ich zunächst angenommen habe. Die Quittierung kommt nämlich vom GFP und bestätigt nur die Weitergabe des Fahrbefehls an die Schiene. Mehr darf man da nicht hineininterpretieren, weil ich alle diese Meldungen auch bei nicht aufgegleister Lok erhalten habe.
Die Nichtverwendung des "mfx-Verify" im normalen Fahrbetrieb kann ich bestätigen. Um die Idee des Rückmeldeabschnittes zu verfolgen, bräuchte ich aber doch nur einen "mfx-Verify"-Befehl über Ethernet auslösen.
Das alles bedingt natürlich Rückkanaltauglichkeit der gesamten Anlage - und damit sind wir wieder beim Thema des Threads.