Vorwort
Wie bereits an anderer Stelle erwähnt, erlaubt
TC* aufgrund seines streng objektorientierten Aufbaus, daß es im
allgemeinen mehrere Wege gibt eine Aufgabe zu lösen.
Hier wird immer nur EINE Lösung dargestellt, die für sich
nicht in Anspruch nimmt allgemeingültig einsetzbar zu sein oder gar die
optimale Lösung zu repräsentieren.
Die Herausforderung für den Leser besteht deshalb gerade darin,
die vorgestellte Lösung an seine Belange anzupassen und zu
optimieren. Sie soll und kann nur als Anregung dienen.
Hinweis
Die hier angeführten Beispiele
basieren zum Teil auf Anregungen bzw. Vorleistungen von
Teilnehmern aus dem TC-Forum, die von diesen dort veröffentlicht
wurden OHNE eine Angabe auf Einschränkung bei deren Verwendung im
PRIVATEN Bereich.
Im Einzelnen läßt sich die jeweilige "Mitwirkung" des / der
Teilnehmer(s) an den hier vorgestellten Lösungen nicht mehr klären
bzw. darstellen.
Darstellungsform
Zuerst wird bei jedem Beispiel die
jeweilige Aufgabenstellung vorgestellt. Danach erfolgt die
Beschreibung eines allgemein gehaltenen Lösungsansatzes. Und als
drittes der spezielle Lösungsweg, so wie er von mir mittels TC*-Objekten
vorgenommen wurde.
Um Platz zu sparen, wurden die einzelnen Bildschirmabzüge, auf
denen die Lösungen erfaßt wurden, in Miniaturansicht eingestellt.
Zur Darstellung der Grafik in lesbarer
Form bitte das jeweilige Bild mit der mouse anklicken !!
Aufgabe eines Blocks und die sich
daraus ergebenden Anforderungen
Bei allen Aufgabenstellungen und Lösungen
spielen die Blöcke in TC* eine wichtige Rolle.
Aus diesem Grunde soll hier (nochmals) auf den Block als solchen
als auch auf die Positionierung der Melder und von Brems- / Halt-
/ Aktions- Markierern eingegangen werden.
- Blockfunktion
Nur innerhalb eines Blockbereichs kann mittels TC* auf
Fahrzeugdekoder zugreifen, d.h. diese einstellen und damit
Fahrzeugfunktionen ausführen.
Alle TC* - Objekte, die in direkter oder indirekter Form,
auf die Fahrzeuge einwirken sollen, müssen einem Block
zugeordnet werden
TC* ist die physikalische Gleislänge in Bezug auf die
Ausführung der diversen Funktionalitäten NICHT bekannt. TC *
richtet sich hier ausschließlich nach der Dauer der Belegung
(aktiver Block). Die Dauer wird durch Zeit der
Aktivierung der / des zugeordneten (realen) Melder(s) bestimmt.
Freigabe von vorher durchfahrenen Fahrwegen / Weichenstraßen
erfolgt bei Erreichen des Zuges am Blockende, d.h. an der
Haltemarkierung (s. unten); dabei reicht der jeweilige
Freigabebereich immer von Melder zu Melder.
Hat der Zug am Ende keinen Wagen mit "leitenden Achsen" und
besteht KEINE eigene "frei" / "belegt" für die Weichenstraßen,
so ist tunlichst darauf zu achten, daß die Blocklänge auch den
gesamten Zug aufnehmen kann. Widrigenfalls sind Unfälle
vorprogrammiert, denn TC* kann nicht erkennen, daß die
durchfahrene Weichenstraße doch noch belegt ist, sie wird für
andere Zugfahrten frei gegeben.
Werden Weichen mit eigenen Meldern auf "frei" / "belegt"
überwacht, so kann eine Freigabe bereits früher erfolgen (s.
Zugfahrtsregeln), nämlich dann, wenn der letzte Wagen (mit
"leitenden Achsen") den Weichenmelder passiert hat. Dies hilft
den gesamten Betriebsablauf flüssiger zu gestalten
- Meldeobjekte
(Reale) Melder werden physikalisch durch einen Stromfluß
oder dessen Unterbrechung ausgelöst und dieses Ereignis wird
über einen Decoder an TC * übermittelt.
Der Melder signalisiert denn Beginn und die Dauer eines
Ereignisses.
Virtuelle Melder werden nur innerhalb von TC *
dargestellt. Sie haben die gleiche Funktionalität wie (reale)
Melder, müssen aber logisch an einen solchen "geknüpft" werden,
damit sie durch ein (reales) Ereignis aktiviert werden
können.
Bahnwärter sind nur innerhalb von TC * darstellbar. Sie
dienen dazu andere TC * Objekte zu überwachen und
bei einem WECHSEL ihres Funktions-Zustandes weitere Aktionen
auszuführen / einzuleiten.
- Markierungen
Bremsmarkierungen:
bewirken den Beginn einer Geschwindigkeitsreduktion, von der
momentanen Geschwindigkeit bei Erreichen der Markierung bis zur
sog. Kriechgeschwindigkeit am Ende der Bremsstrecke; auch Rampe
genannt
Die Bremsmarkierung wirkt nur in die zugeordnete Fahrtrichtung
(Fähnchen-Richtung) und muß einem der obigen Meldeobjekte
zugeordnet sein. Das Meldeobjekt wirkt als Auslöser für die
Markierung.
Die Bremsmarkierungen verfügen noch über die Möglichkeit der
Angabe einer Distanz. Unter einer Distanz ist hier zu verstehen,
daß noch eine bestimmte Wegstrecke zwischen auslösenden
Meldeobjekt und dem Inkrafttreten der Verzögerung (Bremsen)
zurückgelegt werden muß.
Innerhalb eines Blockes und auch in einer Fahrtrichtung können
mehrere Bremsmarkierungen eingerichtet werden, die dann über
deren Bedingungen bestimmten Loks / Zügen / Zuggruppen, etc.
zugeordnet werden können.
Haltemarkierungen:
bewirken den sofortigen Stop eines Fahrzeugs durch Einstellung
der Fahrstufe 0.
Je nach momentaner Geschwindigkeit bei Erreichen der Markierung
und dem Auslaufverhalten der Fahrzeuge erfolgt dann der
tatsächliche Halt innerhalb des vorgegebenen Haltebereichs.
Diese physikalische Gleislänge ist vorher abzuschätzen, so daß
alle Fahrzeuge dort zum tatsächlichen Halten kommen. Ferner ist
zu berücksichtigen, ob diese Markierung sich auf die Zugspitze,
Zugmitte oder Zugende auswirken soll.
Die Haltemarkierung wirkt nur in die zugeordnete Fahrtrichtung
(Fähnchen-Richtung) und muß einem der obigen Meldeobjekte
zugeordnet sein. Das Meldeobjekt wirkt als Auslöser für die
Markierung.
Die Haltemarkierungen verfügen noch über die Möglichkeit der
Angabe einer Distanz. Unter einer Distanz ist hier zu verstehen,
daß noch eine bestimmte Wegstrecke zwischen auslösenden
Meldeobjekt und dem Inkrafttreten des Haltens zurückgelegt
werden muß.
Innerhalb eines Blockes und auch in einer Fahrtrichtung können
mehrere Haltemarkierungen eingerichtet werden, die dann über
deren Bedingungen bestimmten Loks / Zügen / Zuggruppen, etc.
zugeordnet werden können.
Aktionsmarkierungen:
Die Aktionsmarkierung wirkt nur in die zugeordnete Fahrtrichtung
(Fähnchen-Richtung) und muß einem der obigen Meldeobjekte
zugeordnet sein. Das Meldeobjekt wirkt als Auslöser für die
Markierung.
Mit Auslösung der Aktionsmarkierung wird / werden die
Operation(en) gestartet, die dieser Markierung zugewiesen
wurden.
Die Aktionsmarkierungen verfügen über die Möglichkeit der Angabe
einer Distanz. Unter einer Distanz ist hier zu verstehen, daß
noch eine bestimmte Wegstrecke zwischen auslösenden Meldeobjekt
und dem Inkrafttreten des Haltens zurückgelegt werden muß.
Innerhalb eines Blockes und auch in einer Fahrtrichtung können
mehrere Aktionsmarkierungen eingerichtet werden, die dann über
deren Bedingungen bestimmten Loks / Zügen / Zuggruppen, etc.
zugeordnet werden können.
- Reproduzierbarkeit
Brems- und Halte- Funktionen haben bei vielen Modellbahnern
einen hohen Stellenwert, sind sie doch mit dem Auge gut
wahrnehmbar.
Deshalb wird an ihre Reproduzierbarkeit auch ein hoher Anspruch
gestellt.
Der Nutzer sollte sich aber dabei immer vor Augen halten, daß
alle obigen Berechnungen seitens TC * auf Weg / Zeit
Informationen beruhen, die entweder in TC* als
Standardwerte vorliegen oder die individuell für jedes Fahrzeug
durch das sog, Einmessen zu ermitteln sind.
Dies bedeutet, daß sich die Fahrzeuge in ihrem Fahrverhalten zu
jedem Zeitpunkt, im Idealfall, immer gleich verhalten - oder nur
gering abweichen.
Können die Fahrzeuge diese Anforderung nicht erfüllen, dann
bleiben dem Modellbahner nur zwei Wege ..
a)
die Anzahl der Berechnungen so gering als möglich zu halten;
z.B. durch gute Wahl der physikalischen Trennstellen im Gleis in
Bezug auf die fahrtechnischen Belange. Mit anderen Worten,
Distanzen vermeiden.
Ferner sollten die Melder als (reale) Melder ausgeführt werden
und damit keine -- oder nur wenige --virtuellen Melder zum
Einsatz kommen.
b)
Abweichungen in Kauf zu nehmen und diese "unter den
Gegebenheiten" eines speziellen Betriebskonzeptes "zu
verstecken".
- "Blockreichweite"
Um an allen Stellen der Anlage die Fahrzeuge seitens TC*
erreichen zu können, sollten alle Gleise zwischen zwei Weichen /
Weichengruppen einem Block zugeordnet werden. Wenn es aus
betriebstechnischen Gründen notwendig und sinnvoll ist, so
können diese Gleise in mehr als 3 Gleisabschnitte (fahren,
bremsen, halten) unterteilt werden; alle Melder sind aber dem
einen Block zuzuordnen.
Sich direkt auf den Weichen / Weichengruppen befindliche
Fahrzeuge können von TC* nicht mehr erreicht werden, sie
überqueren diese Stellen mit den gegebenen Einstellungen.
-- Im Notfall müssen solche Fahrzeuge, wenn sie liegen
geblieben sind, mit der Zentrale / Handregler gesteuert werden.
--
Handelt es sich um sehr lange Fahrstrecken, so kann man diese
auch in zwei oder mehr direkt aufeinander folgende
Gleisabschnitte und damit Blöcke unterteilen. Dies ist dann
notwendig und sinnvoll, wenn auf einer solchen Strecke mehr als
ein Zug in direkter Folge verkehren soll.
- Meldepunkte / Abschnittslängen
Es ist bei der Auslegung der Abschnittslängen, insbesondere
der Bremsrampe und des Halteabschnitts darauf zu achten, daß
ERST mit Erreichen der Stromabnehmer ODER der ersten "leitenden
Achse" der physikalische Melder ausgelöst wird.
Dies kann bei den verschiedenen Fahrzeugmodellen und Herstellern
zu sehr unterschiedlichen Zeitpunkten bzw. Längen erfolgen. Im
Extremfall kann das eine ganze Loklänge bedeuten.
Beispiel: auf einer Seite befindet sich der Motor mit Haftreifen
und auf der anderen die Stromabnehmer bzw. "leitenden Achsen".
Dies trifft insbesondere bei älteren Modellen zu. Ob die
heutigen Modelle auf solche digitalen Anforderungen Rücksicht
nehmen, ich weiß es nicht ??
Lösung mittels TC *
Zur Verdeutlichung wurde ein Block
herausgegriffen. Er befindet sich als Abschnitt auf der
"Paradestrecke", die vom Anlagenteil Heimhausen zum Abzw
Sonnenhang führt.
Ein Block repräsentiert eine bestimmte
physische Wegstrecke (Abschnitt) auf der Modellbahnanlage. Wie
lang diese (in cm / m) ausgestaltet ist, ist in Bezug auf die
Blockfunktion bzw. Wirkungsweise unerheblich. Ebenso die
Verweildauer eines Fahrzeugs in diesem Abschnitt.
Die Blockfunktion ist solange aktiv, wie
min. 1 Besetztmelder anzeigt, daß sich in dem Abschnitt ein
Fahrzeug (Lok mit oder ohne Wagen) befindet.
Da in aller Regel in dem Abschnitt auch ein
Zug / Lok angehalten werden soll (muß) -- z.B. auf der
Strecke vor einem Blocksignal oder im Bahnhof am Bahnsteig, etc.
-- wird pro Block / Strecken - Fahrtrichtung jeweils ein
sogenannter Brems- und Haltemarkierungen (Punkte) benötigt.
Halte- und Bremsmarkierung benötigen jeweils
einen Bezugspunkt zum Gleis, d.h. zu dem Punkt an dem sie wirken
sollen. Mit anderen Worten sie geben an, ab wo mit dem Bremsen
begonnen werden soll und wo zu halten ist.
Diese Bezugspunkte bilden Melder, die ihrer
Zuordnung wegen sprachlich Brems- und Haltemelder benannt werden.
Im folgenden Bild (bitte
vergrößern) ist ein solcher Block als roter Balken bildhaft
dargestellt. In diesem Block ist die Fahrtrichtung von links nach
rechts.
Innerhalb des roten Balkens sind drei Punkte auszumachen, dies
sind die Melder, links der allgemeine Besetztmelder (von mir auch
Fahrtmelder genannt) - dann folgt der Bremsmelder - und
abschließend der Haltemelder.

Die Bremsmarkierung ist als gelbes und die
Haltemarkierung als rotes Dreieck dargestellt.
Die Wirkungsweise der Bremsmarkierung ist so
definiert, das ein Fahrzeug von seiner momentanen Geschwindigkeit
(die einer Fahrstufe entspricht) bis zum
Ende der Bremsstrecke (Rampe) auf die sog. Kriechgeschwindigkeit
abgebremst wird.
Damit das Programm die Länge der Rampe
kennt, muß diese eingetragen werden. Sie wird dann im gelben
Dreieck (in cm) angezeigt.
Soll das Bremsen NICHT sofort mit dem
Einschalten des Bremsmelders erfolgen, sondern erst eine Strecke
später, dann ist dies durch die Distanz - Angabe dem Programm
mitzuteilen. Wurde eine solche Angabe getätigt (wie
z.B. bei den grauen Markierungen), dann wird der
Entfernungswert (in cm) vor dem Symbol
dargestellt.
Für die Haltemarkierung gilt das gleiche,
allerdings gibt es dort keine Rampe, denn mit Ansprechen der
Haltemarkierung soll sofort gehalten werden
(Fahrstufe 0).
Als drittes Element steht die
Aktionsmarkierung (graues Dreieck) dem Nutzer zur Steuerung des
Ablaufs / der Fahrzeuge zur Verfügung.
Jede Aktionsmarkierung benötigt wiederum
einen Bezugspunkt, d.h. einen Melder. Auch hier läßt sich jede
Aktionsmarkierung auf eine andere Entfernung zum Punkt der
Melderaktivierung einstellen (s. Beispiel: die
Staffelung reicht von 0 cm bis 40 cm).
Die Aktionsmarkierungen in diesem Block
dienen der Funktion "Zugüberholung",
die im Abzw. Sonnenberg stattfinden kann. Sie werden in einem
eigenen Beispiel näher vorgestellt.
Gleisabschnitt <--> Melder
Im vorliegenden Beispiel wurde die
physikalische Wegstrecke (Abschnitt) in drei elektrische
Teilabschnitte unterteilt. Diese drei Teilabschnitte bilden
zusammen die Reichweite des Blocks auf dem Gleis.
Der kürzeste Abschnitt ist der
Halteabschnitt.
Die Länge des Halteabschnitts richtet sich nach der Position der
ersten Stelle an der Lok / an dem Wagen an der eine elektrische
Verbindung zwischen den Schienen bzw. Schiene und Mittelleiter
entsteht; denn der Fahrzeugteil von diesem Punkt bis zum
Fahrzeugbeginn (Kupplungshaken / Puffer) muß ja beim Halten sich
noch immer sicher im physikalischen Block (Reichweite) bleiben.
Der vor dem Halteabschnitt liegende
Bremsbereich ist in seiner Länge (Rampe) so auszurichten, daß ein
Abbremsen der Fahrzeuge optisch noch gut aussieht und die
Kriechgeschwindigkeit kurz vor dem Einsetzen der Wirkungsweise der
Haltemarkierung liegt.
Sollen Fahrzeuge mit sehr unterschiedlicher
Streckengeschwindigkeit am gleichen Punkt anhalten, so muß man
mehrere Bremsmarkierungen setzen und jede den jeweiligen
Fahrzeugen zuweisen.
Die Länge des vor dem Bremsmelder liegenden
"Fahrbereichs" ergibt sich als "Rest" aus der Subtraktion der
beiden vorhergenannten Abschnittslängen von der gesamten
Block-Abschnittslänge.
Im ungünstigsten Fall ist sie 0 cm lang, d.h. hier besteht der
Block dann nur aus 2 Abschnitten und damit besitzt er auch nur 2
Melder; Brems- und Halt- Melder.
Ist diese Strecke hingegen noch mehrere
Meter lang, dann sollte man darüber nachdenken, ob es nicht besser
ist einen oder mehrere Blöcke einzufügen.
Man erreicht damit eine bessere Ausnutzung der Anlage und erzielt
einen dynamischeren Fahrbetrieb.
Die Gesamtlänge des Gleisabschnitts sollte so
bemessen sein, daß auch der längste Zug, der diesen Abschnitt
passiert auf in diesem Gleisbereich halten kann. Auch das sorgt
für eine bessere Durchführung des Betriebsablaufs.
Art der Melder
Im vorliegenden Fall wurden "reale Melder"
verwendet, d.h. jedem TC-Melder ist ein Ausgang eines
Besetztmeldedekoders zugeordnet. An jedem Ausgang besteht eine
Verbindung zum Gleis, so daß ein Stromfluß detektiert werden kann,
wenn sich ein Fahrzeug auf dem Gleis befindet, welches einen
Stromfluß herbeiführt ("leitende Achse" beim Wagen
oder Lok mit Dekoder; bei 3 Leitern werden die beiden
Außenschienen miteinander verbunden, was zum gleichen Ergebnis
führt).
Anstelle des Brems- bzw. Haltemelders könnte
auch ein virtueller Melder eingesetzt werden. Dieser muß dann mit
dem "realen Melder" in TC * verknüpft werden.
Im folgenden Bild ist dies an einem anderen
Block dargestellt.

