Embedded-linuX/uniX-Devices office[at]exd.at heimo.schoen @ exd.at
Telefon : 0676 316 34 72
privat : heimo @ schoen.priv.at




mobile Geschwindigkeitsmesseinrichtung

Impressionen von der mobilen Geschwindigkeitseinrichtung


Projektstruktur

Das Projekt GME (mobile Geschwindigkeitsmesseinrichtung) ist ein Gemeinschaftsprojekt zwischen den ÖBB, der HTL-Ottakring und der Industrie.
Mitwirkende an diesem Projekt sind:

das Schulprojekt an der HTL-Ottakring

Das Schulprojekt hat während des Schuljahres 2002/2003 die im Unterricht erlernten Kenntnisse hinsichtlich HW-Entwicklung für Stromversorgung, Prozessoranwendungen, usw. Betriebssystem und Softwareentwicklung angewandt und neben der Entwicklung verschiedener Hardware und Softwarekomponenten für die GME, die folgenden Dokumente erstellt:

Projektinhalt

Auf Abrollbergen der ÖBB wird zur kontinuirlichen Bremsung der abrollenden Wagons auf die Technik des Retarders zurückgegriffen. Retarder sind vom Aufbau ähnlich wie Stoßdämpfer aufgebaut und sind an der Innenseite der Schienen so montiert, daß der Pilzförmige Kopf des Retarders vom Spurkranz der Räder niedergedrückt wird. Wird die Geschwindigkeit des Wagons zu hoch, dann wird der Retarder schneller niedergedrückt und ein Ventil hemmt den Retarder. Damit wird dem abrollenden Wagon ein Widerstand entgegengebracht, der ihn abbremst.

Im Bereich des Abrollberges des Zentralverschiebebahnhofs Wien-Kledering wurden ca. 60000 Retarder verbaut. Diese Retarder verschleißen und müssen in regelmäßigen Abständen ausgetauscht werden. Wenn nun in einem Abschnitt eine größere Menge an Retardern defekt ist, dann werden in diesem Bereich Wagons unzulässig schnell. Leider tritt dieser Umstand schleichend ein und trifft auch nur auf bestimmte Wagontypen und/oder Wagongewichte zu, da die noch verbleibenden Retarder u.U. leichte Wagons noch ausreichend bremsen und schwere Wagons nicht mehr gebremst werden können.

Dieser Umstand wurde bereits sehr bald nach der Inbetriebnahme der Anlage erkannt und es wurden bereits seit Jahren Versuche z.B. mit Lichtschranken und Schreibern, bis hin zur Verwendung von Radarpistolen wie sie das Innenministerium einsetzt, um Gleisabschnitte zu überwachen. Die Fehler traten häufig nicht in der Zeit auf in der gemessen wurde. Darüberhinaus waren diese Messverfahren personalintensiv.

Aus diesem Grund wurde eine Lösung gesucht, die einerseits mobil ist und bei jenen Gleisen montiert werden kann bei denen Retarderschwächen vermutet werden und andererseits über längere Zeit autark aufzeichnen kann und ggf. von der Ferne abgefragt werden kann.

Diese ersten Randbedingungen führten sehr rasch zur Überlegung, daß eine reine Mikroprozessoranwendung nicht ausreichend sein wird, da Langzeitarchivierungen der zu erwartenden Datenmengen samt Fernabfrage über Netzwerk und/oder Modemleitungen (GSM) für Mikroprozessoranwendungen zu hohe Softwareentwicklungskosten generiert. Aus diesem Grund wurde der Einsatz eines embedded systems auf Basis eines Industrie-PCs angestrebt. Um eine hohe Verfügbarkeit und zugleich eine hohe Flexibilität für eigene Erweiterungen zu ermöglichen wurde ein Opensource Betriebssystem angestrebt.

das komerzielle Kundenprojekt

Das Kundenprojekt wurde kaufmännisch abgewickelt mit der freundlichen Unterstützung durch Balfour Beatty Österreich. Hier gilt besonderer Dank Hrn. Johann Jungwirth für seine Unterstützung.

Die Auswahl, Beschaffung und Systemintegration der Rechnerhardware deutet sehr schnell auf ein Board z.B. mit ELAN 520 Prozessor hin. Dieser extrem stromsparende Prozessor bietet die Rechenleistung eines 486 mit 133 Mhz und ist damit für den Einsatz von Linux hervorragend geeignet.

