====== Überwachung der wirklichen Positionen der Drehscheibe, Segmentdrehscheibe oder Schiebebühne UND Überwachung, ob Bühne steht im TrainController Gold 11 ====== Wir haben uns die Frage gestellt, ist es nötig und möglich, die Positionen von Drehscheibe, Segmentdrehscheibe oder Schiebebühne zu überwachen und zurückmelden bzw . auszuwerten. ===== Überlegung ===== In manchen Situationen stimmen die Positionen der erwarteten Stellung der Drehscheibe, Schiebebühne, Segmentdrehscheibe NICHT mit der realen Stellung überein. Wie kann das geschehen? Die Drehscheibe, ... * wird von Hand weitergedreht * wird gesteuert, während TrainController nicht in Betrieb ist * kommt, warum auch immer, nicht am richtigen Ziel an * usw. Abhilfe wäre z.B. das Überwachung der Position der Bühne, am besten auch bei der Drehscheibe direkt über Reedkontakte, die auf S88-Eingänge geschaltet werden. Über dieses Verfahren kann man sogar auswerten, auf welcher Seite gerade das Maschinenhaus steht, da der passende Magnet genau unter diesem montiert wird. ===== Umsetzung in TrainController Gold 11 mit Drehscheibe ===== ==== Der Prozess dazu ==== Der Ablauf in TC: * Bühne steht an einer Position. * S88-Rückmelder wird über Magnet/Reedkontakt ausgelöst. * Die "erwartete" Position der Drehscheibe wird in eine Variable geschrieben * Die "tatsächliche" Position des Reedkontakts (S88-Melder) wird ausgelesen * Ist eine Übereinstimmung vorhanden, passiert nichts. Es wird gemeldet, dass die Drehscheibe die richtige Position **hat**. Ein Befahren der Drehbühne durch Lokomotiven wird möglich. * Ist KEINE Übereinstimmung vorhanden, wird die Bühne soweit - Step-by-Step- gedreht, bis realistische Position auf erwartete Position trifft. ==== Die Berechnung des DELTAS ==== Wir brauchen eine kreisförmige Differenz, also den kürzesten Weg zwischen zwei Positionen auf einer Drehscheibe mit 48 Gleisen. ==== Die Formel ==== === 1. Schritt: Differenz ermitteln === DS_DELTA = DS_IST - DS_SOLL === 2. Schritt: Prüfen, ob der Wert > 24 ist === WENN DS_DELTA > 24 DS_DELTA_normiert = DS_DELTA - 48 === 3. Schritt: Prüfen, ob der Wert < –24 ist === WENN DS_DELTA < -24 DS_DELTA_normiert = DS_DELTA + 48 === Beispiele === SOLL = 3 \\ IST = 47 \\ \\ Differenz: 47 – 3 = **44** \\ 44 > 24 → also: 44 – 48 = –4 \\ \\ → Die Drehscheibe muss 4 Schritte nach rechts. ==== Tabelle zur Drehscheiben‑Differenz (48 Gleise) ==== ^ Schritt ^ Mathematische Operation ^ Wann anwenden? ^ Ergebnis ^ | 1 | DS_DELTA = DS_IST - DS_SOLL | Immer zuerst | Roh‑Differenz | | 2 | DS_DELTA_normiert = DS_DELTA - 48 | Wenn DS_Delta > 24 | Korrigiert nach unten | | 3 | DS_DELTA_normiert = DS_DELTA + 48 | Wenn DS_Delta < -24 | Korrigiert nach oben | ==== Beispiel in der Tabelle ==== ^ SOLL ^ IST ^ Schritt 1: DS_IST - DS_SOLL ^ Schrtt 2/3 ^ Ergebnis ^ Drehscheibe ^ | 3 | 47 | 44 | 44 > 24 --> 44 - 48 = -4 | -4 | Drehscheibe fährt 4 Gleise im Uhrzeigersinn weiter | | 40 | 5 | -35 | -35 < -24 --> -35 + 48 = 13 | 13 | Drehscheibe fährt 13 Gleise gegen Uhrzeigersinn weiter | | 10 | 12 | 2 | Keine Bedingung erfüllt | 2 | Drehscheibe fährt 2 Gleise gegen Uhrzeigersinn weiter | | 1 | 1 | 0 | - | 0 | Drehscheibe steht richtig | ===== Umsetzung in TrainController Gold 11 mit Segment-Drehscheibe ===== ToDo ===== Umsetzung in TrainController Gold 11 mit Schiebebühne ===== ToDo