steuern von Lokomotiven / das Fahrpult

Die Steuerung von Lokomotiven geschieht in derselben Art und Weise wie das Schalten von Magnetartikeln.
Auch hier müssen wir 2 Bytes übertragen: den Fahrbefehl und die Adresse der betreffenden Lokomotive.
Wie leicht so etwas zu realisieren ist, habe ich im Kapitel einfaches Prüfprogramm bereits beschrieben.
Zur Steuerung von Lokomotiven eignet sich das Prüfprogramm allerdings nur, wenn die betreffende Lok stationär betrieben wird, also auf einem Rollenbock steht oder auf unserem Werkstatttisch liegt.

Das Problem bei der Steuerung von Lokomotiven liegt weniger im programmtechnischen Bereich als in der Gestaltung
unseres Fahrpultes und in der Auswahl der dazu nötigen Tools .
Doch bevor wir uns Gedanken über das optische Erscheinungsbild unseres Fahrpultes machen, sollten wir überlegen, wieviele Fahrpulte wir brauchen.
Denn: je mehr Fahrpulte wir darstellen wollen, umso mehr Platz brauchen wir auf unserem Monitor.
Ich bin der Meinung, mit 2 Fahrpulten hat man mehr als genug. Schon in der Bibel steht dass niemand zwei Herren dienen kann und bisher hat mir noch niemand gezeigt, wie er 2 Lokomotiven gleichzeitig steuert.

An dieser Stelle kommt immer die Frage: Ich habe aber 10 Lokomotiven, wie soll ich die denn mit nur einem Fahrpult steuern ?
Meine Antwort: 
Wohl jeder kennt ein Messgerät zum Messen von Spannung, Strom, Widerstand usw. Mit einem Wahlschalter kann man dort den benötigten Messbereich wählen.
Niemand käme auf die abstruse Idee, für jeden Messbereich ein eigenes Messgerät zu kaufen.
Warum soll unser Fahrpult nicht können, was ein simples Messgerät schon lange kann ?
Wir bauen uns eine geeignete Möglichkeit ein, mit der wir uns die gewünschte Lokomotive aus unserem Lok-Pool aussuchen können.
Dazu verwenden wir eine Datenbank (genauer: eine Tabelle innerhalb einer Datenbank), in welche wir alle wichtigen Daten unserer Lokomotiven eintragen.
Dies hat weiterhin den Vorteil, das wir beim Wechsel einer Lokomotive die aktuellen Parameter wie Geschwindigkeit, aktive Funktionen usw. der 'alten' Lok in die Datenbank schreiben können und beim nächsten Aufruf dieser Lok genau die richtigen Parameter wieder zur Verfügung haben.
In einer Datenbank werden diese Parameter auch über das Abschalten der Anlage hinaus gespeichert und stehen beim Einschalten wieder zur Verfügung.

Wer mit nur einem Fahrpult auskommen kann und will, braucht natürlich einen Weg, um die gewünschte Lok auswählen zu können.

Dazu gibt es verschiedene Möglichkeiten:

Tool Bedienung Bemerkung
Textfeld manuelle Eingabe der digitalen Adresse Vorteile:
- platzsparend

Nachteil:
- umständliche Tipperei

ListBox Auswahl mit der Maus aus einer Liste Vorteile:
- übersichtlich,

Nachteile:
- erhöhter Platzbedarf,
- bei großer Anzahl von Lokomotiven entspr. lange Suche

ComboBox Kombination aus Textfeld und Listbox Vorteile:
- weniger Platzbedarf als bei der ListBox

Nachteil:
- bei großer Anzahl von Lokomotiven entspr. lange Suche

<Taste Taste> durch die beiden Tasten kann man vorwärts oder rückwärts durch die Datenbank wandern Vorteile:
- geringer Platzbedarf

Nachteil:
-bei großer Anzahl von Lokomotiven ggf. 'endlose' Klickerei

n Tasten für jede Lokomotive eine eigene Taste Vorteile:
- blitzschnelle Wahl der Lokomotive

Nachteil:
- bei großer Anzahl von Lokomotiven viele Tasten (Platzbedarf)
- bei jeder Änderung im verwendeten Lok-Pool müssen ggf. die
  Tasten umprogrammiert werden.
 

Die Vorschläge 2 und  3 erfordern beim Start des Programms das Einlesen der Lokomotiven aus der Datenbank:
- die Daten werden mit .addItem in die betreffende List- / ComboBox eingetragen.

Bei Vorschlag 4 können wir uns mit .movenext / .moveprevious in der Datenbank bewegen.

Um die gewünschte Fahrstufe auszuwählen gibt es mehrere Möglichkeiten

Tool Beschreibung
2 Tasten (1x langsamer,
1x schneller)
Vorteile:
- langsames Anfahren und Abbremsen bei jeder Lok möglich

Nachteile:
- für jeden Wechsel der Fahrstufe ist 1 Klick erforderlich, das kann besonders zum
  Erreichen hoher Geschwindigkeiten ganz schön nerven.

14 Tasten (1x pro Fahrstufe) Vorteile:
- die gewünschte Geschwindigkeit kann 'gezielt' vorgegeben werden.

Nachteile:
- dieses Verfahren eignet sich nur für Lokomotiven mit Anfahr- und
  Bremsverzögerung, - da jede andere Lokomotive ein unrealistisches
  Beschleunigungs- bzw.  Bremsverhalten zeigen würde.

Schieberegler, Scrollbar Vorteile:
- optische Anzeige der aktuellen Fahrstufe
- Grob- und Feinregelung möglich
- bei horizontaler Darstellung mit CursorTasten steuerbar

Nachteile:
- relativ großer Platzbedarf

AudioControl ActiveX Control Modul
(AudioControl.ocx)

 

 

Hier handelt es sich um ein Steuerelement mit vertikaler Ausrichtung, welches den oben genannten Scrollbars sehr ähnlich ist.
Für unsere Zwecke ist es sehr gut geeignet.
Während bei den Scrollbars eine Änderung der .Value-Eigenschaft nur durch Mausklicken erreichbar ist, reicht bei diesem Control das Bewegen der Maus.
Außerdem liegt der höchste Wert am oberen Rand, bei einer 'normalen' Scrollbar liegt er am unteren Ende und muß daher erst umgerechnet werden

Selbstverständlich sind auch Kombinationen der o.a. Tools oder andere Lösungen (Eigenbau) denkbar.

Des Weiteren benötigen wir eine Möglichkeit um den Fahrtrichtungswechsel vorzunehmen:

Tool Bemerkung
Taste Vorteile:
- platzsparend,

Nachteile:
- keine optische Anzeige der aktuellen Fahrtrichtung

rastende Taste Vorteile:
- optische Anzeige der aktuellen Fahrtrichtung

Nachteile:
- etwas größerer Platzbedarf

Option Vorteile:
- bei Verwendung von 2 Options erkennt man die aktuelle Fahrtrichtung

Nachteil:
- größerer Platzbedarf

Auch hier gibt es noch etliche andere Möglichkeiten, den Fahrtrichtungswechsel durchzuführen und anzuzeigen.


Weitere Tipps für die Gestaltung des Fahrpultes