Fahrstuhlsteuerung

Simulation mit Logisim

Problemstellung:

In einem Haus mit 4 Etagen (Erdgeschoss, 1. Stock, 2. Stock, 3. Stock) verkehrt ein Fahrstuhl. Es soll eine Steuerschaltung entwickelt und aufgebaut werden.
(Die Schaltung soll an einem Fahrstuhlmodell z.B. aus Fischer-Technik erprobt werden.)

Die Aufgabenstellung ist ausgezeichnet geeignet, verschiedene Methoden bei der Entwicklung einer Schaltung zu erfahren:
  * Entwurf und grafische Darstellung per Hand
  * Simulation (z.B. mit LOCAD)
  * Aufbau mit schulgeeigneten Bausteinen (z.B. Logitron)
  * Aufbau mit ICs
Die Arbeit in Gruppen bietet sich beim Aufbau der Schaltung, vielleicht auch schon bei einem selbständigen Entwurf an. Das Niveau einzelner Arbeitsgruppen kann bei der Wahl des Teilproblems und der Wahl der Arbeitsmittels berücksichtigt werden.
Hier wird ein Haus mit 4 Etagen betrachtet; die Komplexität der Schaltung verringert sich erheblich, wenn man sich auf 3 Etagen beschränkt.

Lösung

In jeder Etage befindet sich eine Taste, über die der Fahrstuhl angefordert wird. (Dazu parallel geschaltet können im Fahrstuhl ebenfalls 4 Tasten angebracht sein.) Durch Drücken einer Taste wird ein Speicher (s0,s1,s2,s3) gesetzt. (Warum ist das erforderlich?) Der Zustand des Speichers wird durch eine Leuchtdiode angezeigt.

Der Taster wird so geschaltet, dass sein Ausgang beim Drücken "1" liefert (5V) und sonst "0" (0V).

Der Fahrstuhl setzt sich in Richtung der Anforderung in Bewegung.

Problem 1: Wie wird die Position des Fahrstuhls ermittelt?

Lösung: In jeder Etage befindet sich ein Kontakt (Taster), der vom Fahrstuhl geschlossen wird.

Problem 2: Wenn der Fahrstuhl eine Etage verlässt, wird zugleich der Kontakt gelöst, und die Position des Fahrstuhls ist nicht mehr erkennbar.

Lösung: In jeder Etage wird bei Kontakt (Signal 1) ein Speicher gesetzt, dessen Zustand auch nach dem Verlassen der Etage erhalten bleibt.

Erst beim Erreichen der nächsten Etage (darüber oder darunter) wird dieser Speicher wieder zurückgesetzt. Zum Beispiel wird der Speicher für die 1. Etage zurückgesetzt, wenn der Fahrstuhl die 0. oder die 2. Etage erreicht und einen Kontakt schließt.

Kleines Problem: Wenn der Fahrstuhl bei Abwärtsfahrt die 2. Etage erreicht, wird der dortige Speicher gesetzt, und in dieser Schaltung bleibt er gesetzt, wenn der Fahrstuhl diese Etage wieder verläßt. (Ein "1" gesetzter Speicher zeigt also an, wo der Fahrstuhl steht oder zuletzt stand.)
Über den gesetzten Ausgang von Speicher 2 soll - so ist es geplant - der Speicher in Etage 1 zurückgesetzt werden. Dieser Reset-Eingang hat Vorrang, so dass auch wenn der Fahrstuhl diese Etage erreicht, Speicher 1 bei "0" verbleibt. So kann er wiederum den Speicher 2 nicht zurücksetzen. Sackgasse!

Das Problem kann dadurch gelöst werden, das Speicher 1 nur dann zurückgesetzt wird, wenn die Etage 2 bei Aufwärtsfahrt erreicht wird. Und entsprechend Etage 0 bei Abwärtsfahrt.

Problem 3: Wie wird die Bewegungsrichtung ermittelt?

DWenn sich der Fahrstuhl im 1. Stock befindet und eine Anforderung im 3. Stock erfolgt, muss er aufwärts fahren. Wennn ... Das erfordert eine Tabelle.

