Liebe Modellbahnkollegen
Ich habe ein Problem mit meiner CS2, das immer erst nach einigen Minuten Fahrbetrieb auftritt, speziell dann, wenn der Fahrstrom kurz abgeschaltet werden musste.
Ich fahre mit folgender Konfiguration:
- CS2 60213,
(die CS2 versorgt nur die Magnetartikeldecoder mit Strom.)
HW-Version 3.1
SW-Version 1.6.4(3)
GFP 1.38
- Booster 60174 mit Schaltnetzteil 100 VA versorgt alle Gleise
- Terminal 60125 - Connect 60128 - CU 6021 als Fahrpult im Nebenraum
Es gibt 3 mfx-Lokomotiven, die anderen werden mit MM2 angesteuert.
Die Rückmeldung erfolgt über 4 LDT S88 und daS LDT HSi-S88 Interface und USB. (an der CS2 ist kein S88 angeschlossen).
Die CS2 ist über LAN-Kabel mit dem PC verbunden.
Dort läuft eine selbst geschriebene Software (C#), die verschiedene Fahrprogramme mit mehreren Tasks (mehrere Züge gleichzeitig) steuern kann.
Die Software schickt nur die Befehle
CAN 08 (Lok-Geschwindigkeit)
CAN 0A (Lok-Richtung)
CAN 0C (Lok-Funktion) und
CAL 16 (Magnetartikel-Steuerung)
ab und wartet auf das Quittieren durch die CS2. Das erfolgt normalerweise innerhalb von wenigen Millisekunden.
Nun tritt aber ab und zu der Fall auf, dass die CS2 erst nach mehreren Sekunden quittiert und dann ist z.B. ein punktgenaues Halten nicht mehr möglich. Oder im ungünstigsten Fall kommt das Programm aus dem Takt, weil ein Zug, der mit der vorher eingestellten Geschwindigkeit weiterfährt, längst über eine erwartete Kontaktschiene hinausgefahren ist.
Das Programm schreibt auf Wunsch den gesamten Datenverkehr auf dem CAN-Bus mit und einen Auszug aus diesem Protokoll füge ich mit ein paar Kommentaren unten ein. In der Zeit, wo die CS2 nicht antwortet, laufen etliche Datenpakete über den CAN-Bus. Ich konnte sie aber mit der Mä-Dokumentation nicht interpretieren (Das kann aber durchaus an meinem mangelnden Verständnis liegen). Das Problem tritt bevorzugt dann auf, wenn der Fahrstrom unterbrochen wurde. Ich vermute, die CS2 sucht dann wieder die mfx-Loks und ist in dieser Zeit nicht bereit für andere Befehle.
Jetzt meine Frage an die Experten unter Euch: Ist das so, dass die CS2 nach einer Stromunterbrechung eine Pause braucht ?
Und kann man das eventuell unterbinden? Ich könnte natürlich eine Funktion einbauen, die alle Züge stoppt und sagen wir nach 20 Sekunden wieder mit der alten Geschwindigkeit anfährt, aber ich fürchte, auch die STOP-Funktion wird von der CS2 auf die lange Bank geschoben.
So hier ist das Protokoll (auszugsweise):
DEBUG Protokolldatei
28.01.2012 11:53
========================
ZEIT : Ereignis
....
....
704,39 : Task 4:BR23: 800V: TSKG 59
704,42 : Task 0:E63 : 750V: TSKG 53
704,42 : Task 1:----:-----: WAIT 10000
704,42 : Task 2:----:-----: IFNK S
704,42 : Task 3:STLB: 0V: IFNC 81
704,42 : Task 4:BR23: 800V: TSKG 59
704,44 : Task 0:E63 : 750V: LOCV 3
CAN-Befehl: Geschwindigkeit der E63 (Adresse 0 auf "750/1000"
704,44 : PC 00 08 03 00 06 00 00 00 08 03 B6 00 00
Was tut die CS2 jetzt ???
704,45 : CS2 00 03 03 00 06 4F FF FF FF 06 00 3E 00
704,56 : CS2 00 00 03 00 06 43 53 53 62 30 00 3E 00
704,67 : CS2 00 00 03 00 06 43 53 53 62 30 01 3E 00
704,78 : CS2 00 03 03 00 06 4B FF FF FF 06 00 3E 00
704,89 : CS2 00 00 03 00 06 43 53 53 62 30 00 3E 00
705,00 : CS2 00 00 03 00 06 43 53 53 62 30 01 3E 00
705,11 : CS2 00 00 03 00 06 42 6F 56 20 30 81 3E 00
705,22 : CS2 00 00 03 00 07 42 6F 56 20 30 83 15 00
705,33 : CS2 00 03 03 00 06 4F FF FF FF 06 00 15 00
705,44 : CS2 00 00 03 00 06 43 53 53 62 30 00 15 00
705,55 : CS2 00 00 03 00 06 43 53 53 62 30 01 15 00
Die Rückmeldungen über den HSI-S88 und USB laufen parallel ungestört
705,56 : USB gelesen, L = 6
705,66 : CS2 00 03 03 00 06 4B FF FF FF 06 00 15 00
705,77 : CS2 00 00 03 00 06 43 53 53 62 30 00 15 00
705,88 : KOGL 59:True
705,88 : CS2 00 00 03 00 06 43 53 53 62 30 01 15 00
705,99 : USB gelesen, L = 12
705,99 : CS2 00 03 03 00 06 4F FF FF FF 06 00 15 00
706,09 : CS2 00 00 03 00 06 43 53 53 62 30 00 15 00
706,20 : CS2 00 00 03 00 06 43 53 53 62 30 01 15 00
706,27 : KOGL 53:False
CS2 quittiert den Befehl zur Geschwindigkeit erst nach ca. 4 Sekunden
708,28 : CS2 00 09 33 10 06 00 00 00 08 03 B6 00 00
....
....
aber es kommt noch schlimmer:
....
....
713,38 : Task 1:----:-----: WAIT 10000
713,38 : Task 2:----:-----: IFNK S
713,38 : Task 3:STLB: 0V: IFNC 81
713,38 : Task 4:BR23: 800V: MAGN S23 ROT
Befehl zum Schalten Magnetartikel S23 auf rot
713,38 : PC 00 16 03 00 06 00 00 30 7B 00 01 00 00
713,38 : KOGL 49:False
713,38 : KOGL 49:True
713,38 : KOGL 49:False
713,39 : KOGL 49:True
713,39 : KOGL 49:False
713,39 : KOGL 49:True
CS2 macht irgendwas
713,47 : CS2 00 00 03 00 06 43 53 53 62 30 01 00 00
713,58 : CS2 00 03 03 00 06 49 9F FF FF 0C 00 00 00
713,66 : USB gelesen, L = 6
713,69 : CS2 00 00 03 00 06 43 53 53 62 30 00 00 00
713,80 : CS2 00 00 03 00 06 43 53 53 62 30 01 00 00
713,91 : CS2 00 00 03 00 06 42 6F 56 20 30 81 00 00
713,92 : KOGL 49:False
714,02 : CS2 00 00 03 00 07 42 6F 56 20 30 83 22 00
714,13 : CS2 00 03 03 00 06 49 8F FF FF 0C 22 22 00
714,24 : CS2 00 00 03 00 06 43 53 53 62 30 00 22 00
714,34 : CS2 00 00 03 00 06 43 53 53 62 30 01 22 00
714,45 : CS2 00 03 03 00 06 49 8F FF FF 0D 00 22 00
714,56 : CS2 00 00 03 00 06 43 53 53 62 30 00 22 00
714,67 : CS2 00 00 03 00 06 43 53 53 62 30 01 22 00
714,78 : CS2 00 36 83 30 00 43 53 53 62 30 01 22 00
714,89 : CS2 00 03 03 00 06 49 87 FF FF 0D 00 22 00
715,00 : CS2 00 00 03 00 06 43 53 53 62 30 00 22 00
715,11 : CS2 00 00 03 00 06 43 53 53 62 30 01 22 00
715,22 : CS2 00 03 03 00 06 49 8F FF FF 0D 00 22 00
715,33 : CS2 00 00 03 00 06 43 53 53 62 30 00 22 00
715,44 : CS2 00 00 03 00 06 43 53 53 62 30 01 22 00
715,55 : CS2 00 00 03 00 06 42 6F 56 20 30 81 22 00
715,66 : CS2 00 00 03 00 07 42 6F 56 20 30 83 00 00
715,77 : CS2 00 03 03 00 06 49 87 FF FF 0D 00 00 00
715,88 : CS2 00 00 03 00 06 43 53 53 62 30 00 00 00
715,99 : CS2 00 00 03 00 06 43 53 53 62 30 01 00 00
716,09 : CS2 00 00 03 00 06 42 6F 56 20 30 81 00 00
716,20 : CS2 00 00 03 00 07 42 6F 56 20 30 83 00 00
716,31 : CS2 00 03 03 00 06 49 87 FF FF 0E 00 00 00
716,42 : CS2 00 00 03 00 06 43 53 53 62 30 00 00 00
....
....
Erst ganze 7 Sekunden später kommt die Quittierung und der
Befehl wird ausgeführt.
720,38 : CS2 00 17 33 10 06 00 00 30 7B 00 01 00 00
Herzlichen Dank für Eure Hilfe.
Wolfgang