====== Ü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