Weitere Bedingungen an die Hardware waren, das Vorhandensein eines Flashcard-Adapters (vorzugsweise CF-Card), Netzwerk 10/100 Mbit on board (für Datenupload vor Ort und SW-Updates vor Ort), keine VGA-Karte (lokal ist keine Bedienung vorgesehen), mehre serielle Schnittstellen (für Modem, Digital-IO, usw.) und möglichst über BIOS skalierbare Taktrate, so daß der Stromverbrauch möglichst minimiert werden kann. Diese Randbedingungen führten zur Auswahl des Rechners MSM586 der Firma Digitallogic der bezogen wurde bei der Firma Aplica

Die Wahl des Betriebssystem Linux führte zur weiteren Frage, der Wahl der Distribution. Auf dem embedded-linux Markt sind viele Distributionen verfügbar. Alle Distributionen sind jedoch mehr oder weniger auf bestimmte Aufgaben spezialisiert. Aus diesem Grund wurde im Zuge des Projekts eine Distribution erstellt, die speziell auf die Aufgaben in der GME zugeschnitten ist. Als Basis wurde die Busybox gewählt. Die Busybox ist ein ausführbares Programm, daß über Links in einem Filesystem, hunderte UNIX-Programme nachbildet. Die Busybox bietet darüber hinaus bereits eine Plattform für das Starten der Applikationen und der systemnahen Daemonen. Es wurde ein Dateisystem geschaffen, in das die Busybox und ein Linuxkernel kopiert wurden.

Der Linux-Kernel selbst wurde mit den Realtime-Patches von RTAI erweitert. Diese Realtimepatches schaffen einen realtimefähigen Mikrokernel der zwischen der Hardware und dem Linux-kernel läuft und alle Realtimefunktionen übernimmt. Die Verarbeitung der Interrupts von den GME-Lichtschranken wird mit RTAI im Bereich von deutlich weniger als 1 Millisekunde durchgeführt.

Unter Beachtung dieser Randbedingungen ist das nachfolgend beschriebene System entwickelt worden:

Feldtest 27. November 2002 :

Feldtest 23. Juli 2002 :

18.3.2004 :

Ausschnitt eines GME-Logfile:


   23.07.2003 17:44:17 :     1.Achse  <-   664 ms    1.5 m/s     5 km/h
   23.07.2003 17:44:19 :     2.Achse  <-   640 ms    1.6 m/s     6 km/h
   23.07.2003 17:44:22 :     3.Achse  <-   561 ms    1.8 m/s     6 km/h
   23.07.2003 17:44:24 :     4.Achse  <-   553 ms    1.8 m/s     7 km/h
   23.07.2003 17:44:25 :     5.Achse  <-   528 ms    1.9 m/s     7 km/h
   23.07.2003 17:44:27 :     6.Achse  <-   518 ms    1.9 m/s     7 km/h
   23.07.2003 17:44:29 :     7.Achse  <-   463 ms    2.2 m/s     8 km/h
   23.07.2003 17:44:31 :     8.Achse  <-   457 ms    2.2 m/s     8 km/h
   23.07.2003 17:44:32 :     9.Achse  <-   426 ms    2.3 m/s     8 km/h
   23.07.2003 17:44:33 :    10.Achse  <-   414 ms    2.4 m/s     9 km/h
   23.07.2003 17:44:35 :    11.Achse  <-   379 ms    2.6 m/s     9 km/h
   23.07.2003 17:44:37 :    12.Achse  <-   362 ms    2.8 m/s    10 km/h
   23.07.2003 17:44:37 :    13.Achse  <-   350 ms    2.9 m/s    10 km/h
   23.07.2003 17:44:39 :    14.Achse  <-   343 ms    2.9 m/s    10 km/h
   23.07.2003 17:44:40 :    15.Achse  <-   307 ms    3.3 m/s    12 km/h
   23.07.2003 17:44:41 :    16.Achse  <-   300 ms    3.3 m/s    12 km/h
   23.07.2003 17:44:42 :    17.Achse  <-   298 ms    3.4 m/s    12 km/h
   23.07.2003 17:44:43 :    18.Achse  <-   291 ms    3.4 m/s    12 km/h
   23.07.2003 17:44:45 :    19.Achse  <-   271 ms    3.7 m/s    13 km/h
   23.07.2003 17:44:45 :    20.Achse  <-   266 ms    3.8 m/s    14 km/h
   23.07.2003 17:44:46 :    21.Achse  <-   250 ms    4.0 m/s    14 km/h
   23.07.2003 17:44:47 :    22.Achse  <-   243 ms    4.1 m/s    15 km/h
   23.07.2003 17:44:48 :    23.Achse  <-   231 ms    4.3 m/s    16 km/h
   23.07.2003 17:44:49 :    24.Achse  <-   228 ms    4.4 m/s    16 km/h
   23.07.2003 17:44:49 :    25.Achse  <-   233 ms    4.3 m/s    15 km/h
   23.07.2003 17:44:51 :    26.Achse  <-   238 ms    4.2 m/s    15 km/h
   23.07.2003 17:44:52 :    27.Achse  <-   232 ms    4.3 m/s    16 km/h
   23.07.2003 17:44:52 :    28.Achse  <-   231 ms    4.3 m/s    16 km/h
   23.07.2003 17:44:53 :    29.Achse  <-   231 ms    4.3 m/s    16 km/h
   23.07.2003 17:44:54 :    30.Achse  <-   228 ms    4.4 m/s    16 km/h
   23.07.2003 17:44:55 :    31.Achse  <-   237 ms    4.2 m/s    15 km/h
   23.07.2003 17:44:56 :    32.Achse  <-   217 ms    4.6 m/s    17 km/h
   23.07.2003 17:44:56 :    33.Achse  <-   234 ms    4.3 m/s    15 km/h
   23.07.2003 17:44:57 :    34.Achse  <-   234 ms    4.3 m/s    15 km/h
   23.07.2003 17:44:58 :    35.Achse  <-   235 ms    4.3 m/s    15 km/h
   23.07.2003 17:44:59 :    36.Achse  <-   223 ms    4.5 m/s    16 km/h
   23.07.2003 17:45:00 :    37.Achse  <-   232 ms    4.3 m/s    16 km/h
   23.07.2003 17:45:01 :    38.Achse  <-   242 ms    4.1 m/s    15 km/h
   23.07.2003 17:45:02 :    39.Achse  <-   232 ms    4.3 m/s    16 km/h
   23.07.2003 17:45:03 :    40.Achse  <-   243 ms    4.1 m/s    15 km/h
   23.07.2003 17:45:13 :                          ----------------------
   Durchschnitt der Wagengruppe mit  40 Achsen  :    3.4 m/s    12 km/h
      