ist         soll
i3 i2 i1 i0  s3 s2 s1 s0  |  auf ab
 0  0  0  1   0  0  0  1  |   0   0
 0  0  0  1   0  0  1  0  |   1   0
 0  0  0  1   0  1  0  0  |   1   0
 0  0  0  1   1  0  0  0  |   1   0
 0  0  1  0   0  0  0  1  |   0   1
 0  0  1  0   0  0  1  0  |   0   0
 0  0  1  0   0  1  0  0  |   1   0
 0  0  1  0   1  0  0  0  |   1   0
 0  1  0  0   0  0  0  1  |   0   1
 0  1  0  0   0  0  1  0  |   0   1
 0  1  0  0   0  1  0  0  |   0   0
 0  1  0  0   1  0  0  0  |   1   0
 1  0  0  0   0  0  0  1  |   0   1
 1  0  0  0   0  0  1  0  |   0   1
 1  0  0  0   0  1  0  0  |   0   1
 1  0  0  0   1  0  0  0  |   0   0

auf = i0∧s1 ∨ i0∧s2 ∨ i0∧s3 ∨ i1∧s2 ∨ i1∧s3 &or i2∧s3
= i0∧(s1∨s2∨s3) ∨ i1∧(s2∨s3) ∨ i2∧s3

Der Term s2∨s3 muss nur einmal aufgebaut werden.

Analog findet sich die Schaltung für ab.

Weil der Fahrstuhl zeitgleich auf mehreren Etagen angefordert werden kann, sind alle vier Kombinationen der Ausgänge "oben" und "unten" möglich:
0 0 :   Keine Anforderung; der Fahrstuhl steht.
0 1 :   Anforderung unten; der Fahrstuhl fährt abwärts.
1 0 :   Anforderung oben; der Fahrstuhl fährt aufwärts.
1 1 :   Anforderung oben und unten. Was nun?

Problem: Was tun, wenn der Fahrstuhl oben und unten erwartet wird?

Möglichkeit 1: Die Ausgänge werden an ein SR-Flipflop geführt, das Ergebnis ist zufällig.
Möglichkeit 2: "auf" hat Vorrang; nach unten kann man zu Fuß gehen.
Möglichkeit 3: Der Fahrstuhl behält seine Bewegungsrichtung bei. Wenn er zuletzt abwärts gefahren ist, soll er weiter abwärts fahren. Andernfalls wenn er zuletzt aufwärts gefahren ist oder still stand - soll er aufwärts fahren.

Wir entscheiden uns für die 3. Möglichkeit: Der Fahrstuhl behält seine Bewegungsrichtung bei.

soll
auf
soll
ab
fährt
ab
fahre
auf
fahre
ab
00000
00100
01001
01101
10010
10110
11010
11101

fährt ab bedeutet: steht nicht still oder er fährt gerade aufwärts. Hier wird also festgelegt, dass im Fall des Stillstehens und gleichzeitiger (!) Anforderung auf und ab der Fahrstuhl aufwärts fährt (fahre auf).

fahre_auf = (auf ∧ ab) ∨ (auf ∧ ab ∧ fährt_ab)

Dieser Term kann vereinfacht werden.

fahre_auf = (auf ∧ ab) ∨ (auf ∧ ab ∧ fährt_ab)   | ausklammern
= auf ∧ (ab ∨ (ab ∧ fährt_ab))   | distributivgesetz anwenden
= auf ∧ ((ab ∨ ab) ∧ (abfährt_ab))   | vereinfachen
= auf ∧ (abfährt_ab)   | mögliche weitere Umformung
= auf ∧ (ab ∧ fährt_ab)

Umgekehrt soll der Fahrstuhl eine Aufwärtsfahrt zunächst beibehalten, wenn eine Anforderung weiter unten erfolgt.

Schaltplan siehe Logisim Demo, download unter Simulation Logisim.

Problem: Wie wird der Motor angeschlossen?

Lösung: Da die Ausgänge "fahre_auf" und "fahre_ab" 0V bzw. 5V abgeben, könnte man vermuten, dass ich ein Motor direkt anschließen lässt. Leider geht das nicht, weil die ICs nicht genügend Stromstärke liefern bzw. bei zu großer Stromstärke zerstört werden. Wir werden den Motor-Stromkreis unabhängig von der Steuerschaltung aufbauen und den Motor mit Hilfe zweier Relais schalten. Da auch die Spulen der Relais die empfindlichen ICs schädigen könnten, wird jeweils ein Transistor vorgeschaltet, so dass ein IC nur den Steuerstrom eines Transistors liefern muss.

Beim Einschalten des Relais baut seine Spule ein Magnetfeld auf, das dann beim Ausschalten zusammenfällt. Dabei wird ein Stromstoß (entgegen dem Einschaltstrom) induziert, der seinerseits Schäden anrichten kann. Um das zu verhindern kann dieser Strom über eine Diode abfließen.