Die Verknüpfung wird im Register Referenz
hergestellt. Mit Angabe der Distanz wird der "Wirkzeitpunkt"
angegeben. Bezugspunkt ist die Stelle an der der reale
Referenzmelder eingeschaltet wird (z.B. Schienen -Trennstelle).

Bahnwärter
Bahnwärter haben eine spezielle
Aufgabenstellung, die darin besteht andere TC* Objekte zu
beobachten und auf einen Statuswechsel derselben zu reagieren.
Sollen diese Bahnwärter mit ihren
Operationen auf Fahrzeug-Decoder einwirken, dann müssen diese
Bahnwärter auch dem jeweiligen Block zugeordnet werden auf dessen
Fahrzeuge eingewirkt werden soll.
Am Beispiel eines
Abstellgleises mit Licht
EIN sei dies demonstriert. Der Bahnwärter ist ganz rechts im
roten Balken angeordnet.

Darstellung der Melder im Stellwerk
TC * bietet grundsätzlich zwei
Varianten an, die Melder zu deklarieren ...
- über die Werkzeugleiste
In diesem Fall wird das ausgewählte Objekt (Typ) in ein per
mouse markiertes Planquadrat des Stellwerks abgelegt.
Damit es Wirkung auf den Fahrbetrieb entfalten kann muß es in
den Block mittels der Eigenschaften des Blocks übernommen /
integriert werden.
Optisch bleibt das Objekt aber im Stellwerk weiterhin sichtbar
und per mouse auch bedienbar.
- über die Eigenschaften des Blockes als
neues Objekt
In diesem Fall wird das ausgewählte Objekt (Typ) direkt in den
roten Balken des Blocks integriert.
Das Objekt erscheint nicht separat in einem Planquadrat des
Stellwerks; somit kann es optisch auch nicht beobachtet oder per
mouse bedient werden.
Ich habe mich bewußt in diesem Projekt aus den oben genannten
Gründen für die "Werkzeugleiste" entschieden. Insbesondere bei der
Simulation und bei der Suche im Problemfall hat sich das
außerordentlich gut bewährt.
Da sich alle Objekte wahlweise im "nicht Editiermodus" ein- /
ausblenden lassen, stellt sich das Stellwerk im operativen Einsatz
genauso dar, als wenn die Objekte direkt in den Block integriert
werden.
Reproduzierbarkeit oder "real" vs.
"virtuell"
Aus den obigen Darstellungen ist
ersichtlich, daß alle Beziehungen der Objekte untereinander,
sofern sie nicht realer Natur sind, auf Längenangaben basieren.
TC* führt in all diesen Fällen eine
Weg / Zeit - Berechnung durch. Dabei wird der eingestellten
Fahrstufe eine "Standard" oder "eingemessene" Geschwindigkeit
zugeordnet und auf dieser die Zeit berechnet, die zum Durchfahren
der angegeben Länge (Wegstrecke) vergehen darf. Ist diese Zeit
abgelaufen, so geht das Programm davon aus, daß der korrekte Punkt
(auf dem realen Gleis) erreicht ist und führt die dem Objekt
zugewiesenen Anweisungen aus.
Es ist offensichtlich, daß die
Reproduzierbarkeit sehr stark von der Hardware des eingesetzten
Fahrzeugs und von dem eingesetzten digitalen System abhängig ist.
Werden reale Melder verwendet, so reduzieren
sich diese Ungenauigkeiten, da ja real der Beginn des Bremsens
oder Haltens gemeldet wird. Es ist also gleich, wie lange das
Fahrzeug nun wirklich benötigt.
Ungenauigkeiten werden nicht auf addiert, gegenüber bei einer
Verwendung von nur einem Melder und zwei virtuellen.
Solche Konstrukte habe ich nur dort
eingesetzt, wo sich später gezeigt hat, das es sinnvoll ist eine
Strecke nochmals zu untergliedern und wo es sehr unwahrscheinlich
ist, daß hier Züge angehalten werden müssen. Sollte das doch mal
der Fall sein, dann kommt es auf eine Genauigkeit nicht an.
Einflußfaktoren des Blocks auf den
betrieblichen Ablauf
Muß / Soll ein Zug in einem Block halten, so
kommt die Kombination Bremsbereich und Haltebereich zum Tragen.
Fährt aber ein Zug durch, dann hat der
Haltemelder trotzdem eine Funktion (wenn er fehlt
Ersatzweise das Blockende == letzte reale Melder wird
ausgeschaltet); nämlich die, daß die zurückliegende
Weichenstraße(n) frei gegeben wird / werden UND das erst ab hier
Beschleunigungen vorgenommen werden für die nächste Strecke.
Der Grund liegt darin: wurde über Weichen mit einer
geringeren Geschwindigkeit gefahren so ist beim Haltemelder für
das Programm erst ersichtlich (wenn Zuglänge <
Blocklänge), daß der gesamte Zug die Weichen passiert hat.
Werden den Weichen eigene reale
Besetztmelder zugeordnet, dann ist für das Programm auch ein
früherer Zeitpunkt erkennbar (erfordert die
Einstellung "intelligent" in den Zugregeln). Durch die
frühere Weichenstraßenfreigabe und einer früheren Erhöhung der
Zuggeschwindigkeit kommt ein flüssiger Betriebsablauf zustande.
Voraussetzung
zum korrekten Ablauf ist natürlich, daß der Zug auch für das
Programm per Besetztmeldung sichtbar bleibt, d.h. auch die Wagen
müssen von der HW so ausgestaltet sein, daß eine Detektion möglich
ist.