Struktur des Programms
Das Programm TC * ist software-technisch
streng objektorientiert konzipiert und entwickelt worden.
Dies bedeutet für den Nutzer, daß er eine Reihe von "Bausteinen"
(gem. Informatik: Objekte) angeboten bekommt, die er nach seinen Bedürfnissen so
zusammenfügen muß, daß seine individuelle Modellbahnanlage in TC
*
entsteht bzw. abgebildet wird.
Die "Bausteine" haben unterschiedliche Funktionen, wie dies
auch bei einem Hausbau der Fall ist. Sie werden, ebenso wie beim
Hausbau, auf unterschiedliche Art und Weise miteinander verbunden,
so daß ihre Funktionen gemeinsam ein Ganzes ergeben.
Eine weitere, mehr intern wirkende Objekt-Klasse, ist die
Schnittstelle zu den diversen digitalen Systemen, die TC *
unterstützt; d.h. mit deren Zentralen über die PC-Schnittstellen
COM.... und USB... zusammenarbeiten.
Wieder im Vordergrund stehend ist das
"Mensch-Maschine-Interface", das Display und die Menü-Führung.
Die Darstellung und die Konfiguration des Programms TC *
selbst, als auch seiner Objekte ("Bausteine"), orientieren sich an
den gewohnten Microsoft Produkten.
Prinzip der Adressierung --
Hardware Schnittstelle
-- am Beispiel des Selektrix - Systems --
-- TC stellt für jedes digitale System und dann wieder für jede
unterstützte HW Komponente (z.B. Zentrale, Dekoder, etc) eigene
Schnittstellen bereit. --
-- vergleiche hierzu die Internetseiten von Freiwald Software --
Das Programm TC * steuert die
angeschlossenen "stationären" digitalen Decoder des
angeschlossenen / verwendeten Digitalsystems über dessen
Zentrale(n).
An jeden Decoder werden in der Hardware x Magnetartikel, LEDs,
Signale, etc. angeschlossen; wobei x von dem Decodertyp abhängig
ist.
Jedes Digitalsystem hat sein eigenes Adressierungsschema,
das von Selectrix (SX) * sieht folgendermaßen aus....
- an eine SX-Zentrale können 1 - 3 sog. SX-Busse angeschlossen
werden
- Jeder SX-Bus kann 103 Adressen steuern (SX 2 -- zum Fahren
heute mehr)
- Zur Ansteuerung eines Decoders wird mindestens EINE Adresse
benötigt;
in einigen Fällen kann ein Decoder allerdings noch weitere 2
Adressen auf dem SX-Bus belegen, die dann der Rückmeldung dienen
(z.B. Weichenstellung, Lokadresse) -- abhängig von dem
Decodertyp
- Pro Adresse lassen sich 8 Funktionen (Ausgänge) steuern mit
den jeweiligen Zuständen "ein" (0) und "aus"
(1).
Von der Informatikseite her betrachtet entspricht dies 8 Bits (
= 1 Byte).
Umgesetzt auf die HW bedeutet dies das Schalten von z.B. 8
Weichen.
- Jede Zentrale hat einen COM / USB Anschluß am PC; hier
begrenzt der PC-Schnittstellenausbau die Anzahl der
anschließbaren Zentralen
- TC * kann eine beliebige Anzahl von Zentralen
ansteuern; sofern der PC die Anzahl von den Schnittstellen her
unterstützt
Somit sieht aus Sicht von TC * das Aktivieren einer
Hardware-Funktion so aus ....
>> Auswahl der Zentrale >> Auswahl des SX-Busses
(durch Bus-Nr) >> Auswahl des Decoders
(durch Adresse) >> Auswahl der
Funktion / Ausgangs => Objekt (durch Bit-Nr)
>> Einstellung des Zustandes => durch
Bit Stellung = 0
/ 1.
Prinzip der Repräsentierung der Hardware Objekte mittels TC
- Objekten
Hardware Objekte können z.B. sein ....
- Gleis(e)
- Weichen
- Signale
- Drehscheiben u. sonstige Bühnen
- Lok-Dekoder
- Zug-Beleuchtungs-Decoder
- Sound-Decoder
In TC * stehen für die "stationären" Objekte in der
erstgenannten Gruppe entsprechende "Objekt-Symbole" zur Verfügung.
Jedes Objekt besitzt sog. EIGENSCHAFTEN. Durch Spezifizierung der
einzelnen "Teileigenschaften", wie Name, Anschluß, etc. erhält
jedes Objekt eine spezifische und individuelle Note und Zuordnung
zum Hardware Objekt.
Ferner lassen sich die Objekte über die Eigenschaften teilweise
auch in Form und Farbe den eigenen Wünschen (Bahnbetreibern,
Bahnepochen) anpassen.
In Analogie zum Hausbaustein (Objekt) z.B. Fenster, dessen
Eigenschaften wie Glasart, Höhe, Breite, Flügel, Farbe, etc. das
Fenster auch individuell bestimmen.
Diese stationären Objekte, in einem "Stellwerk
zusammengefügt" repräsentieren den Gleisplan.
Objekte aus der zweitgenannten Gruppe, sind "mobile"
Objekte und in einem Fahrzeug, z.B. Lok eingebaut.
In TC * lassen sich Fahrzeuge, z.B. Loks deklarieren.
Im
Prinzip verwendet man auch hier ein Objekt, wie zuvor, und
konfiguriert es über seine Eigenschaften; allerdings werden diese
Objekte nur indirekt im Stellwerk dargestellt.
Die einzelnen Objekte werden in einer Tabelle ("Datenbank")
erfaßt, dargestellt und zur Auswahl für den Einsatz angeboten.
Die Darstellung des Einsatzes selbst erfolgt in sog. Blöcken, wobei das Objekt -- wenn
sich das Fahrzeug bewegt -- von Block zu Block wandert.
Definition von TC* - Block und Melder
sowie ihr Zusammenwirken (Prinzip)
Ein Block repräsentiert einen
Fahrwegs-Abschnitt auf der realen Anlage.
Die Verbindung zwischen zwei Blöcken wird in TC* als
Weichenstraße bezeichnet, unabhängig davon, wieviel Weichen sich
in dieser befinden; auch wenn es keine Weichen gibt, so wird in
TC* die gleiche Bezeichnung verwendet.
Mittels des Einsatzes eines HW-Melders pro Abschnitt wird
dessen Zustand (frei / besetzt) ermittelt und als Information an
den ihn repräsentierenden Block übertragen.
Die Grundfunktion des Blocks ist die Steuerung der Fahrzeuge,
z.B. Loks; d.h. in TC* kann nur dann eine Lok durch das
Programm gesteuert werden, wenn sich diese in einem Block
befindet.
Dies bedeutet wiederum, die Software muß intern eine temporäre
Verbindung zwischen dem "statischen" Block und dem "mobilen
Fahrzeug-Objekt" herstellen. Oder mit anderen Worten die Software
muß das Fahrzeug von Block zu Block bewegen.
Die jeweiligen Melder in den Abschnitten zeigen die reale
Fahrzeugbewegung an.
Mit Beginn der Konfiguration der "Betriebssituation" muß ein
"mobiles Objekt", aus der "Lok-Tabelle" ausgewählt
und einem Block manuell (oder automatisch bei
einem zusätzlichen Hardware-Identifizierungssystem >
"Zugerkennung") zugewiesen werden.
Es lassen sich also NUR in der Tabelle erfaßte Objekte in den
Betriebsablauf einbinden!!
Im Laufe des "Betriebsablaufs", sprich bei Zugfahrten, wird das
"mobile Objekt" vom Start-Block zum Ziel-Block bewegt, wobei
es dazwischenliegende Blöcke temporär reserviert und belegt.
Aus der Grundfunktion abgeleitet, das NUR in Blöcken Einfluß
auf die "mobilen Objekte" genommen werden kann, müssen im
Gleisbild und damit indirekt auf der Anlage überall dort Blöcke
angelegt / eingefügt werden, an denen eine Beeinflussung der
realen Zugfahrt stattfinden soll.
Aufgrund der Zugfahrt, von A nach B, weiß das Programm, welchen
Weg das Fahrzeug, z.B. Zug, nehmen soll. Der SOLL - Zustand ist
damit bekannt.
Was fehlt ist der dynamische IST - Zustand.
Dieser muß von der Hardware her geliefert werden. Hierzu dienen
unterschiedliche Identifikationsverfahren und Methoden, je nach
digitalem System.
Allgemein wird von einem Melder gesprochen, der den
Besetzt-Zustand vom Sensor erkennt, diese Information kodiert und
über die Zentrale an PC und damit TC * meldet.
In TC * wird ein solcher Sensor als TC * - MELDER mit einem
eigenen Symbol (= Objekt) repräsentiert. Dieser TC *- Melder wird
ebenfalls über seine Eigenschaften konfiguriert UND über die
Eigenschaften des Blocks mit diesem "verheiratet".
Somit erfährt das Programm, wenn an einem bestimmten, dem
HW-Melder zugeordneten Punkt auf der Anlage sich ein "mobiles Objekt" befindet >> TC *- Melder ist aktiviert.
Block UND TC *- Melder beschreiben also einen ganz bestimmten
Punkt / Abschnitt auf der Modellbahnanlage.
Soll bei einer Zugfahrt diese auch idealtypisch, vorbildhaft,
beendet oder an bestimmten Punkten unterbrochen werden, dann
benötigt das Programm weitere, genauere Informationen über ...
- den Ort, an dem der Bremsvorgang eingeleitet werden soll
- den Ort, an dem der Halt erfolgen soll
Auch hier müssen TC *- Melder, die auf der Anlage einen bestimmten
Punkt abbilden, innerhalb eines Blockes deklariert werden.
Diese Art von TC-Meldern (Bremsen, Halten) sollten als reale
HW-Melder (Sensoren) ausgeführt werden; sie können unter bestimmten
Randbedingungen aber auch virtueller Natur (Details siehe
Blöcke im linken Register) sein.
Darstellung von Anlage - Blöcken mittels TC *
Ein Block ist definiert als ein Gleisabschnitt, in dem z.B. ein
kompletter Zug fahren oder abgestellt werden kann (z.B. Abstellgleis,
Gleis am Bahnsteig, Streckenblock).
Damit richtet sich die Blocklänge (= Gleislänge) - als Minimum
- nach dem längsten Zug / Zugverband, der auf der Anlage in diesem
SEKTOR (Abschnitt) jemals
fahren soll.
In aller Regel wird der Block begrenzt durch, z.B.
- eine sich jeweils ("links und rechts") anschließende Weichenstraße
- einen Prellbock (Stumpfgleis)
- Signale -- auf der Strecke
- oder einer Kombination von diesen
In TC * erfolgt die Darstellung des Fahrwegs eines
Anlagen-Blocks durch "Gleis - Objekte" in einem sog. Stellwerk - Fenster.
Allerdings erlauben diese "Gleis - Objekte" keine Beeinflussung von "mobilen
Objekten". Da aber in allen Anlagen-Blöcken (Fahrwegen) solche Beeinflussungen
stattfinden müssen, MUSS mindestens ein TC * - Block in die
Darstellung des Fahrwegs im Stellwerk eingefügt
werden, dieser repräsentiert dann fahrtechnisch den Block auf der
Anlage.
Sich im Stellwerk links und rechts an den TC * - Block anschließende "Gleis - Objekte" sind in
dieser Betrachtung "optisches Beiwerk" zur persönlichen
Ausgestaltung des Stellwerks.
Einige TC* Nutzer lassen die Blöcke auch optisch
direkt aneinander stoßen, sofern sich dazwischen keine
Weichen-Symbole befinden.
Allerdings, wenn z.B. komplexere Zugbewegungen (Trennen /
Zusammenfügen von Wagen; Doppeltraktionsbildung, Lokwechsel, u.ä.)
in einem Anlagen-Block stattfinden sollen, dann werden mehr
HW-Melder (Sensoren) und TC * - Blöcke innerhalb eines
Anlagen-Blocks benötigt.
Somit wird, je nach späterer Betriebssituation ein Anlage-Block
u.U. auch durch mehrere TC * - Blöcke abgebildet.
SONDERFALL, in Abstell- / Schatten- Bahnhöfen sollen manchmal
auch auf / in einem Anlage-Block zwei kurze oder ein langer Zug
abgestellt werden können. In einem solchen Fall muß der
Anlagenblock durch zwei TC * - Blöcke repräsentiert werden,
WOBEI dann spezifische, einzustellende Regeln (in GOLD) zu
aktivieren sind.
Anmerkung !!!
Unabhängig von dem vorgenannten gilt für das Programm und der
"internen Ablaufsteuerung":
...
der Bereich zwischen zwei TC*-Blöcken wird in TC* als
Weichenstraße bezeichnet, gleichgültig, ob sich dort wirklich eine
/ mehrere Weiche(n) befindet(n) ODER keine; es sich also um eine
reine "direkte" Verbindung handelt.
Schnittstellen in den Gleisen (Gleistrennungen)
Gleistrennungen müssen überall
dort vorgenommen werden, wo mittels HW-Meldern detektiert werden
soll, daß sich in einem definierten Gleisabschnitt ein Fahrzeug
(Lok) befindet. Wie diese Information jeweils ausgewertet wird,
ist dann Gegenstand der Konfiguration der Anlage mittels TC*.
Segmentierte Gleisplandarstellung mittels TC * -
"Konnektoren"
Die Modellbahnanlage läßt sich mit Hilfe der zuvor genannten
TC* - Objekte ("Bausteine") auf dem PC-Display in einem sog.
TC* - Stellwerk (Fenster) abbilden.
Wenn es sich um eine umfangreiche Anlage handelt, dann kann der
PC Bildschirm auch "zu klein" werden. In einem solchen Fall
legt TC* bei der Erstellung (Zeichnen) des Gleisplans
Scroll-Balken an, so daß eine "beliebig" große Darstellungsfläche
zur Verfügung steht.
Das Problem dabei ist, die spätere Verfolgung der Fahrzeuge und
die Steuerung des Betriebsablaufes sind nicht mehr gut zu
handhaben.
TC* bietet daher eine weitere Methode zur Darstellung an.
Es lassen sich "beliebig" viele Stellwerk-Fenster erstellen. In
diese kann jeweils, nach eigenem Design-Wunsch, ein Teil des
gesamten Gleisplans der Modellbahnanlage dargestellt werden.
Damit diese Teilbereiche "software technisch" miteinander
verbunden werden können, gibt es die sog. Konnektoren, die
jeweils an ein "Gleis-Objekt" angefügt werden müssen.
Es gelten die "Gleis-Objekte" als miteinander verbunden, welche
die gleiche Kennung tragen, z.B. einen Buchstaben. Es ist dabei
unerheblich von welchem Stellwerk-Fenster zu welchem anderen die
Verknüpfung hergestellt wird.
Anmerkungen:
Konnektoren, die direkt z.B. an einen Block, eine Weiche,
etc. angefügt werden, funktionieren nicht in der gewünschten Art
und Weise -- es muß ein "Gleis-Objekt" als Konnektor-Anschluß
verwendet werden!!
Auch innerhalb eines Stellwerk-Fensters lassen sich
"Gleis-Objekte" so miteinander verbinden.
Definition von TC* - Taster, Umschalter,
Ein-Aus-Schalter
TC* - Taster, Umschalter,
Ein-Aus-Schalter sind wiederum mächtige "Bausteine", die sich
vielfältig integrieren lassen.
Diese Funktionen können einem realen HW-Objekt
entsprechen, müssen es aber nicht. Im letzteren Fall sind sie dann
virtuell.
Ein reales HW-Objekt ist dann allerdings nicht (nur) die Taste
/ der Umschalter / der Ein-Aus-Schalter selbst SONDERN das Objekt,
welches die Tastenfunktion übernimmt; hier im digitalen System ein
Decoder oder besser gesagt ein Decoder-Schalt-Ausgang und damit
wird die Taste / der Umschalter / der Ein-Aus-Schalter
zum Repräsentanten des dort angeschlossenen HW-Objekts.
Dies hat deshalb große Bedeutung, da auf diese Art und Weise alle
nicht vordefinierten HW-Objekte (z.B. jede Menge "Zubehör")
in den Betriebsablauf einbindbar sind.
Werden die so aktivierten HW-Objekte dann mittels eines Sensors
/ Melders überwacht, so sind beliebige Steuerungsabläufe denkbar.
Hinweis:
In der TC* - Gold - Version kann das LayOut der TC*-Objekte an die eigenen Wünsche
angepaßt werden; z.B. durch einen "symbolischen Kran". Dies
erleichtert die Zuordnung zum HW-Objekt.
Die Objekte können individuell so konfiguriert werden, daß sie im
Operationsmodus sichtbar sind oder auch nicht; je nach Bedarf. Im
Editiermodus sind sie immer sichtbar.
Einem virtuellen TC* - Taster, Umschalter,
Ein-Aus-Schalter wird in den Eigenschaften KEINE Adresse
zugewiesen.
Diese Objekte können im Gleisplan "sichtbar" sein und dort als
"Mensch-Maschine-Interface" fungieren (z.B. Start- / Ziel-
Taste).
Sie lassen sich allerdings auch "ausblenden" und sind dann nur
im Editiermodus sichtbar. Diese Darstellungsweise wird oft
gewählt, wenn diese TC* - Objekte als "Zustandspeicher"
oder "Merker" Verwendung finden. Es lassen sich also Zustände
merken und auch abfragen, was wiederum eine Fülle von Variabilität
zuläßt.
Alle vorgenannten TC* - Objekte werden ebenfalls in ihren Eigenschaften und
damit in den einzelnen Registern konfiguriert und erlauben /
unterstützen so die Steuerung des TC* - Betriebsablaufes.
Definition von TC* -
"erweitertem Zubehör"
(Gold)
Das "erweiterte Zubehör" liefert ein paar
"Grundbausteine" mit denen sich neue, spezifisch - eigene,
komplexe Bausteine entwerfen lassen; inklusive eigener interner
Ablaufstrukturen.
Diese Bausteine lassen sich dann, wie die
bekannten TC Objekte, in das Stellwerk einbinden und mit allen
anderen in der bekannten Art und Weise verknüpfen.
Im TC-Wiki findet der Leser
Beispiele aus diesem Bereich.
Definition von TC* - "virtuellem Kontakt"
Dieses TC * - Objekt hat unmittelbar
keine Entsprechung in der Hardware, allerdings benötigt dieses
Objekt eine mittelbare Entsprechung in Form eines TC* -
Melders.
Der "virtuelle Kontakt" erlaubt eine Reduzierung von physischen
Meldern. Seine Funktionalität entspricht einem TC* -
Melder.
Da beim virtuellem Kontakt allerdings der Einschaltpunkt von TC*
anhand von Fahrzeugprofilen dynamisch berechnet wird, müssen die
Fahrzeuge sehr gut mittels der entsprechenden TC * Funktion
eingemessen sein (Weg / Zeit - Diagramm).
Anderenfalls kommt es zu größeren zeitlichen und damit im
Betriebsablauf auch zu größeren örtlichen Abweichungen.
Definition von Bedingungen &
Co in den Objekt-Eigenschaften
Die TC * - Objekte werden in dem jeweils
zugehörigen Eigenschaften - Fenster für den individuellen Einsatz
konfiguriert.
Hierzu sind in die verschiedenen Felder entsprechende Eintragungen
vorzunehmen.
Eine gewisse Besonderheit gilt für das Register "Bedingungen"; für
andere gilt analoges.
Sind dort KEINE Einträge vorhanden, dann interpretiert das
TC*-Programm diesen Sachverhalt so, daß die Bedingungen IMMER
erfüllt sind und somit die zugehörigen Aktionen / Operationen
immer ausgeführt werden.
Wird allerdings ein Eintrag oder mehrere Einträge vorgenommen,
dann wird geprüft ob DIESE Bedingungen erfüllt sind, alle anderen
Möglichkeiten werden nicht betrachtet.
Dieser Sachverhalt kann u.U. sehr viele Angaben nach sich ziehen.
Der Nutzer sollte deshalb prüfen, ob sich durch eine NEGATION der
Bedingung eine Reduzierung erreichen läßt bzw. die Bildung von
Zuggruppen ins Auge fassen.
In einigen Feldern der Eigenschaften hat ein Eintrag einer
0 die Funktion, daß dieses Feld vom TC*-Programm ignoriert
wird. Ist der Inhalt jedoch ungleich 0 dann wird dieses
Feld mit dem eingetragenen Wert berücksichtigt.
Definition von Kommentar
in den Objekt-Eigenschaften
Werden Eintragungen im Register / Feld
"Kommentar" vorgenommen, dann werden diese Angaben als "Tool-Tip"
angezeigt, wenn der "mouse - Zeiger" eine Weile über dem Objekt z.B.
im Stellwerk - Fenster steht.
Betriebsablauf / Steuerung durch
das TC * -
Programm
Durch den stringenten objektorientierten Programmaufbau von TC* folgt auch der Programmablauf in "objektorientierter
Form"; d.h. der Ablauf startet nicht wie "früher" und durchläuft
entsprechend den Programmanweisungen das Programm bis zum Ende --
sondern es werden immer nur einzelne "Programm-Objekte", welche
jeweils einem TC* - Objekt zugeordnet sind, aufgerufen.
Gesteuert wird der Aufruf-Ablauf flexibel durch die TC*-Objekte
selbst, vorgegeben durch die Zuordnungen zueinander, die sich aus
dem vom Nutzer erstellten Gleisplan ergeben, als auch durch die in
den TC*-Objekt-Eigenschaften vom Nutzer eingetragenen
"Parameter".
Die "Parameter" befinden sich in den Eigenschafts-Registern
....
- Allgemeines
- Melder
- Bedingungen
- Auslöser
- Operationen
- Memory
wobei in einem TC*-Objekt nicht alle Register vertreten
sein müssen.
(weitere Details >> siehe unter den einzelnen
Objekten im separaten Register > links)
Aktiviert werden die "Programm-Objekte" durch die
Fahrzeugbewegungen, die in TC* durch sog. Zugfahrten
abgebildet werden.
Die Zugfahrt, programmtechnisch wiederum ein Objekt mit
Eigenschaften, ist dadurch charakterisiert, daß eine
Fahrzeugbewegung (nach Aufruf) von einem oder von mehreren Start-TC*-Block
/ Blöcken aus zu einem oder mehreren Ziel-TC*-Block
/ Blöcken -- unter Beachtung der eingestellten Regeln erfolgt.
TC* kennt im Prinzip drei Zugfahrt-Typen ....
- eine "reproduzierbare" Zugfahrt
- eine sog. Spontanfahrt
- AutoTrain, als einmalige Zugfahrt mit automatischer
Wegsuche.
Die "reproduzierbare Zugfahrt" wird in dem TC*-Fahrdienstleiter-Fenster
deklariert und über die Eigenschaften der Zugfahrt konfiguriert.
Die Zugfahrt, wenn sie gestartet wurde, fährt immer von einem der
eingetragenen TC* - Startblöcke zu einem der eingetragenen TC* - Zielblöcke.
TC* sucht
jeweils automatisch den passenden Weg aus.
Die Spontanfahrt wird ebenfalls im
Fahrdienstleiter festgelegt. Das Merkmal von dieser Zugfahrt
ist, das TC selbst entscheidet welche Fahrwege und damit auch
Blöcke befahren werden.
Im Gegensatz zu den anderen Zugfahrten gibt es hier keine
Begrenzung der Zugfahrtdauer durch die Zielblöcke. Es wird
solange gefahren, bis die Zugfahrt "manuell" beendet wird.
AutoTrain gibt es in zwei Varianten; hier sei nur die
"Drag and Drop" Variante dargestellt. Mit der mouse wird der
TC* - Startblock markiert und direkt anschließend der TC*
- Zielblock (gleich in welchen Stellwerk-Fenstern sie sich
befinden). TC* sucht einen Weg und startet das Fahrzeug, welches sich im
TC* - Startblock befindet.
Die zweite Variante unterscheidet sich lediglich in der Form
der Startvorbereitungen.
In der "Gold" Version gibt es eine weitere "Unterart",
nämlich die, daß der Start und der Ziel - Block jeweils durch
"Gleisbild-Stellwerks-Tasten" (analog zur großen Bahn) angegeben
werden können.
Für beide Zugfahrt-Typen gibt es in den Eigenschaften Regeln,
die sich aktivieren bzw. deaktivieren lassen. Damit lassen sich
die Zugfahrten individuell sehr gut an die Modellbahnanlage
anpassen.
Diese Regeln -- sie sind in den unterschiedlichen TC* -
Versionen auch verschieden -- wirken natürlich zusammen mit allen
anderen Konfigurationen in den Blöcken / Weichen / Weichenstraßen.
Eine Zugfahrt hat Gültigkeit für ALLE Loks /
Zugverbände / Zuggruppen, solange NICHT in den Eigenschaften der
Zugfahrt etwas anderes deklariert wurde. Dortige Einträge
bedeuten, daß dann NUR eine Zugfahrt mit den dort deklarierten
Fahrzeugen erfolgt!!; alle anderen sind ausgeschlossen.
Sollen auf der Strecke, wenn mehrere Wege zur Verfügung stehen,
Selektionen vorgenommen werden (z.B. Güterzug
darf nicht durch Bahnhofs-Bahnsteiggleis fahren) , dann
sind in den jeweiligen Blöcken entsprechende Bedingungen zu setzen
(> COMBI-Gruppen).
Auf diese Art und Weise lassen sich beliebig komplexe
Betriebsabläufe abbilden.
Auch lassen sich die Fahrzeuggeschwindigkeiten jeweils "TC*
- Block-Spezifisch" steuern.
Sonderheit:
TC * -
"Block"
Ein TC* - Block kann auch zur Steuerung des
betrieblichen Ablaufs mit herangezogen werden, denn es lassen sich
einige seiner Eigenschaften auch dynamisch verändern, so z.B.
- Sperre / Freigabe von Blockeinfahrt bzw. Blockausfahrt
- Ausfahrt-Richtung
Definition:
TC * -
"Weichenstraße"
Eine TC* - Weichenstraße verbindet zwei TC* - Blöcke
miteinander, dabei ist es unerheblich, ob sich eine Weiche /
mehrere Weichen in der Verbindung befinden oder diese Verbindung nur durch
ein "Gleis-Objekt" dargestellt wird.
Bei der Erstellung des
TC* - Gleisplans im TC* -
Stellwerkfenster erzeugt das TC* - Programm nach der
Einfügung der TC* - Blöcke automatisch alle Weichenstraßen
zwischen den Blöcken und zwar in allen befahrbaren Varianten
(Verbindungen).
Das Ergebnis wird im TC* - Fahrdienstleiter-Fenster eingetragen /
dargestellt.
Mit einem mouse-klick auf das Weichenstraßen - Symbol wir die
Weichenstraße aktiviert und im dortigen Gleisplan angezeigt. Ein
erneuter mouse-klick deaktiviert diese wieder.
In die Weichenstraße werden durch das TC*- Programm automatisch
alle Weichen / DKWs / Kreuzungen aufgenommen, inkl. ihrer
Stellungen, um das Ziel zu erreichen.
Die TC* - Weichenstraße(n) wird / werden bei der
Ausführung einer Zugfahrt automatisch durch das TC* -
Programm "eingebunden", d.h. aktiviert und deaktiviert
(reserviert, gesperrt / verriegelt, belegt,
freigegeben).
Eine weitere Variante ist die Zuordnung von (den Blöcken
zugeordneten) Start- / Ziel- Tasten zu der entsprechenden TC*
-
Weichenstraße. Mittels dieser beiden Tasten läßt sich dann auch
die Fahrstraße stellen, z.B. für eine manuell mit dem Handregler
durchzuführende Zugfahrt; allerdings immer nur zwischen zwei
unmittelbar benachbarten TC* - Blöcken.
Ist der Zielblock nicht unmittelbar der nächste TC* -
Block, dann ist die vorgenannte Vorgehensweise etwas mühsam, um
ans Ziel zu gelangen.
Abhilfe kann dadurch geschaffen werden, daß man pro
Start-Ziel-Tasten-Kombination eine fiktive Weichenstraße
einrichtet.
Dieser ordnet man jetzt weitere, bereits bestehende fiktive Weichenstraßen zu oder direkt die realen Weichenstraßen, die
benutzt werden müssen, um vom Start zum Ziel zu kommen.
Entsprechend der eigenen Vorüberlegungen und "Geschicklichkeit"
können hier mehrere Weichenstraßen "kaskadiert" eingesetzt den
Fahrweg beschreiben.
TC* stellt dem Nutzer hierfür eigens ein TC*
- Weichenstraßen-Objekt zur
Verfügung.
Dieses TC* - Weichenstraßen-Objekt (einer
fiktiven Weichenstraße) fungiert als "Master".
In seinen Eigenschaften können alle automatisch generierten TC* -
Weichenstraßen als "Slaves" eingetragen werden, die zu aktivieren
sind, und zwischen Start und Ziel liegen, um das Ziel zu
erreichen. Nach der Durchführung der Zugfahrt muß Sorge getragen
werden, daß ALLE TC* - Weichenstraßen deaktiviert
werden, dies kann ebenfalls in den Eigenschaften des TC* -
Weichenstraßen-Objekts ("Master") erfolgen.
In den Eigenschaften des TC* - Weichenstraßen-Objekts
lassen sich noch eine Reihe weiterer Aktionen und Bedingungen
einstellen, so daß hier ein mächtiges Steuerungsobjekt für den
Betriebsablauf zur Verfügung steht.
Sonderheit: TC * -
"Bahnwärter"
Bahnwärter bei der "großen Bahn" sind eigentlich in ihrer
Funktion nicht spektakulär.
Bei TC * haben diese aber eine ganz besondere Funktion;
und ich finde der Name / die Bezeichnung des Objekts führt hier
etwas in die Irre.
TC * - Bahnwärter zeichnen sich dadurch aus, daß sie
KEINE Hardware Referenz besitzen. Mit TC * - Bahnwärtern
lassen sich andere TC * -
Objekte in ihren Zuständen überwachen und damit einen Zustandswechsel von diesen
registrieren und anschließend unter Einbeziehung von Bedingungen
Aktionen (Funktionen) starten.
Es sei angemerkt, daß sich auch mehrere TC * -
Objekt - Zustände zu einem logischen Zustand mittels
"UND"; "ODER" - Verknüpfungen zusammenfassen
lassen.
Dieses Alleinstellungsmerkmal ermöglicht die Umsetzung von sehr
komplexen Funktionsabläufen.
Sonderheit: TC * -
Makro
Jeder, der sich schon einmal etwas tiefer mit der
Software-Entwicklung beschäftigt hat, kennt "Makros"; definiert als
Software-Abschnitt mit einem Code, der mehrfach an verschiedenen
Stellen im Programmfluß benötigt wird und der nur einmal vorhanden
(geschrieben) sein soll.
Dies bedeutet, von einem Programmteil A wird der "Makro"
aufgerufen, der Code wird durchlaufen und der Programmfluß kehrt
an die Aufrufstelle zurück (an den nächsten Befehl nach dem
Aufruf).
Der TC* - Makro verhält sich anders und von daher ist
die Begriffswahl für mich nicht ganz glücklich gewählt.
Wie zuvor definiert übernimmt der TC* - Makro auch die
Aufgabe, immer wiederkehrende Funktionalitäten (Code / Anweisungen)
zu zentralisieren, so daß diese nicht mehrfach "geschrieben"
werden müssen.
ABER nachdem der TC* - Makro aus einem Objekt
("Baustein") aufgerufen und damit "gestartet" wurde, kehrt der
TC*-Programm-Ablauf NICHT wieder zum aufrufenden
Teil (Objekt) zurück !!!
ACHTUNG, folgen im aufrufenden Objekt nach dem
TC* -
Makro-Aufruf weitere TC* - Anweisungen, dann werden diese
vom Programm zeitlich unabhängig und OHNE jeglichen Bezug zu den
TC* - Anweisungen im TC* - Makro abgearbeitet !!!
und zwar direkt NACH dem TC* - Makro-Aufruf.
Der Nutzer muß daher sehr genau aufpassen, daß es durch diese
Bedingung zu keinen Problemen in seinen betrieblichen Situationen
kommen kann.
Sonderheit: "Bedingungen"
In den meisten TC* - Objekten befindet sich in den
Eigenschaften ein Register namens "Bedingungen".
Mit diesem Register hat der Nutzer die
Möglichkeit, seinen Betriebsablauf sehr individuell und auch
dynamisch vom Betriebszustand abhängig zu steuern, was eine hohe
Flexibilität ermöglicht.
Die einzelnen Bedienungslemente lassen sich durch AND, OR etc.
miteinander verknüpfen, so daß recht komplexe Betriebssituationen
abgebildet werden können.
Sonderheit: "AND ... OR
... = ... <= .... >="
Jeder, der sich schon einmal etwas tiefer mit der
Software-Entwicklung beschäftigt hat, kennt diese Funktionen.
Bei
TC* sind diese zur Steuerung des Ablaufes in den
Objekteigenschaften - Bedingungen zu finden.
Wegen der graphischen Darstellungsmethode kommt hier der
graphischen Reihenfolge eine besondere Bedeutung zu; d.h. man muß
aufpassen, daß die richtige Reihenfolge und Verschachtelung
gewählt wurde, um das Ziel zu erreichen.
Sonderheit: "C (COMBI) -
Gruppe"
Als ein weiteres Steuerungsmerkmal steht in dem
Eigenschaften-Register "Bedingungen" ein Kriterium zur Verfügung,
welches aus der "normalen" Programmierung nicht bekannt ist.
lt. TC* - Handbuch (Gold) ....
Eine COMBI-Gruppe besteht aus einer Liste von Loks, Wagen,
Blöcken oder Zugfahrten.
Mit COMBI-Gruppen kann geprüft werden, ob sich bestimmte
Fahrzeuge in bestimmten Blöcken befinden und/oder ob diese
Fahrzeuge bestimmte Zugfahrten ausführen. Es kann außerdem geprüft
werden, ob bestimmte Blöcke gerade von bestimmten Zugfahrten
verwendet werden.
Eine COMBI-Gruppe erfüllt die Bedingung,
wenn ein Zug, für den die COMBI-Gruppe gilt, sich in mindestens
einem der enthaltenen Blöcke befindet und mindestens eine der
eingetragenen Zugfahrten ausführt.
-
Eine COMBI-Gruppe gilt dann für einen Zug,
wenn die Regeln für zugelassene Züge erfüllt sind. Ein Zug
befindet sich dann in einem Block, wenn dieser Block der
aktuelle Block des Zuges ist.
-
Wenn kein Block eingetragen ist, so
erfüllt die COMBI-Gruppe die Bedingung, wenn ein Zug, für den
die COMBI-Gruppe gilt, mindestens eine der eingetragenen
Zugfahrten ausführt.
-
Wenn keine Zugfahrt eingetragen ist, so
erfüllt die COMBI-Gruppe die Bedingung, wenn ein Zug, für den
die COMBI-Gruppe gilt, sich in mindestens einem der
eingetragenen Blöcke befindet.
-
Wenn kein Fahrzeug eingetragen ist, so
erfüllt die COMBI-Gruppe die Bedingung, wenn mindestens einer
der angegebenen Blöcke von mindestens einer der eingetragenen
Zugfahrten verwendet wird.
COMBI-Gruppen sind die einzigen Gruppen, in
die Fahrzeuge eingetragen werden können. Das Hinzufügen von
Fahrzeugen oder Zuggruppen zu anderen Arten von Gruppen ist nicht
erlaubt und kann ungültige Ergebnisse verursachen.
Beispiel:
Eine COMBI-Gruppe, die den Wagen „Güterwagen", den Block
„Hauptstrecke Ost" und die Zugfahrt „Nahgüterzug" enthält, erfüllt
die Bedingung, wenn sich „Güterwagen" im Block „Hauptstrecke Ost"
befindet und gerade die Zugfahrt „Nahgüterzug" ausführt.
Wie zu ersehen ist, ermöglicht diese Abfrage-Kategorie ein ganz
gezieltes Steuern des Betriebsablaufes in Abhängigkeit und in
Kombination von
- TC* - Block
- Zugfahrt
- Fahrzeug (hier in Form einer Zuggruppe)
TC* Version Gold ab Version 8.0
Ab dieser Version gibt es in "Gold"
auch "Zugbeschreibungen". Diese erlauben eine weitere und
verfeinerte Selektion von Fahrzeugen und damit läßt sich das
Wirksamwerden von Objekten wiederum individueller anpassen.
-- mehr Informationen s. extra Kapitel im
nebenstehenden Register --
Sonderheit: "if ..then ..else"
Jeder, der sich schon einmal etwas tiefer mit der
Software-Entwicklung beschäftigt hat, kennt diese Möglichkeit des
Setzens von Bedingungen zur Verzweigung eines Programmablaufs.
TC* Versionen Bronze, Silber und Gold bis Version 7.0
TC* kennt in diesen Versionen keine solche
Konstellation in den "Bedingungs" - Eigenschaften der Objekte.
In
den Bedingungen eines Objektes läßt sich immer nur ein Bedingung
abbilden.
Es gibt aber folgenden "work around"
....
Man erstelle zwei Makro's, einen, der die
Bedingungen des "then" - Pfades und einen der den
"else" - Pfad abbildet.
Aus einem Objekt abc, in dem man diese Abfrage
eigentlich benötigte, starte man direkt nachfolgend beide Makro's.
Aufgrund der gesetzten Bedingungen wird nur einer der Makro's aktiv
und führt die im zugedachten Operationen aus.
Da die Bearbeitung der Makro-Aufrufe und damit der Abfragen
software-technisch direkt nacheinander erfolgt, ist nicht davon
auszugehen, daß sich der auszuwertende Zustand in der Zwischenzeit
geändert hat.
Sollen nach der Ausführung der jeweiligen
Makro Aktion im Objekt abc noch weitere Operationen erfolgen, dann
muß nach den Makro - Aufrufen eine Verzögerungszeit gesetzt
werden, die so lang ist, daß in der Zwischenzeit alle Makro -
Aktionen sicher ausgeführt werden können.
Erst nach dieser Verzögerungszeit, d.h. deren
Ablauf, sollte mit sonstigen Operationen fortgefahren werden.
TC* Version Gold ab Version 8.0
Ab dieser Version steht dem Nutzer eine neue
Objektgruppe "Ablaufsteuerung" zu Verfügung.
Mit den in dieser Gruppe zusammengefaßten
Objekten können saubere software technische Abläufe -- inkl.
Verschachtelungen -- in den Operationen der Objekte gestaltet
werden.
Der oben beschriebene "Umweg" ist
hier nicht mehr notwendig.
Definition: TC* - Lok .. Zugverband ...
Fahrzeuggruppe
In diesen meinen Abhandlungen habe ich oft den
"neutralen" Begriff Fahrzeug verwendet.
Bei näherer Betrachtung reicht dieser aber nicht aus, um alle TC*
- Merkmale sauber beschreiben zu können.
Loks und Züge
heißt ein eigenes Fenster in dem ...
- die einzelnen Loks erfaßt sind und von wo man auch eine Lok
auswählen bzw. über deren Eigenschaften man diese Loks konfigurieren
kann.
Eine Lok kann sowohl eine Dampf- / Diesel- oder E- Lok sein als auch
jegliche Form von Triebwagen / IEE - Zuggarnituren. etc.
- Wagen erfaßt sind, ausgewählt werden und in ihren
Eigenschaften geändert werden können, die Teil eines
Zugverbandes sind (sein können).
Mit der Anlage eines Wagens (Menu > Zugverband >
neuer Wagen) wird diesem automatisch eine
Zugverbandsidentität gegeben.
Zugverband im TC* - Sinne
mittels des Zugverbandes wird eine Abfolge von Lok und
Wagen beschrieben, d.h. einem Zug, wie sich dieser aktuell auf
der Anlage befindet.
Dies bedeutet, Lok und alle Wagen müssen
sich in genau dieser, im Zugverband aufgelisteten Reihenfolge
auch auf der Anlage befinden.
Diese Strenge ist deshalb notwendig, weil
sie für TC die Grundinformation über die einzelnen
Zug-Komponenten (Eigenschaften) darstellt
und z.B. bei Rangiervorgängen oder bei "Filteranwendungen"
(Bedingungen auf der Basis von Zugbeschreibungen)
die Steuerung des Ablaufs unterstützt (ermöglicht).
In den jeweiligen Eigenschaften der Wagen
und Loks sind alle relevanten Daten festgelegt, die TC
automatisch bei der Bildung von Zugverbänden heranzieht und z.B.
auch aufsummiert (> Gesamtlänge des Zugverbandes).
Die Zugverbände können mit individuellen Bezeichnungen versehen werden,
so daß sich Betriebsabläufe mit Zugnummern / Zugnamen nachbilden
lassen.
Die Bezeichnung eines Wagens kann auch zur Anzeige in den
Blöcken oder beim "Tool-Tip" eingesetzt werden
(Haken in den Eigenschaften setzen).
Sonderfall
Wird mit festen Wagen-Formationen
gefahren, dann kann man einen "Stellvertreter-Wagen" definieren
und diesem alle Eigenschaften ALLER Zugverbandswagen geben.
Dieses vereinfacht die reine Datenerfassung von Wagen.
Auf der realen Anlage dürfen NICHT mehr Wagen im Zug präsent
sein, als durch den "Stellvertreter-Wagen" dargestellt sind.
Fahrzeuggruppe(n)
sind in dem TC* - Fenster "Explorer"
(zu erreichen über Fenster > neuer Explorer) zu
finden.
Hier können neue Gruppen definiert und angelegt, als auch
bestehende, geändert werden.
Die sinnvolle Zusammenfassung von Fahrzeugen
zu Gruppen ergibt sich später aus dem Betriebsablauf.
Es hat sich gezeigt, daß es keinen Sinn macht ohne konkrete
Anforderung Gruppen zu definieren.
Diese Gruppen haben den einzigen Zweck,
die Konfigurationsarbeit von TC Objekten zu erleichtern und zwar
dann, wenn mehrere Objekte immer wieder in z.B. Bedingungen
einzutragen sind.
Anstelle der einzelnen Objekte trägt man dann immer nur die
Gruppe ein, welche diese Objekte repräsentiert.
Änderungen von Zuordnungen lassen sich so auch schnell zentral
ausführen.
Beispiel für eine Auswertung:
alle E-Loks dürfen eine bestimmte Strecke nicht fahren, da keine
Oberleitung vorhanden.
Definition: TC* - Lok .. Zugverband ...
Fahrzeuggruppe
Definition: TC* -
Signale
Rückblick:
In analogen Modellbahnen kamen Signalen eine zentrale steuernde
Bedeutung zu.
Ein Druck auf eine Taste und das Signal zeigte "frei" und der Zug
setzte sich in Bewegung, weil mit dem Tastendruck gleichzeitig ein
"Signal Relais" geschaltet wurde, welches das Gleis mit Spannung
versorgte.
Inverses geschah beim "Halt".
Digitalsystem:
In Digitalsystemen wird der Lok-Decoder codiert angesprochen und
geschaltet (meist als Fahrstufen bezeichnet).
Hier wird zum Fahren und Halten kein Relais mehr verwendet,
welches die Gleisspannung an- / ab- schaltet. Von daher wird auch
kein Signal zur Steuerung mehr benötigt, im Gegenteil es würde
sehr stören.
Sonderheiten:
In Fällen, in
denen zwar digital "per Hand" (ohne PC) gefahren wurde /
wird, kam es durchaus vor, daß der Betriebsablauf nur ungenügend
mit einer Zentrale nachgebildet werden konnte.
Hier griff man auf die anlogen Vorgaben zurück und installierte an
den Haltepunkten (== Signalen) sog. "Bremsdioden" zu dem Zweck,
daß, wenn das Signal "Halt" zeigte, der Zug / die Lok auch anhielt.
Damit war man in der Lage, auch mehrere Züge betreiben zu können.
TC* und das digitale System:
TC* selbst benötigt zur Steuerung des Ablaufes selbst KEINE
Signale.
In den TC* - Blöcken befinden sich symbolhafte
Signaldarstellungen, die sich ein- / ausblenden lassen. Diese
stellen den jeweiligen Blockzustand für die Fahrzeugbewegung
optisch für den Nutzer dar.
Die Loks werden ausschließlich über die von TC*
ausgesandten Fahrstufen-Einstellungen gesteuert.
TC* bietet für den Modellbahner allerdings TC* -
Signal-Objekte an, die in den Gleisplan integriert, das TC* - Stellwerkfenster komplettieren. Sie haben aus betrieblicher
Sicht nur dekorativen Charakter.
Gegenüber den in den Block integrierten Signalen lassen sich über die Eigenschaften der
TC* - Signal-Objekte
wiederum eine ganze Reihe von betrieblichen Einstellungen
vornehmen, bis hin zur optischen Nachbildung der unterschiedlichen
Signale / Signaltypen bei den diversen Ländern /
Bahngesellschaften.
Zur optischen Anpassung des Signals ist aber die
"Gold" - Version vonnöten.
Die TC* - Signal-Objekte koppelt man am besten mit den
Zustandsinformationen der zu überwachenden TC* - Blöcke.
Ein TC* - Signal-Objekt verfügt über die Möglichkeit, einen
Signal-Decoder über die jeweilige Adresse anzusprechen. Der
Signal-Decoder steuert dann das entsprechende, auf der
Modellbahnanlage, zugeordnete Signal.
Hinweise:
Trifft man keine Vorkehrungen, so läßt sich das TC* -
Signal-Objekt nacheinander per mouse-klick in die verschiedenen
Signalstellungen schalten. Im Fall, daß ein Signal über einen
Decoder angeschlossen ist, wechselt dieses dann auch das
Signalbild; ein fahrender / stehender Zug bleibt davon jedoch
unbeeinflußt.
Über das Setzen von Bedingungen kann man solche "Unschönheiten"
abstellen.
Ferner sollte ein Signal immer einen Zustand haben, der dann
als Grundzustand angezeigt wird (z.B. rot / halt / HP0), wenn ALLE
anderen Bedingungen NICHT zutreffen.
D.h. in das Bedingungsfeld als auch in das Auslöse-Feld sollen für
den Grundzustand keine Einträge vorgenommen werden.
Editiermodus
(zu erreichen über Menüleiste > Ansicht)
TC * muß sich in diesem Modus befinden, wenn .....
- neue Fenster deklariert (aufgemacht)
- Fenster in der Ansicht (Größe, Farbe, Ausleuchtungen, etc.)
verändert
- TC* - Objekte in das TC* - Stellwerkfenster
eingefügt
- TC* - Objekte in ihren Eigenschaften konfiguriert
- Loks - Zugverbände - Zuggruppen angelegt bzw. bearbeitet
- "reproduzierbare" Zugfahrten angelegt bzw. bearbeitet
werden sollen.
Hinweis:
Die Eigenschaften eines jeden Objekts werden erreicht, indem das
Objekt per mouse-klick markiert wird. Mit der rechten mouse-taste
wird dann das POP-UP Fenster geöffnet. Dort ist dann die Auswahl
"Eigenschaften" anzuklicken.
Im Bild "Eigenschaften", was dann erscheint, befinden sich
Register, in denen bestimmte Funktionen (s. Registertitel)
zusammengefaßt sind.
Operationsmodus
(zu erreichen über Menüleiste > Ansicht;
indem der Editiermodus ausgeschaltet wird)
TC *
muß sich in diesem Modus befinden, wenn ...
- ein realer Betrieb auf der Anlage gesteuert
- der Betriebsablauf simuliert