Hallo.
Zitat
Aha, du hast schon ein bisschen ein praxisfremder Test gemacht. Da müssen 4 Loks also möglichst gleichzeritig ihre Fahrstufen reduzieren. Das ist schon ein bisschen Praxisfremd.
Praxisfremd...? Meine Software macht das ständig, weil konzeptbedingt die Anfahr- und Bremsverzögerung der Loks möglichst weitgehend ignoriert wird. Von den ~20 Loks, die meine Anlage bisher verkraftete, waren durchaus schon 15 gleichzeitig in Betrieb (d.h. es werden praktisch ständig Befehle gesendet). Wenn die Anhaltegenauigkeit eine Schienenlänge betragen würde, dann würde ich mich ärgern.
Einzige Ausnahme sind Loks, bei denen die Bremsverzögerung lang eingestellt ist, auf kurzen Streckenabschnitten, die abwechselnd zum Beschleunigen, Durchfahren und Anhalten genutzt werden - das ist nix für meine Software, weil sie die Lok da nicht richtig einmessen kann. Da sind durchaus schonmal 20cm drin. Ungeregelte Loks sind vollkommen unkontrollierbar, das ist auch klar.
Zitat
Nur mal so ne Frage: Glaubst du, dass es die 6021 besser könnte, wenn sie diese Funktion hätte?
Soweit ich verstanden habe, wird die Mehrfachtraktion hier nur genutzt, um das Problem manuell zu simulieren. Mit der PC-Steuerung kann auch die 6021 in die Verlegenheit kommen, mehrere Loks gleichzeitig steuern zu müssen - da hat sie dann den Vorteil der Dummheit, sprich: die 6021 überläßt es dem Programm, ihr die Befehle mundgerecht zu servieren. Mehr dazu später.
Zitat
So viel ich weiss, arbeitet die Zentrale nacheinander die Lokadressen durch. Eine nach der anderen. Je mehr Loks gerade bedient werden von der Zentrale, desto länger dauert der ganze Zyklus.
Das ist der Refresh-Zyklus, in dem alle Loks sind, bei denen sich nix ändert. Wenn eine neue Fahrstufe kommt, muß der Refresh-Zyklus unterbrochen werden, der neue Befehl wird gesendet und danach der Refresh-Zyklus wieder aufgenommen.
Zitat
Nehmen wir jetzt an, dass du beim Wechseln der Geschwindigkeit gerade den Knof zu einem Zeitpunkt drehst wo sich der Zyklus gerade die dritte Lok erreicht hat. So nun wechseln die dritte und vierte Lok wohl die Fahrstufe, dann läuft der Zyklus weiter, Lok 5 wird angewählt (auch wenn du diese Lok gerade nicht bedienst, sie sich aber noch immer im Buffer befindet) und so weiter bis der Zyklus von vorne mit der Lok 1 beginnt. Ist jetzt ja wohl klar, dass diese verzögert reagiert.
Da zeigt sich dann die Intelligenz der Zentrale: Die Zentrale muß den normalen Refresh-Zyklus unterbrechen, für alle Beteiligten der Mehrfachtraktion die neuen Befehle senden und dann den Refresh-Zyklus wieder aufnehmen. Tut sie das nicht, hat man ein Problem.
Zitat
Aber das wäre mit Garantie auch bei der 6021 der Fall! Aber da kann mans ja nicht testen, da die 6021 diese Funktion nicht besitzt um mehrere Adressen faktisch zur Gleichen Zeit mit dem Handregler ansprechen zu können.
Man könnte mehrere Control 80 anschließen und gleichzeitig am Regler drehen... Nicht dasselbe, ich weiß.
Bei PC-Steuerung ist es so, daß die 6021 den Refresh-Zyklus bei neuen Fahrstufen-Befehlen unterbricht, wie es sich gehört. Nach Annehmen eines Befehls nimmt sich die 6021 (wohl im Gegensatz zur Intellibox) aber eine Auszeit von IIRC ca. 10ms, in der sie alles ignoriert, was über die Schnittstelle reinkommt. Währenddessen wird wohl der neue Befehl direkt ans Gleis gesendet.
Nun ist die Frage, was praktischer ist: Eine Zentrale, die alles schnell annnimmt, in ihren Refresh-Zyklus baut und irgendwann sendet, oder eine Zentrale, die alles sofort sendet, was sie kriegt, aber zu schnelle Befehle ignoriert... Auf beides muß ein Programmierer reagieren, wobei ich das Verhalten der 6021 hier - nach der bisherigen Beschreibung - nachvollziehbarer finde.
Bei der Intellibox scheint auch nicht der normale Refresh-Zyklus ein Problem zu sein, sondern der Buffer, in dem die Befehle liegen, die die Refresh-Zyklus unterbrechen (und nur einmal gesendet werden).
Also: Befehl kommt rein und wird in den zweiten Buffer geschrieben, IB unterbricht normalen Refresh und sendet Befehle aus zweitem Buffer und nimmt normalen Refresh wieder auf. Wenn mehr als x Befehle im zweiten Buffer liegen, läuft die IB da bei den ersten paar Einträgen im Kreis. Oder sie sendet nur die ersten Befehle und kehrt zu früh zum normalen Refresh zurück, wo die aktualisierte Information dann natürlich erst dann gesendet wird, wenn die Lok wieder "dran" ist. So habe ich es zumindest verstanden.
Als Programmierer würde ich vermutlich mal testweise die Befehle - wie bei der 6021 - nur so schnell senden, wie die Zentrale sie effektiv rausschicken kann, so daß der zweite Buffer nicht volläuft. Oder auch nach 3 Befehlen eine "Zwangspause" einlegen.
Zitat
Bei diesem Problem kommt dann noch ein ähnlicher Ablauf auf der SChnittstelle zu stande, wenn man das Ganze noch mit dem PC macht. Ich möchte nicht wissen zu welchen Stops es kommt, wenn mit den lausigen 2400Bd der Märklin Geräte (DIe CS ist ja noch nicht auf dem Markt und kann wohl schlecht als Vergleich herangezogen werden) gearbeitet werden muss.
Och nö, jetzt nicht schon wieder dieses Märchen von der langsamen Schnittstelle. 2400 bps bei 8n2 sind ca. 240 Byte / Sekunde, ein Lokbefehl braucht 2 Byte, die maximalen 80 Adressen der 6021 lassen sich also drei Mal pro Sekunde komplett über die ach-so-langsame Schnittstelle schieben.
Das Problem ist a) die Verarbeitungsgeschwindigkeit der 6021, die - wie gesagt - nach jedem Befehl 10ms Denkpause braucht, und b) die Verarbeitungsgeschwindigkeit des Interface, das - nach Absenden eines Befehls - ebenfalls eine Denkpause braucht, bevor wieder der s88-Bus abgefragt werden kann. Beides läßt sich softwareseitig gut angehen, wenn man weiß, was man tut. Ich habe zwar bisher nur ~100 Kontakte, ~22 Loks (davon ~10-15 in Betrieb) und ~40 Weichen, aber die Genauigkeit liegt im Allgemeinen unter 5 cm (konzeptbedingt ohne Bremsverzögerung - eine Software, die die Bremsverzögerung nutzt, muß sie natürlich entsprechend einbauen).
Daß die Intellibox eine höhere Schnittstsellengeschwindigkeit braucht ergibt sich daraus, daß die Adreßräume größer und die Befehle umfangreicher sind. Da wird einfach mehr Protokoll durch die Gegend geschoben. Für den Funktionsumfang der 6021 sind 2400 bps ausreichend.
Bye,
Christian