Das Logfile zeigt in Spalten Datum/Uhrzeit, die Achsennummer der Wagengruppe, Millisekunden die das Rad für die Durchfahrt benötigt hat, daraus resultierende Geschwindigkeit in Meter pro Sekunde und in km/h.

Deutlich erkennbar ist die Abstoßgeschwindigkeit bei der 1. Achse mit 1,5 m/s bzw. 5 km/h. Je mehr Wagen über die Bergspitze gestoßen werden, desto schneller wird die Wagengruppe und erreicht mit etwas über 4 m/s die höchste Geschwindigkeit.

Einzelne Ausreisser sind darauf zurückzuführen, daß die GME im Sommer 2003 noch mit dem Standard-Serial Kerneldriver gearbeitet hat und somit die Steuerleitungen der seriellen Schnittstelle noch vom Userspace gepollt wurden. Diese Methode ist sehr ungenau und wurde im Herbst 2003 gegen eine Kerneldriver-Lösung getauscht.

Anfang Dezember erhielten wir die ersten Messungen mit äußerst präzisen Werten.


   GME-READ V3.02 build from  : Dec  4 2003 02:32:53
                  started at  : Thu Dec  4 13:40:54 UTC 2003
                  logfile     : /flashdisk//gme2.log
                  GME_ENTFERNUNG=1000
                  GME_RESET=10
                  GME found on device /dev/serialint (CTS=0,DCD=0)

   04.12.2003 18:29:22 :     1.Achse  ->  1011 ms    1.0 m/s     4 km/h
   04.12.2003 18:29:24 :     2.Achse  ->   728 ms    1.4 m/s     5 km/h
   04.12.2003 18:29:28 :     3.Achse  ->   663 ms    1.5 m/s     5 km/h
   04.12.2003 18:29:30 :     4.Achse  ->   639 ms    1.6 m/s     6 km/h
   04.12.2003 18:29:32 :     5.Achse  ->   609 ms    1.6 m/s     6 km/h
   04.12.2003 18:29:33 :     6.Achse  ->   592 ms    1.7 m/s     6 km/h
   04.12.2003 18:29:37 :     7.Achse  ->   533 ms    1.9 m/s     7 km/h
   04.12.2003 18:29:38 :     8.Achse  ->   517 ms    1.9 m/s     7 km/h
   04.12.2003 18:29:39 :     9.Achse  ->   493 ms    2.0 m/s     7 km/h
   04.12.2003 18:29:41 :    10.Achse  ->   480 ms    2.1 m/s     8 km/h
   04.12.2003 18:29:43 :    11.Achse  ->   433 ms    2.3 m/s     8 km/h
   04.12.2003 18:29:45 :    12.Achse  ->   419 ms    2.4 m/s     9 km/h
   04.12.2003 18:29:45 :    13.Achse  ->   546 ms    1.8 m/s     7 km/h
   04.12.2003 18:29:47 :    14.Achse  ->   390 ms    2.6 m/s     9 km/h
   04.12.2003 18:29:49 :    15.Achse  ->   353 ms    2.8 m/s    10 km/h
   04.12.2003 18:29:50 :    16.Achse  ->   343 ms    2.9 m/s    10 km/h
   04.12.2003 18:29:50 :    17.Achse  ->   329 ms    3.0 m/s    11 km/h
   04.12.2003 18:29:52 :    18.Achse  ->   319 ms    3.1 m/s    11 km/h
   04.12.2003 18:29:53 :    19.Achse  ->   294 ms    3.4 m/s    12 km/h
   04.12.2003 18:29:54 :    20.Achse  ->   287 ms    3.5 m/s    13 km/h
   04.12.2003 18:29:55 :    21.Achse  ->   276 ms    3.6 m/s    13 km/h
   04.12.2003 18:29:56 :    22.Achse  ->   269 ms    3.7 m/s    13 km/h
   04.12.2003 18:29:57 :    23.Achse  ->   257 ms    3.9 m/s    14 km/h
   04.12.2003 18:29:58 :    24.Achse  ->   253 ms    4.0 m/s    14 km/h
   04.12.2003 18:29:58 :    25.Achse  ->   252 ms    4.0 m/s    14 km/h
   04.12.2003 18:29:59 :    26.Achse  ->   252 ms    4.0 m/s    14 km/h
   04.12.2003 18:30:00 :    27.Achse  ->   251 ms    4.0 m/s    14 km/h
   04.12.2003 18:30:01 :    28.Achse  ->   250 ms    4.0 m/s    14 km/h
   04.12.2003 18:30:02 :    29.Achse  ->   249 ms    4.0 m/s    14 km/h
   04.12.2003 18:30:03 :    30.Achse  ->   249 ms    4.0 m/s    14 km/h
   04.12.2003 18:30:04 :    31.Achse  ->   251 ms    4.0 m/s    14 km/h
   04.12.2003 18:30:05 :    32.Achse  ->   250 ms    4.0 m/s    14 km/h
   04.12.2003 18:30:05 :    33.Achse  ->   250 ms    4.0 m/s    14 km/h
   04.12.2003 18:30:07 :    34.Achse  ->   250 ms    4.0 m/s    14 km/h
   04.12.2003 18:30:07 :    35.Achse  ->   255 ms    3.9 m/s    14 km/h
   04.12.2003 18:30:08 :    36.Achse  ->   252 ms    4.0 m/s    14 km/h
   04.12.2003 18:30:09 :    37.Achse  ->   253 ms    4.0 m/s    14 km/h
   04.12.2003 18:30:10 :    38.Achse  ->   251 ms    4.0 m/s    14 km/h
   04.12.2003 18:30:11 :    39.Achse  ->   256 ms    3.9 m/s    14 km/h
   04.12.2003 18:30:12 :    40.Achse  ->   252 ms    4.0 m/s    14 km/h
   04.12.2003 18:30:22 :                          ----------------------
   Durchschnitt der Wagengruppe mit  40 Achsen  :    3.1 m/s    11 km/h
      

Die Abweichungen die jetzt noch in der nachfolgenden Wagengruppe erkennbar sind, erklären sich mit der Beschleunigung der Gruppe wie sie über den Berg geschoben wird und danach, ab der 24. Achse läuft die Wagengruppe mit konstanter Geschwindigkeit über den Berg. Es gibt dann Streuungen zwischen dem Minimum 249 ms (29. Achse) und 256 ms (39. Achse). Diese Streuung ist einerseits erklärbar mit Schwingungen in der rollenden Gruppe, der Genauigkeit der Lichtschranken (+/- 1 ms) und dem Prellen der Relaiskontakte.



© 1997-2016 by Dipl.-HTL-Ing. Heimo SCHÖN
Zur Homepage von EXD - embedded linux devices / Heimo Schön / August Hörandl . Ein E-Mail senden. Den Disclaimer oder die AGB lesen.