Das Regelungsprogramm mit zugehörigem Simulator ist im Original in Turbo-Pascal verfasst und benötigt einen IBM-kompatiblen PC mit mindestens 8 MHz Taktfrequenz zur Ausführung, sowie einen VGA-Bildschirm für die graphische Darstellung. Für die Verkehrssteuerung muss es in Modula geschrieben sein, damit es in den Verkehrsrechner der Stadtpolizei geladen werden kann. Zum Übersetzen kann das Programm "PASMOD" zu Hilfe gezogen werden, das zur Zeit etwa 95% der Konvertierung vornehmen kann.
Die beiden Programme Simulator und Regler in Pascal lassen sich für sich allein oder gekoppelt betreiben: je für sich allein können Verkehrsströme simuliert oder Regler-Entscheide überprüft werden. Der Verkehr auf der Kreuzung und die Ampelstellungen können von Hand erzeugt, aus gespeicherten Messdaten eingespielt oder direkt von der Kreuzung über eine serielle Schnittstelle übermittelt werden.
In Abbildung 54 ist die Simulation des Heimplatzes gezeigt. Die Daten der Topologie können über ein für Menschen verständliches Textfile eingegeben werden, das daraufhin in die interne Datenstruktur (wie im Abschnitt 4.3 beschrieben) umgewandelt werden kann.
Abbildung 54: Benutzeroberfläche des Simulators
Der Bildschirm tritt einen kleinen Teil seiner Fläche an das Protokoll ab: hier werden alle Befehl notiert, die vom Benutzer eingegeben worden sind. Zur Zeit der Abbildung lief der Simulator als Beobachter, synchronisiert mit Messdaten.
Jedes Element, das durch Messdaten beeinflussbar ist, kann entweder über die Tastatur angesprochen werden (über einen Befehl von der Art "Objekttyp Nummer Befehl") oder einfach mit einem Mausklick auf einem der Knöpfe (kleinen Vierecke):
Knöpfe mit eine "A" erzeugen neue Autos,
Knöpfe mit Zahlen neue Trams mit dem entsprechenden Liniencode,
Knöpfe mit Fragezeichen (noch) nicht identifizierte Trams,
Knöpfe mit einem "B" Busse und
Knöpfe mit einem kleinen "r" sind Rückmelder, vor allem für Trams, ohne deren Ansprechen die Existenz eines Trams bald einmal als unsicher betrachtet wird, bis das Tram schliesslich entfernt werden kann.
Knöpfe mit "H" sind an Haltestellen und dienen zum Erzeugen des Signals der Abfahrtsbereitschaft (in Spur 507.20 gemäss Abbildung 54 steht gerade ein Tram noch ohne Abfahrtsbereitschaft, was der Punkt auf dem vorderen Fahrzeug anzeigt).
Trams und Busse sind als Rechtecke dargestellt, Autos als Punkte. Zur Verdeutlichung sind die Tramschienen in der Mitte der Strasse angedeutet.
Daneben sieht man eine Fülle von Ampeln, deren Zustand sich durch Anklicken des Kästchens um die Ampeln ändern lässt. Es gibt
Tram-Ampeln (drei waagerechte oder zwei senkrechte oder schräge Punkte),
Auto-Ampeln parallel zur Fahrtrichtung und
Fussgänger-Ampeln senkrecht zur Fahrtrichtung der Strasse, über welche der zugehörige Fussgängerstreifen führt.
Schliesslich gibt es noch Kästchen mit einem Pfeil darin:
sitzen sie auf einer Tram-Ampel, so sind sie Tram-Weichen;
sind sie allein, so können Autos durch sie von Hand zum Abbiegen gebracht werden, und zwar dort, wo das System über keine Sensoren verfügt, dies festzustellen.
Seine Benutzeroberfläche ist in Abbildung 55 gezeigt. Dargestellt sind sechs Zufahrtsdiagramme der Trams, und zwar
Bellevue Æ Kunsthaus: Spur 508.11,
Kunsthaus Æ Bellevue: Spur 508.12,
Kunsthaus Æ ETH (und Æ Hottingen): Spuren 507.14 und 507.15,
ETH Æ Kunsthaus: Spur 507.29,
Central Æ Römerhof: Spur 507.20 und
Römerhof Æ Central (und Æ Bellevue): Spuren 507.17 und 507.16.
Die Betriebsgeleise 507.18 und in die Gegenrichtung sind nur angedeutet.
Am linken Rand lassen sich die einzelnen Phasen stellen oder wenigstens anfordern, wenn es die Zwischenzeiten noch nicht erlauben. Am rechten Rand können Trams erzeugt werden, als ob sie sich beim Sensor anmeldeten, der am weitesten von der Kreuzung entfernt ist.
Am unteren Rand sind drei Spurendiagramme dargestellt:
Links für die Trams: hell bedeutet rot, schwarz grün und Dunkelgrau dient zum Verbinden der Spuren. Zur Zeit sind Phasen 507.17 und 507.20 grün, was man auch an den Knöpfen am linken Rand sehen kann.
In der Mitte sind die Phasen für die Autos gezeigt, gestrichelt die Tram-Phasen noch angedeutet. Da der gesamte Bildschirm die Sicht des Tram-Reglers zeigt, sind in diesem Diagramm hellgrau nicht die roten Spuren gezeigt, sondern diejenigen, die wegen des Entscheides des Tram-Reglers zur Zeit nicht in Frage kommen und somit für den Auto-Regler nicht existieren. Sein Entscheid wird hier nicht angezeigt.
Und rechts schliesslich sind die Fussgängerphasen gezeigt, da die anderen beiden Diagramme sonst überladen wären; gestrichelt sind die Tram- und Autophasen angedeutet.
In den Diagrammen sehen wir drei Einträge: zuerst kam ein unbekanntes Tram vom Bellevue her (508.11) und konnte ohne Halt in die Haltestelle einfahren. Deshalb wurde es für das dritte Diagramm vorgemerkt, und zwar für den geschätzten Zeitpunkt seiner Abfahrtsbereitschaft. Inzwischen ist es sogar identifiziert worden als Tram Nummer 8 für Spur 507.15 und wartet noch (unbestraft, da mit vermuteten offenen Türen) in der Haltestelle. Der senkrechte Strich stellt übrigens den aktuellen Zeitpunkt dar und wandert allmählich nach rechts.
Nachdem das vorhin erwähnte Tram in seine Haltestelle eingefahren war, hätte ein Tram in Spur 507.20 Grün bekommen sollen, da seine Wartezeit an der Haltestelle vorüber war. Da die Ampel nicht sofort reagierte, hat sich etwas Wartezeit angesammelt, die proportional zum Rechteck über der Marke auf der Zufahrt ist.
Die gezeigte Situation ist den Messdaten entnommen worden; der Regler hat nur auf seine Art dargestellt, was der bestehende Regler der Stadtpolizei bestimmt hatte.
Abbildung 55: Benutzeroberfläche des Reglers
Abbildung 56 zeigt die Modul-Struktur des Reglers und des Simulators (zu einem einzigen Programm zusammengefasst) in Modula. In Pascal sind ein paar zusätzliche Module (dann aber Units genannt) zu finden, die im wesentlichen nur der graphischen Darstellung dienen; es sind dies die Units
Das Hauptmodul der Regelung heisst "gradess". Dieses Modul ist in das Programm der Stadtpolizei einzubinden. Es importiert Namen aus allen anderen Modulen, weshalb die Linien weggelassen sind. Auf der anderen Seite importieren alle Module Namen aus dem Modul "pascal", was Vereinfachungen bei der automatischen Übersetzung von Pascal nach Modula ermöglicht. Die verbleibenden Module haben folgende Aufgaben:

