T1A1

  1. Real-Time: Es muss auf die Geschwindigkeit der Züge in entsprechender Zeit reagiert werden. Das Timing der Umgebung (Weichen, Züge, ...) wird nur indirekt durch das System beeinflusst.
  2. Embedded: Die Steuerung geschieht hierarchisch durch merere Steuereinheiten (die 386er Rechner mit Leistungselektronik), die dann viele kleine Aktoren und Sensoren kontrollieren.
  3. Safety-Critical: Die Züge dürfen nicht kollidieren, sonst könnten (bei Übertragunng auf echte Züge), Menschen durch Fehlfunktionen zu Schaden kommen.

T1A2

Plan 1:

Da nur ein Zug bewegt werden soll, kann die gesamte Strecke direkt bei Abfahrt reserviert werden. Für den ersten Teil sind das:

Tracks: KH_ST_1, KH_ST_6, KIO_LN_1, OC_ST_0, KH_ST_1 (FWD) und IC_ST_4, IC_ST_1 (REV)

Switching Points: (8, STRAIGHT), (9, BRANCH), ( 27, STRAIGHT), (28, STRAIGHT), (29, BRANCH), (24, STRAIGHT)

Zusätzlich müssen noch die zugehörigen Signale gesetzt werden.

Anschliessend wird auf die Auslösung von Sensor IC_ST_1(3) gewartet und die Geschwindigkeit auf den beiden beteiligten Gleisen auf 20 reduziert. Sobald dann IC_ST_1(0) ausgelöst wird, kann der zug angehalten werden. Hierbei können die benutzten Tracks auch wieder frei gegeben werden und der Weg für die Rückfahrt reserviert werden.

Dieser Ansatz ist nicht sehr "schön", würde aber wohl für das gestellte Szenario funktionieren.

SampleController.c

Alternativer Plan:

Für jedes Segment wird einzeln geprüft, ob der Zug einfahren darf, anschliessend werden die Weichen gestellt und die Gesschwindigkeit auf dem nächsten Segment eingestellt. Dann wird das Signal freigegeben und der Zug fährt ins nächste Segment ein. Hierzu müssten deutlich mehr Sensoren abgefragt werden und die entsprechenden Resultate umgesetzt werden.

T1A3

Der Status der Sensoren ist unerwartet lange haltbar, so dass der ausfahrende Zug noch den Sensor auslöst und somit für Fehlverhalten des später einfahrenden Zuges sorgt. Somit müssen die Sensoren regelmäßig abgefragt werden, damit keine alten Werte interpretiert werden.

Auf der realen Analge muss mit dem Ausfallen einzelner Sensoren gerechnet werden.

Das zeitliche Verhalten der Analge beim schnellen wechsel von z.B. Geschwindigkeiten muss berücksichtigt werden.

Tags: