Seit drei Wochen kämpfe ich wieder einmal mit den Tücken der Programmierung. Ich bin schon weit fortgeschritten in der Positionskontrolle eines fahrenden Zuges. Die Anlage macht über Besetztmelder eine Rückmeldung an das Programm. Nun habe ich festgestellt, dass immer wieder einmal ein Link (= nicht überwachter Gleisabschnitt zwischen 2 Blöcken) eine Freimeldung anzeigt, aber die beiden angrenzenden Blöcke noch als belegt im Programm erscheinen. Das stört die Positionsberechnung ungeheuer, nebst der Tatsache, dass das gar nicht möglich sein kann. Denn innerhalb eines belegten Bereiches durch einen Zug muss durchgehend "belegt" gemeldet werden.
Heute habe ich die Ursache gefunden. Die Links sind eben nicht überwacht und werden darum nur gerechnet, ob sie belegt sind oder nicht. Die Blöcke zeigen gemessene Zustände, ob sie belegt sind oder nicht. So weit war das eigentlich immer klar. Aber es gibt eine Falle in der Hardware. Die Selectrix-Decoder von Rautenhaus kann man so programmieren, dass sie eine Sekunde Abfallverzögerung abwarten, bis sie wieder "frei" anzeigen. Das ist wichtig, damit das Signal des Decoders nicht flackert bei den letzten Achsen des Zuges. Während dieser Verzögerungszeit läuft aber leider das Programm 13 Mal durch mit dem "freien Link".
Nun gibt es 2 Möglichkeiten: ich schalte die Verzögerung ab, dann gibt es aber "Flackerschaltungen", oder dann verliere ich eine Sekunde Genauigkeit. Bei 80 km/h beim Vorbild gibt das eine ungenaue Position von etwa 30 cm!
Da werde ich auf die Positionsbestimmung mit dem Zugende verzichten müssen. Der Kopf des Zuges erzeugt beim Beginn der Belegung keine Verzögerung. Mal schauen!
Gruss Oski