Abbildung 56: Modul-Struktur des Regler-Programmes
Für statistische Auswertungen müssen die Daten der Kreuzung über lange Zeiträume gesammelt werden. Da alle 0,1s Messwerte für die Detektoren und alle 1s Messwerte für die Ampel-Stellungen anfallen, ist es sinnvoll, die Daten zu komprimieren. Als kleinste Einheit der Speicherung der Zeitpunkte diene die Abtastrate a: 0,1s für Detektoren und 1s für Ampeln.
Es sollen nur Veränderungen gespeichert werde, also der Wechsel eines Signals von 0 auf 1 oder umgekehrt.
Es sollen nur wo nötig absolute Zeitpunkte gespeichert werden; sonst nur Zeitdifferenzen.
Für einen schnelleren Zugriff kann aus den komprimierten Daten ein Index errechnet werden.
Folgendes Datenformat, auf der Basis eines Bytes à 8 Bit, wird für die Codierung verwendet (Präfix-frei und deshalb mit variabler Länge und nur sequentiell lesbar):
das oberste Bit (Nummer 7) entscheidet, ob das Byte eine Messwert- oder eine Zeit-Information in den restlichen Bits (6 bis 0) mit sich führt.
wenn das oberste Bit 0 ist, so folgt eine Messwert-Information: das zweitoberste Bit entscheidet, ob das Signal aus- (0) oder einschaltet (1). Somit sind maximal 64 Messwerte in einem Byte (in den Bits 5 bis 0) codierbar.
ist das oberste Bit 1, so folgt eine Zeit-Differenz t in den Bits 5 bis 0: ist das zweitoberste Bit 0, so ist t in Schritten der Abtastrate a zu verstehen, ist es 1, so ist t in Schritten von 64a + 1 zu berechnen. t ist gleich dem Inhalt der 6 untersten Bits +1,da der Wert 0 nicht sinnvoll ist.
Es folgt ein Beispiel einer Aufzeichnung zweier Detektor-Signale (Abtastzeit a = 0,1 s):
1000 0100 0,5s Zeitdifferenz
0100 0001 Detektor 1 schaltet ein
0100 0101 Detektor 5 schaltet ein
1001 0100 2s Zeitdifferenz
0000 0101 Detektor 5 schaltet aus
1100 0000 6,5s
1000 0100 0,5s, zusammen 7s Zeitdifferenz
0000 0001 Detektor 1 schaltet aus
Anfangszeit und -datum sind im Filenamen abgespeichert, ob Detektoren oder Signale codiert sind in der Extension (.det oder .sig). Pro File werden die Messwerte einer Stunde gespeichert.
Da der absolute Zeitpunkt eines Messwertes nicht gespeichert wird, kann für das schnellere Auffinden eines Zeitpunktes ein Index pro File generiert werden. Im Index müssen absoluter Zeitpunkt der folgenden Messwerte und Offset zur Verfügung stehen. Der Offset zeigt auf den ersten Messwert zur gespeicherten Zeit.
Für die Abtastrate von 0,1s muss der Wertebereich der Zeit zwischen 0 und 35999 liegen (da nur immer 1 Stunde abgespeichert wird), was 2 Bytes entspricht. Hingegen müssen 3 Bytes für den Offset vorgesehen werden, um mehr als 65535 Daten speichern zu können. Das ergibt einen Platzbedarf von 5 Bytes pro Eintrag. Bei einem Eintrag pro Minute wird der Index für 1 Stunde 300 Bytes lang.
Für die Abtastrate von 1s liegt der Wertebereich der Zeitpunkte zwischen 0 und 3599, was mit 1,5 Bytes codiert werden könnte. Der Einfachheit zuliebe bauen wir den Index jedoch gleich wie im vorhergehenden Fall auf. Ein Beispiel mit Abtastrate 1s und Beginn des File um 8:00 ist im folgenden gezeigt.
Index Daten
Minute Zeitpunkt Offset kompr. Daten Erklärung
1000 1100 16s Zeitdifferenz
0 8:00:16 1 0100 1000 Signal 8 schaltet ein
1010 0111 40s Zeitdifferenz
0100 0010 Signal 2 schaltet ein
1000 1001 10s Zeitdifferenz
1 8:01:06 5 0000 1000 Signal 8 schaltet aus
1100 0001 129s Zeitdifferenz
1000 1010 11s Zeitdifferenz
2 8:03:26 8 (keine Messwerte in dieser Minute)
3 8:03:26 8 0000 0010 Signal 2 schaltet aus
Die Topologie der Kreuzung ist in einem Konfigurations-Datenfile abgelegt, so dass verschiedene Kreuzungen simuliert werden können. Der Regler bezieht zur Zeit aber nur teilweise seine Parameter aus diesem File. Zusätzlich braucht er auch die Matrix der Zwischenzeiten für beide Kreuzungen, die in Abbildung 57 gezeigt ist.
Weiteres Verhalten, speziell auf die Kreuzung zugeschnitten, ist ausprogrammiert, so dass die Regelung noch nicht universell einsetzbar ist. Das Konfigurations-Datenfile des Simulators ist für einen Menschen schlecht lesbar; darum ist es möglich, in einem lesbaren File die Kreuzung zu beschreiben und es dann mit dem Programm "VISFORM" in das maschinennahe Format übersetzen zu lassen.
Das lesbare File, gezeigt auf den folgenden Seiten, definiert für wandernde Cursoren (@0 bis @9), was ihnen auf ihren Wegen widerfährt. Sie wandern so, wie sich die Verkehrsteilnehmer bewegen können, und kommen an Knöpfen, Weichen, Blockstellen und vielem mehr vorbei. Es entsteht ein in Abschnitte gegliederter Text, in welchem mehr eingerückte Zeilen weniger eingerückte mit Zusätzen versehen (beispielsweise einen Detektor mit einem Knopf, um seine Meldungen künstlich auslösen zu können). Am Ende werden noch die graphischen Elemente wie Fussgängerstreifen und -ampeln, Strassenränder und Schienen auf den Bildschirm gelegt, die Länge der angezeigten Gelbzeiten definiert, sowie ein Teil des Verhaltens der Detektoren untereinander festgelegt.
{abcd...} Kommentare stehen in geschweiften Klammern.
v= x m/s ab hier gilt x m/s als Initialgeschwindigkeit für Strassenabschnitte.
@n: (x/y) legt die Startkoordinaten (x/y) des Cursors n fest, und dieser Cursor wird von nun an zum Definieren von Strassen benutzt.
für @n: führt von nun an den Cursor n weiter, ohne ihm neue Start-Koordinaten zuzuordnen.
Strasse nach (x/y)
fährt den aktuellen Cursor nach (x/y) und definiert so ein Strassenstück.
Strasse von @n nach (x/y)
fährt den aktuellen Cursor von der augenblicklichen Position des Cursors n zu den Koordinaten (x/y) und definiert auch so ein Strassenstück.
Sensor n (t) nach d erzeugt m
definiert einen Sensor mit der Kennung (Nummer) n vom Typ t (wie BS, FS, TS) nach einer Distanz von d Metern (gerechnet vom Anfang des Strassenabschnittes, wie er vom Cursor definiert worden ist), der ein Fahrzeug mit der Kennung m erzeugen kann (die Kennungen 1 bis 15 sind Trams und 16 ist ein Bus; wird der Passus "erzeugt m" weggelassen, so wird ein Auto erzeugt);
z.B. "Sensor 12 (FS) nach 20 erzeugt 16".
mit Knopf bei (x/y): Text=b, erzeugt p, Farbe=f
definiert einen Knopf an den Koordinaten (x/y) zur Erzeugung von Detektor-Signalen; der Knopf kann mit einem Buchstaben b in seinem Inneren angeschrieben werden. Wenn er betätigt wird, erzeugt er ein Fahrzeug mit der Kennung (d.h. vom Typ) p, und er hat die Farbe f. Sollen mehrere Knöpfe nebeneinander angeordnet werden, so hat die Definition aller folgenden Knöpfe mit den Worten
darunter Knopf oder
rechts daneben Knopf
zu beginnen. Mögliche Farben sind: grün, hellgrün, rot, hellrot, blau, hellblau, braun, gelb, violett, hellviolett, türkis, helltürkis, schwarz, weiss, hellgrau und dunkelgrau.
mit Auto-Ampel Nr. n bei (x/y), Neigung w°
definiert eine Auto-Ampel mit der Nummer n (so, wie sie auf der Kreuzung bezeichnet wird) an den Koordinaten (x/y) und mit der Neigung (dem Winkel) w° zum Betrachter; als Neigungen sind 0°, 90°, 180° und 270° zugelassen (0° bedeutet senkrecht nach oben bezüglich des Betrachters).
mit Tram-Ampel r ...
wie vorhin, nur dass für eine Tram-Ampel zusätzlich angegeben werden muss, was für ein Bild sie bei freier Fahrt zeigen soll (nach links, geradeaus oder nach rechts). Entsprechend sind die Parameter für r die Zeichen "\", "|" oder "/".
Weiche r Nr. n von @x nach @y oder @z, Knopf bei (a/b), Neigung w°
legt eine Weiche vom Richtungstyp r (möglich sind "\|" für links-gerade, "\/" für links-rechts und "|/" für gerade rechts), welche die Strasse, die zur Zeit an der Cursor-Position x endet, mit den Strassen, die zur Zeit an den Cursor-Positionen y und z beginnen, verbindet, je nach Weichenstellung. Die Weiche kann mit dem Knopf an der Position (a/b) gestellt werden, wobei die Richtung des Pfeiles im Knopf, der eine gerade Stellung anzeigt, durch w gegeben ist (Wertebereich wie für die Ampeln).
Tram-Weiche ... , Signale \a und /b
wenn eine Weiche sich vor einer Ampel befindet, befolgt das Fahrzeug vor der Ampel normalerweise nicht je nach Stellung der Weiche verschiedene Ampeln. Nicht so jedoch bei Trams, für welche eine andere Ampel je nach Weichenstellung gilt (da verschiedene Fahrtrichtungen dieselbe Zufahrt benutzen können). Im Unterschied zur eben beschriebenen Weiche kann deshalb eine Tram-Weiche die Weiterfahrt eines Trams verhindern, je nach Weichenstellung und der Stellung der zugeordneten Ampel. Die Parameter a und b enthalten die Nummern der Ampeln, die je nach Weichenstellung für die Weiterfahrt nach links oder nach rechts gelten.
Zusammenfluss nach @x von @y oder @z
das Gegenstück einer Weiche: der Zusammenfluss zweier Strassen (mit Endpunkten, die durch die Cursoren y und z gegeben sind) in eine Strasse, deren Anfangspunkt durch den Cursor x gegeben ist.
mit Haltestelle Nr. n, Stop bei (x/y), Knopf bei (a/b), frei nach p s
definiert eine Tram- oder Bus-Haltestelle mit der Nummer n (welche der Nummer des Abfahrtsdetektors entspricht). Die Koordinaten des roten Punktes, der angezeigt werden soll, wenn die Türen geöffnet sind, werden durch (x/y) festgelegt, die Position des Knopfes, mit welchem sich die Abfahrtsbereitschaft von Hand auslösen lässt, mit (a/b). Der Anfangswert für die Zeit, nach welcher das Tram die Abfahrtsbereitschaft signalisieren soll (ohne auf den Detektor zu achten), ist im Parameter p in Sekunden zu definieren.
Block Nr. n: sperrt am a von @x, b beim c des d von @y
Definition eines Streckenblockes, der nur von einem Tram auf ein Mal befahren werden kann. Die Parameter x und y sind die Nummern von Cursoren, n ist die Nummer des Blocks. Die Parameter a bis d müssen mit Text gefüllt werden, und zwar
a mit "Anfang" oder "Ende",
b mit "gesetzt" oder "gelöscht",
c mit "Befahren" oder "Verlassen" und
d mit "Anfangs" oder "Endes"
z.B. "Block Nr. 2: sperrt am Ende von @1, gesetzt beim Befahren des Anfangs von @2, gelöscht beim Verlassen des Endes von @3".
Kreuzung 507:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
|
1: |
0 |
0 |
3 |
4 |
0 |
2 |
0 |
0 |
6 |
0 |
0 |
0 |
4 |
0 |
3 |
3 |
3 |
4 |
0 |
2 |
2: |
0 |
0 |
0 |
0 |
0 |
2 |
0 |
0 |
0 |
0 |
0 |
0 |
4 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
3: |
2 |
0 |
0 |
0 |
4 |
5 |
0 |
4 |
0 |
0 |
0 |
7 |
0 |
2 |
0 |
0 |
3 |
1 |
4 |
4 |
4: |
2 |
0 |
0 |
0 |
4 |
0 |
0 |
4 |
0 |
7 |
0 |
0 |
0 |
2 |
0 |
0 |
0 |
2 |
4 |
0 |
5: |
0 |
0 |
2 |
2 |
0 |
4 |
0 |
0 |
4 |
0 |
0 |
6 |
0 |
0 |
0 |
0 |
2 |
0 |
0 |
4 |
6: |
4 |
4 |
2 |
0 |
2 |
0 |
6 |
0 |
0 |
0 |
4 |
0 |
0 |
4 |
4 |
3 |
0 |
0 |
2 |
0 |
7: |
0 |
0 |
0 |
0 |
0 |
4 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
2 |
7 |
7 |
0 |
0 |
2 |
8: |
0 |
0 |
5 |
5 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
3 |
0 |
0 |
9: |
11 |
0 |
0 |
0 |
13 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
5 |
0 |
0 |
0 |
8 |
9 |
0 |
10: |
0 |
0 |
0 |
2 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
11: |
0 |
0 |
0 |
0 |
0 |
3 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
12: |
0 |
0 |
2 |
0 |
2 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
13: |
3 |
3 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
14: |
0 |
0 |
7 |
7 |
0 |
6 |
0 |
0 |
6 |
0 |
0 |
0 |
0 |
0 |
0 |
5 |
6 |
8 |
0 |
5 |
15: |
6 |
0 |
0 |
0 |
0 |
6 |
7 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
6 |
0 |
5 |
16: |
6 |
0 |
0 |
0 |
0 |
7 |
7 |
0 |
0 |
0 |
0 |
0 |
0 |
7 |
0 |
0 |
0 |
4 |
6 |
6 |
17: |
6 |
0 |
6 |
0 |
7 |
0 |
7 |
0 |
0 |
0 |
0 |
0 |
0 |
7 |
0 |
0 |
0 |
4 |
7 |
0 |
18: |
6 |
0 |
7 |
7 |
0 |
0 |
0 |
10 |
4 |
0 |
0 |
0 |
0 |
5 |
6 |
10 |
10 |
0 |
0 |
6 |
19: |
0 |
0 |
6 |
5 |
0 |
7 |
0 |
0 |
4 |
0 |
0 |
0 |
0 |
0 |
0 |
6 |
6 |
0 |
0 |
7 |
20: |
7 |
0 |
5 |
0 |
6 |
0 |
9 |
0 |
0 |
0 |
0 |
0 |
0 |
7 |
8 |
7 |
0 |
7 |
6 |
0 |
Kreuzung 508
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
einfahren |
|
1: |
0 |
3 |
2 |
0 |
2 |
0 |
6 |
0 |
0 |
4 |
0 |
0 |
|
2: |
3 |
0 |
4 |
4 |
0 |
4 |
0 |
0 |
7 |
0 |
3 |
4 |
|
3: |
4 |
2 |
0 |
0 |
3 |
7 |
0 |
4 |
0 |
0 |
4 |
4 |
|
4: |
0 |
2 |
0 |
0 |
3 |
0 |
0 |
4 |
0 |
6 |
0 |
0 |
|
5: |
4 |
0 |
3 |
3 |
0 |
7 |
0 |
0 |
4 |
0 |
4 |
4 |
|
6: |
0 |
4 |
2 |
0 |
2 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
7: |
2 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
8: |
0 |
0 |
4 |
4 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
9: |
0 |
5 |
0 |
0 |
7 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
10: |
9 |
0 |
0 |
7 |
0 |
0 |
0 |
0 |
0 |
0 |
7 |
6 |
|
11: |
0 |
6 |
6 |
0 |
6 |
0 |
0 |
0 |
0 |
5 |
0 |
0 |
|
12: |
0 |
5 |
6 |
0 |
6 |
0 |
0 |
0 |
0 |
7 |
0 |
0 |
|
räumen |
Abbildung 57: die Matrix der Zwischenzeiten (Werte in [s])
{Definition des Heimplatzes
==========================}
{Th. Riedel, 30.9.1993}
{Strasse vom Kreuzplatz}
v=10 m/s
@0: (435/293)
Strasse nach (290/293) {Zufahrt 508.2}
Sensor 40 (BS) nach 0 erzeugt 16 {Bus-Detektor 40}
mit Knopf bei (450/275): Text=B, erzeugt 16, Farbe=hellblau {Bus 31}
Sensor 41 (BS) nach 90 erzeugt 16
mit Knopf bei (365/275): Text=r, Farbe=dunkelgrau {Bus-Rückmelder}
Sensor 34 (FS) nach 95 {...zum Schluss Fz-Det. 34}
mit Knopf bei (340/275): Text=A, Farbe=hellgrau {Autos}
Sensor 42 (BS) nach 140 erzeugt 16
mit Knopf bei (320/275): Text=r, Farbe=dunkelgrau {Bus-Rückmelder}
mit Auto-Ampel Nr. 22 bei (320/284), Neigung 180° {Ampel 508.2}
Strasse nach (200/293) {...über die Kreuzung}
{Strasse vom Bellevue}
v=18 m/s
@0: (265/375)
Strasse nach (265/320) {Zufahrt 508.1}
Sensor 33 (FS) nach 0 {Auto-Detektor 33}
mit Knopf bei (274/376): Text=A, Farbe=hellgrau {Autos}
mit Auto-Ampel Nr. 21 bei (285/340), Neigung 90° {Ampel 508.1}
Strasse nach (265/310) {...über die Kreuzung}
@1: Strasse von @0 nach (275/300) {...Rechtsabbieger}
@2: Strasse von @0 nach (265/290) {...geradeaus}
Weiche |/ Nr. 7 von @0 nach @2 oder @1, Knopf bei (300/362), Neigung 90°
@3: Strasse von @2 nach (272/283) {Querfahrt zur nach .2}
@4: Strasse von @2 nach (265/252) {Zufahrt 507.1, Autos}
mit Auto-Ampel Nr. 1 bei (292/270), Neigung 90° {Ampel 507.1}
Weiche |/ Nr. 1 von @2 nach @4 oder @3, Knopf bei (300/350), Neigung 90°
für @3: Strasse nach (272/252) {Zufahrt 507.2, Autos}
mit Auto-Ampel Nr. 2 bei (298/270), Neigung 90° {Ampel 507.2}
Strasse nach (272/247) {...Wegfahrt 507.2}
Strasse nach (295/224) {...nach der Kreuzung}
für @4: Strasse nach (265/189) {...Überfahrt 507.1}
{Strasse vom Neumarkt zum Kreuzplatz}
@0: (180/300)
Strasse nach (220/300) {Zufahrt 508.5}
Sensor 35 (FS) nach 0 {Auto-Detektor 35}
mit Knopf bei (170/310): Text=A, Farbe=hellgrau {Autos}
Sensor 44 (BSAB) nach 30 erzeugt 16 {Bus-Detektor 44}
mit Knopf bei (190/330): Text=B, erzeugt 16, Farbe=hellblau {Bus 31}
mit Auto-Ampel Nr. 25 bei (200/307), Neigung 0° {Ampel 508.5}
@8: Strasse von @0 nach (237/300) {...über die Kreuzung}
@5: Strasse von @8 nach (244/307) {...Rechtsabbieger}
@6: Strasse von @8 nach (254/300) {...geradeaus}
Weiche |/ Nr. 52 von @8 nach @6 oder @5, Knopf bei (166/328), Neigung 0°
@9: Strasse von @5 nach (244/440) {...zum Bellevue}
@9: Strasse von @6 nach (275/300)
@7: Strasse von @9 nach (435/300) {...nach der Kreuzung}
Zusammenfluss nach @7 von @1 und @9 {...für 508.5 geradeaus und 508.1 rechts}
{Strasse vom Neumarkt zum Hottingerplatz}
@0: (173/224)
Strasse nach (216/224) {Zufahrt 507.6}
Sensor 4 (FS) nach 0 {Auto-Detektor 4}
mit Knopf bei (160/233): Text=A, Farbe=hellgrau {Autos}
mit Auto-Ampel Nr. 6 bei (190/243), Neigung 0° {Ampel 507.6}
Strasse nach (295/224) {...über die Kreuzung}
@1: Strasse von @0 nach (800/224) {...Wegfahrt}
Zusammenfluss nach @1 von @0 und @3 {...für 507.6 und 507.2}
{Strasse vom Hottingerplatz, geradeaus und rechts}
@0: (345/196)
Strasse nach (302/196)
Sensor 2 (FS) nach 0 {Zufahrt 507.4, Auto-Detektor 2}
mit Knopf bei (370/169): Text=A, Farbe=hellgrau {Autos}
mit Auto-Ampel Nr. 4 bei (341/169), Neigung 180° {Ampel 507.4}
Strasse nach (272/196) {...zur Kreuzung}
@2: Strasse von @0 nach (265/189) {...Rechtsabbieger}
@1: Strasse von @0 nach (244/196) {...geradeaus}
Weiche |/ Nr. 4 von @0 nach @1 oder @2, Knopf bei (350/150), Neigung 180°
@3: Strasse von @2 nach (265/20) {...Wegfahrt zur ETH}
Zusammenfluss nach @3 von @2 und @4 {für 507.4 und 507.1}
für @1: Strasse nach (237/203) {...Überfahrt, schräg}
@2: Strasse von @1 nach (110/203) {...Wegfahrt zum Neumarkt}
{Strasse von der ETH}
@0: (244/120)
Strasse nach (244/175)
Sensor 3 (FS) nach 0 {Zufahrt 507.5, Auto-Detektor 3}
mit Knopf bei (222/131): Text=A, Farbe=hellgrau {Autos}
mit Auto-Ampel Nr. 5 bei (222/149), Neigung 270° {Ampel 507.5}
@3: Strasse von @0 nach (244/196) {...nach rechts}
@4: Strasse von @3 nach (244/219) {...geradeaus}
Weiche |/ Nr. 5 von @3 nach @4 oder @1, Knopf bei (200/150), Neigung 270°
{Zusammenfluss durch Weichen gegeben}
{Strasse vom Hottingerplatz, links}
@7: (345/203)
Strasse nach (302/203)
Sensor 1 (FS) nach 0 {Zufahrt 507.3, Auto-Detektor 1}
mit Knopf bei (370/180): Text=A, Farbe=hellgrau {Autos}
mit Auto-Ampel Nr. 3 bei (341/175), Neigung 180° {Ampel 507.3}
Strasse nach (260/203) {...in die Kreuzung}
Strasse nach (244/219) {...nach links}
@0: Strasse von @4 nach (244/220) {Zufahrt 508.3/4, Autos}
Zusammenfluss nach @0 von @7 und @4 {...für 507.3 und 507.5}
{vor Kiosk}
@2: Strasse von @0 nach (237/227) {Querfahrt 508.4}
@3: Strasse von @2 nach (237/277) {...Zufahrt 508.4}
mit Auto-Ampel Nr. 24 bei (209/254), Neigung 270° {Ampel 508.4}
@4: Strasse von @3 nach (237/300) {...geradeaus 508.4}
Zusammenfluss nach @5 von @4 und @-8 {@8 ist Weiche}
@1: Strasse von @0 nach (244/277) {Zufahrt 508.3}
Sensor 5 (FS) nach 20 nimmt von @3 nach 10
mit Knopf bei (218/243): Text=r, Farbe=dunkelgrau
mit Auto-Ampel Nr. 23 bei (215/254), Neigung 270° {Ampel 508.3}
Weiche \| Nr. 3 von @0 nach @1 oder @2, Knopf bei (185/260), Neigung 270°
für @1: Strasse nach (244/290) {...Linksabbieger}
Strasse nach (254/300)
Zusammenfluss nach @9 von @6 und @1 {...für 508.3 und 508.5}
{Trams:}
v=10 m/s
{vom Bellevue}
@1: (258/430)
Strasse nach (258/320)
Sensor 37 (TS) nach 0 {Zufahrt 508.11, Tram-Detektor 37}
mit Knopf bei (274/400): Text=5, erzeugt 5, Farbe=braun {Tram 5}
darunter Knopf: Text=8, erzeugt 8, Farbe=hellgrün {Tram 8}
darunter Knopf: Text=9, erzeugt 9, Farbe=violett {Tram 9}
darunter Knopf: Text=?, erzeugt 0, Farbe=hellgrau {undefiniertes Tram}
Sensor 38 (TS) nach 60 {Tram-Detektor 38}
mit Knopf bei (274/360): Text=r, Farbe=dunkelgrau {Tram-Rückmelder}
Sensor 39 (TS) nach 105 {Tram-Detektor 39}
mit Knopf bei (274/348): Text=r, Farbe=dunkelgrau {Tram-Rückmelder}
mit Tram-Ampel | Nr. 31 bei (276/340), Neigung 90° {Ampel 508.11}
@0: Strasse von @1 nach (258/247) {Zufahrt 507.14}
Sensor 49 (TS) nach 70
mit Knopf bei (304/244): Text=r, Farbe=dunkelgrau {logischer Det. 49}
mit Tram-Ampel / Nr. 15 bei (283/282), Neigung 90° {Ampel 507.15}
mit Tram-Ampel | Nr. 14 bei (283/274), Neigung 90°, ohne Stiel {Ampel 507.14}
mit Haltestelle Nr. 1, Stop bei (258/256), Knopf bei (325/258), frei nach 20s
Block Nr. 1: sperrt am Ende von @1, gesetzt beim Befahren des Anfangs von @0,
gelöscht beim Befahren des Endes von @0
@1: Strasse von @0 nach (288/217) {Abzweigung für 507.15}
@2: Strasse von @0 nach (258/20) {Geradeaus für 507.14}
Tram-Weiche |/ Nr. 8 von @0 nach @2 oder @1, Knopf bei (278/250), Neigung 90°, Signale \14 und /15
{vom Neumarkt}
@0: (90/217)
Strasse nach (216/217)
Sensor 48 (TS) nach 0 {Zufahrt 507.20, TS "48", nur manuell}
mit Knopf bei (80/233): Text=3, erzeugt 3, Farbe=grün {Tram 3}
Sensor 20 (TSAB) nach 121 erzeugt 3
mit Knopf bei (175/233): Text=?, Farbe=dunkelgrau
mit Tram-Ampel | Nr. 20 bei (190/234), Neigung 0° {Ampel 507.20}
mit Haltestelle Nr. 3, Stop bei (208/217), Knopf bei (140/233), frei nach 20s
Strasse nach (288/217) {...über die Kreuzung}
@2: Strasse von @0 nach (500/217) {...nach der Kreuzung}
Zusammenfluss nach @2 von @0 und @1 {...für 507.20 und 507.15}
{vom Hottingerplatz}
@0: (492/210)
Strasse nach (302/210)
Sensor 9 (TSLC) nach 0 {Zufahrt 507.17-16, Tram-Detektor 9}
mit Knopf bei (500/180): Text=3, erzeugt 3, Farbe=grün {Tram 3}
rechts daneben Knopf: Text=8, erzeugt 8, Farbe=hellgrün {Tram 8}
rechts daneben Knopf: Text=?, erzeugt 0, Farbe=hellgrau {undefiniertes Tram}
Sensor 10 (TS) nach 140
mit Knopf bei (385/180): Text=r, Farbe=dunkelgrau
Sensor 11 (SSK) nach 180
mit Knopf bei (315/150): Text=r, Farbe=dunkelgrau
Sensor 51 (TS) nach 188
mit Knopf bei (300/150): Text=r, Farbe=dunkelgrau
mit Tram-Ampel \ Nr. 16 bei (354/184), Neigung 180° {Ampel 507.16}
mit Tram-Ampel | Nr. 17 bei (345/184), Neigung 180°, ohne Stiel {Ampel 507.17}
@1: Strasse von @0 nach (276/210) {...Abzweigung 507.16}
@2: Strasse von @0 nach (177/210) {...geradeaus 507.17}
Sensor 24 (TS) nach 125
mit Knopf bei (184/184): Text=r, Farbe=dunkelgrau
mit Haltestelle Nr. 4, Stop bei (186/210), Knopf bei (140/184), frei nach 20s
Tram-Weiche \| Nr. 15 von @0 nach @1 oder @2, Knopf bei (321/180), Neigung 180°, Signale \16 und /17 {16/17}
Block Nr. 2: sperrt wenn Weiche Nr. 15 links am Ende von @0,
gesetzt beim Befahren des Anfangs von @1
Block Nr. 3: sperrt wenn Weiche Nr. 15 rechts am Ende von @0,
gesetzt beim Befahren des Anfangs von @2
für @1: Strasse nach (251/235) {...nach der Kreuzung, zum Neumarkt}
für @2: Strasse nach (110/210)
Block Nr. 3: gelöscht beim Befahren des Anfangs von @2
{von der ETH}
@0: (251/5)
Strasse nach (251/175)
Sensor 47 (TS) nach 0 {Zufahrt 507.19, TS "47", nur manuell}
mit Knopf bei (222/15): Text=5, erzeugt 5, Farbe=braun {Tram 5}
darunter Knopf: Text=9, erzeugt 9, Farbe=violett {Tram 9}
darunter Knopf: Text=?, erzeugt 0, Farbe=hellgrau {undefiniertes Tram}
Sensor 16 (TS) nach 110 {TS 16}
mit Knopf bei (222/115): Text=?, erzeugt 0, Farbe=hellgrau
Sensor 17 (SSK) nach 155
mit Knopf bei (200/130): Text=r, Farbe=dunkelgrau
Sensor 19 (TS) nach 165
mit Knopf bei (222/180): Text=r, Farbe=dunkelgrau
mit Tram-Ampel \ Nr. 18 bei (231/149), Neigung 270° {Ampel 507.18, nicht in Betrieb}
mit Tram-Ampel | Nr. 19 bei (231/157), Neigung 270°, ohne Stiel {Ampel 507.19}
Block Nr. 2: sperrt am Ende von @0
Strasse nach (251/235) {...über die Kreuzung}
Block Nr. 2: gesetzt beim Befahren des Anfangs von @0
{zum Bellevue}
@2: Strasse von @1 nach (251/284) {Zufahrt 508.12, Trams}
Sensor 43 (TS) nach 49 {TS}
mit Knopf bei (204/276): Text=r, Farbe=dunkelgrau
mit Tram-Ampel | Nr. 32 bei (224/254), Neigung 270° {Ampel 508.12}
mit Haltestelle Nr. 2, Stop bei (251/275), Knopf bei (155/258), frei nach 20s
Zusammenfluss nach @2 von @0 und @1 {...für 507.19 und 507.16}
@0: Strasse von @2 nach (251/400) {...nach der Kreuzung}
Block Nr. 2: gelöscht beim Befahren des Anfangs von @0
{Fussgänger:}
Fussgängerstreifen bei (292/194) mit 6 Streifen, vertikal
Fussgänger-Ampel Nr. 7 bei (307/251), Neigung 90° {507.7}
Fussgänger-Ampel Nr. 8 bei (307/169), Neigung 270° {507.8}
Fussgängerstreifen bei (241/179) mit 5 Streifen, horizontal
Fussgänger-Ampel Nr. 9 bei (300/182), Neigung 180° {507.9}
Fussgängerstreifen bei (235/233) mit 9 Streifen, horizontal
Fussgänger-Ampel Nr. 12 bei (210/236), Neigung 0°, ohne Stiel {507.12}
Fussgänger-Ampel Nr. 13 bei (310/236), Neigung 180° {507.13}
Fussgängerstreifen bei (220/200) mit 5 Streifen, vertikal
Fussgänger-Ampel Nr. 10 bei (214/174), Neigung 270° {507.10}
Fussgänger-Ampel Nr. 11 bei (214/249), Neigung 90° {507.11}
Fussgängerstreifen bei (281/289) mit 3 Streifen, vertikal
Fussgänger-Ampel Nr. 26 bei (292/328), Neigung 90° {508.6}
Fussgänger-Ampel Nr. 27 bei (312/276), Neigung 180° {508.7}
Fussgängerstreifen bei (235/279) mit 7 Streifen, horizontal
Fussgänger-Ampel Nr. 28 bei (210/281), Neigung 0° {508.8}
Fussgängerstreifen bei (225/289) mit 3 Streifen, vertikal
Fussgänger-Ampel Nr. 29 bei (226/328), Neigung 90° {508.9}
Fussgängerstreifen bei (241/311) mit 5 Streifen, horizontal
Fussgänger-Ampel Nr. 30 bei (217/328), Neigung 0° {508.10}
{Strassen:}
Rand auf (269/470) - (269/312) - (278/303) - (470/303) {Bellevue-Kreuzplatz}
Rand auf (470/289) - (278/289) - (276/287) - (276/248) - (297/227) - (550/227) {Kreuzplatz-Theater-Hottingerplatz}
Rand auf (550/199) - (367/199) - (360/192) - (280/192) - (269/181) - (269/5) {Hottingerplatz-ETH}
Rand auf (239/ 5) - (239/193) - (233/199) - ( 50/199) {ETH-Neumarkt}
Rand auf ( 50/227) - (232/227) - (232/289) - (150/289) {Neumarkt-Kiosk-Neumarkt}
Rand auf (150/303) - (232/303) - (239/310) - (239/470) {Neumarkt-Bellevue}
{Schienen:}
Schiene von (256/470) nach (256/5) {Durchfahrt Bellevue-ETH}
Schiene von (259/470) nach (259/5)
Schiene von (256/247) nach (288/215) {Querfahrt Bellevue-Hottingen}
Schiene von (259/249) nach (290/218)
Schiene von (50/215) nach (550/215) {Durchfahrt Neumarkt-Hottingen}
Schiene von (50/218) nach (550/218)
Schiene von (50/208) nach (550/208) {Durchfahrt Hottingen-Neumarkt}
Schiene von (50/211) nach (550/211)
Schiene von (249/234) nach (275/208) {Querfahrt Hottingen-Bellevue}
Schiene von (252/236) nach (277/211)
Schiene von (249/470) nach (249/5) {Durchfahrt ETH-Bellevue}
Schiene von (252/470) nach (252/5)
Gelbzeiten:
1: 3 {507.1}
2: 3
3: 3
4: 3
5: 3
6: 3
7: 4
8: 4
9: 5
10: 3
11: 3
12: 3
13: 3
14: 2
15: 2
16: 3
17: 3
18: 3
19: 3
20: 2
21: 3 {508.1}
22: 3
23: 3
24: 3
25: 3
26: 3
27: 3
28: 3
29: 5
30: 6
31: 5
32: 2
Detektor-Konfiguration:
{Nr Typ Vrb tot1 tot0 nächster Distanz nä.Ampel Distanz}
1: FS - 0 0.5 - | 5 - | 75 3 45
2: FS - 0 0.5 - 4 45
3: FS - 0 0.5 - | 5 - | 80 5 50
4: FS - 0 0.5 - 6 45
5: FS - 0 0.5 - 23 25
{6: L 49 {6, 21 und 22 schreiben nach 49 (unzuverlässig)}
7: L 49 {SSK, schreibt aber auch nach 49}
8: WK - links: 5,9 rechts: 8
9: TS - 1 8 10 140 0 180 {nicht eindeutig}
10: TS - 0 8 11 40 0 40
11: SSK - 0 1 51 8 {13 und 14 schreiben nach 51}
12: WK - links: 3,8 rechts: 16
13: L 51 {SSK, 13, 14 und 25 schreiben nach 51}
14: L 51 {SSK, 13, 14 und 25 schreiben nach 51}
15: WK - links: 8 rechts: 3
16: TS - 0 8 17 45 19 60 {fast eindeutig}
17: SSK - 0 1 19 10 19 15
18: WK - links: 16 rechts: 5,9
19: TS - 0 8 43 117 19 5
20: TS H3 0 5.5 - 20 5
{21: L 49 {6, 21 und 22 schreiben nach 49 (unzuverlässig)}
{22: L 49 {6, 21 und 22 schreiben nach 49 (unzuverlässig)}
{23: FS - 0 0.5 - wird nicht ausgewertet}
24: TS - 0 8
25: L 51 {TS, 13, 14 und 25 schreiben nach 51}
{26: nicht benutzt}
{27: nicht benutzt}
28: LC 9 0 5 8
29: L 50 {29, 30 und 31 schreiben nach 50}
30: L 50 {29, 30 und 31 schreiben nach 50}
31: L 50 {29, 30 und 31 schreiben nach 50}
32: AB 20 0 5.5
33: FS - 0 0.5 - 21 45
34: FS - 0 0.5 - 22 45
35: FS - 0 0.5 - 25 45
{36: FS - 0 0.5 wird noch nicht ausgewertet}
37: TS - 0 8 38 60 31 110
38: TS - 0 8 39 55 31 60
39: TS - 0 8 49 79 31 5
40: BS - 0 8 41 90 22 145
41: BS - 0 8 42 50 22 55
42: BS - 0 8 - 22 5
43: TS H2 0 5.5 - 32 2
44: BS - 0 5.5 - 25 15
45: AB 43 0 5.5 -
46: AB 44 0 5.5 -
47: TS - 0 8 -
48: TS - 0 8 -
49: TS H1 0 5.5 - 0 2 {6, 21 und 22 schreiben nach 49}
50: AB 49 0 5.5 - {29, 30 und 31 schreiben nach 50}
51: TS - 0 5.5 43 | 24 120 | 132 0 2 {13, 14 und 25 schreiben nach 51}
52: WK - links: 16 rechts: 16