Logische Schalter für Dummies

Aus GH-Lounge

Achtung:

Wenn du diese Seite bearbeitest, bist du damit einverstanden, deinen Beitrag mit uneingeschränktem Nutzungsrecht (Public Domain) vergleichbar der Gemeinfreiheit zur Verfügung zu stellen. Wenn du das nicht möchtest oder wenn eine Textergänzung aus lizenzrechtlichen Gründen nicht möglich ist, dann verzichte an dieser Stelle bitte auf eine Bearbeitung.

Eine kurze Anleitung für logische Schalter

Ich erklär's an einer Graupner/SJ Mc-20 HoTT.
Die Mc20 HoTT besitzt Logische Schalter mit UND und ODER-Funktion.
Das sind Softwareschalter, die von Hardwareschaltern, weiteren Softwareschaltern, oder Kombinationen daraus "betätigt" werden können. Sie funktionieren so, wie's ihr Name schon sagt: UND bedeutet, ich brauche immer mindestens 2 Schalter für die Funktion. (es dürfen aber auch mehr sein) z.B. SW1 UND SW2 ergeben zusammen die Funktion des Logischen Schalters L1.
Im Prinzip einfach zwei Schalter, die hintereinander, (in Serie) geschaltet sind.
ODER bedeutet - Genau! SW1 ODER SW2 oder beide zusammen schalten mir den L1. Auch hier wieder mindestens 2 Schalter, diesmal aber nebeneinander (parallel) angeordnet.
Die Frage ist: Wozu das Ganze?
Deshalb hier erstmal eine ganz einfache Aufgabe aus der Praxis:
Ich will einen Motor EIN-schalten, der am Ausgang "6" des Empfängers hängt. Das geht ja recht einfach, ich weise im Sender bei den Gebereinstellungen dem E6 den Schalter SW9 zu. Der Motor wird jetzt mit dem SW9 EIN- und AUS geschaltet. Allerdings will ich zur Sicherheit einen zweiten Schalter haben, damit ich den Motor nicht versehentlich starten kann. Erst wenn beide Schalter auf EIN geschaltet sind, soll der Motor loslaufen. Es soll Leute geben die machen sowas mit 'nem Freien Mischer!
Aber die haben wahrscheinlich keine Logischen Schalter im Sender ;-)

Zurück zum Thema:
Als zweiten Schalter möchte ich den Sicherheitsschalter SW1 nutzen. Also SW1 und SW9 sollen zusammen den Motor einschalten. Dazu benötige ich einen Logischen Schalter, z.B. L1 mit UND-Funktion.
Ich muss also erstmal diesen L1 programmieren. Dazu gehe ich zum Menupunkt LOGISCHE SCHALTER und betätige dort in der Zeile L1, Spalte 2 die SET-Taste und weise den SW1 zu. In Spalte 3 bleibt UND bestehen. In Spalte 4 weise ich den SW9 zu. Zur Kontrolle kann ich jetzt mit den beiden Schaltern SW1 und SW9 "spielen". Wenn alles passt, ist in der Spalte 4 der Logische Schalter L1 nur geschlossen, wenn SW1 UND SW9 ebenfalls geschlossen sind.
Jetzt geht's zurück zu den Gebereinstellungen.
Hier wird in der Zeile von E6, Spalte 3, dort wo noch der SW9 drin steht 2 mal die SET-Taste gedrückt. Das Fenster GEBER-/LOG./FESTSCHA öffnet sich, hier wähle ich den L1 aus und betätige die SET-Taste. Dadurch ersetze ich den S9 durch L1. Das wars!
In der Servoanzeige kann ich's nochmal kontrollieren:
SW9 UND SW1 EIN -> Ausgang6 = +100%
Nur einer oder kein Hardwareschalter EIN -> Ausgang6 = -100%
Soweit die UND-Funktion.
Die ODER-Funktion unterschscheidet sich von der UND-Funktion dadurch, dass hier der Motor von jedem der beiden Schalter eingeschaltet wird: Egal, ob SW1 ODER SW9 oder auch beide Schalter eingeschaltet werden, der Motor läuft an. Ob das hier sinnvoll ist, sei erstmal dahingestellt. Aber es gibt sicherlich Anwendungen wo man's brauchen kann.

Aber noch mal zu der UND-Funktion:
Nur eine kleine Erweiterung des Motorschalters.
Viele Elektroflieger benutzen einen 3-Stufenschalter zur Regelung des E-Antriebs.
Stellung1 - Motor AUS / Stellung2 - Motor Halbgas / Stellung3 Motor Vollgas.
Das geht natürlich auch mit Logischen Schaltern.

Aufgabe:

Motorregelung über einen 3-Stufenschalter

Nehmen wir an, SW5/SW6 sei der 3-stufige Motorschalter und wirkt hier auf die Funktion E6.
Der Motor-Regler oder ein Testservo sind am Empfängerausgang "6" angeschlossen.
Die einfache Variante wäre folgende Zuweisung in den Gebereinstellungen:
Schalterstellung SW5/SW6 nach unten - also SW6 geschlossen -> Motor Stop. (Servoanzeige -100%)
Schalterstellung SW5/SW6 Mittelstellung - also SW5 und SW6 offen -> Halbgas. (Servoanzeige -0%)
Schalterstellung SW5/SW6 nach oben - also SW5 geschlossen -> Vollgas. (Servoanzeige +100%)
Bis hierhin sollte es einfach zu programmieren sein.(vielleicht zur Übung trotzdem vorher mal testen)
Jetzt aber soll mit SW10 der Sicherheitsschalter hinzu kommen.
Die +100% Servoweg sind erstmal kein Problem.
Dazu erstellt man den L1 als Kombination von SW5 UND SW10. Beide Schalter nach oben ergeben L1 geschlossen.
Um die -100% Servoweg zu erreichen, muss man jetzt allerdings etwas tricksen.
Ich erstelle dafür einen L2 aus SW5/6 nach unten ODER SW10 nach unten.
Der Wert in der Servoanzeige soll ja -100% sein, egal ob SW5/6 ODER SW10 nach unten geschaltet sind.
Ohne diesen Trick bekomme ich die -100% nicht hin.
In der Gebereinstellung werden die beiden Schalterstellungen des o.g. SW5/SW6 durch L1 und L2 ersetzt.
Beim Test mit angeschlossenem Servo ergibt sich folgende Funktionsweise:
Schalter SW10 nach unten stellt den Servoweg grundsätzlich auf -100%. Egal was an dem SW5/6 passiert.
Erst der Schalter SW10 nach oben gibt die Funktion des SW5/6 frei:
SW5/6 nach oben -> Servoweg +100%
SW5/6 Mittelstellung -> Servoweg 0%
SW5/6 nach unten -> Servoweg -100%
Die Prozentwerte kann man natürlich jederzeit den Erfordernissen anpassen.
z.B. Den Wert für "Halbgas" in der Mittelstellung von SW5/6 von den 0% nach oben oder unten verschieben,
oder die Endausschläge verändern.

p.s. Ich habe diese Beschreibung in der Form überarbeitet und hoffe, dass es jetzt für jeden verständlicher formuliert ist.
An den Grundfunktionen wurde nichts geändert! Will heißen, so hat's auch vorher schon funktioniert.
Parallel zum Schreiben des Artikels habe ich dies in meiner Mc28 so programmiert und mit einem angeschlossenen Servo überprüft.
Den Zusatz weiter unten habe ich allerdings noch nicht getestet. Könnte gehen - ist mir aber im Moment zu viel "Gefummel"  ;-)
Achim Mathieu 28.12.2017

===== Lösung: ===== (Beschreibung aktualisiert am 25.08.2022)

L1 = SW5 geschlossen UND SW10 offen
L2 = SW6 geschlossen ODER SW10 geschlossen

Jetzt nur noch in den Gebereinstellungen bei der Motorschalter-Funktion E6:
SW5 in L1 ändern
SW6 in L2 ändern


Ergebnis anhand der Schalterstellungen:

SW10 offen ergibt immer -100% auf Ausgang E6
SW10 geschlossen gibt die Schalterstellungen von SW5/SW6 frei:
SW5/6 Mittelstellung -> E6= 0%
SW5 geschlossen -> E6= +100%
SW6 geschlossen -> E6= -100%

Das wars auch schon wieder!


Ergänzung zur Lösung Liebe Kollegen, das habe ich (flyingdoktor) an der MC28 ausprobiert, bei mir geht das nicht. Deshalb hier meine Lösung:
An den Empfängerausgang 8 schließen wir z.B. den Motor an, deshalb wird unser Motor nun mit Geber E8 geschaltet. Dem Geber E8 ordnen wir den Schalter 11/12 zu, nämlich nach links kommt S12 und nach rechts kommt S11. Dies ist nur zum ausprobieren. Später werden wir diese beiden Spalten mit logischen Schaltern ersetzen. Der Schalter S1 soll als Motorhauptschalter fungieren. Wenn S1 aus ist (geöffnet), soll der Motor nicht anlaufen, wenn er ein ist, kann man den Motor mit S11/12 in zwei Stufen schalten. Wenn Schalter 1 an ist, dann sollen die Werte so sein, wie wir es für die Motorregelung brauchen: Schalter 11/12 nach hinten: S12 ist an (geschlossen) ergibt -100 bei Geber E8, Motor aus, Schalter 11/12 nach vorne: S11 ist an (geschlossen), ergibt 100 bei Geber E8, Motor voll an,Schalter 11/12 Mittelstellung, S11 und S12 aus (geöffnet ), ergibt 0 bei Geber E8, Motor in Halbgas.

Wenn Schalter 1 an (geschlossen) ist, dann wird die logische Verknüpfung S11 und S1 dafür sorgen, dass die Impulse des Schalters S11/S12 unverändert durchkommen. Logischer Schalter L1: S11 UND S1

Wenn Schalter 1 aus ist (geöffnet wird), dann muss in jeder Stellung des Schalters S12 das Ergebnis ein erzielt werden, Ein=geschlossen, erzeugt -100, Motor aus.

Das erreichen wir durch (etwas komliziert)
Logischer Schalter L2: S12 und S1

Logischer Schalter L3: L2i und S1 (Achtung L2invers eingeben)

In der Formelsprache wäre das L3 = NICHT(UND(NICHT(S12);S1)) Nun geben wir beim Geber E8 ein: Nach links kommt L3i (Achtung L3invers eingeben), nach rechts kommt L1

Die Logik dahinter ist schwierig, das meiste habe ich nur über ausprobieren erreicht, aber so geht es.




Halt! Was vergessen:
Die Stopuhr wegen der Akkukapazität und die Flugzeituhr um den Logger zu starten.
Das soll der SW5/6 machen, aber natürlich nur, wenn der Motor wirklich gestartet wird.
Da mache ich mir einfach noch einen L3 aus SW5/6 (von unten zur Mittelstellung geschaltet) UND SW10 nach oben. Damit starte ich im Menu "Uhren" jetzt die Stopuhr und die Flugzeituhr gleichzeitig.
Das war's aber jetzt wirklich mit der Motorschalterei bei der 20er.


Hier noch eine Erweiterung, diesmal auf der Mc32 HoTT

Aufgabe:
"Ich will einen 3-Stufenschalter folgendermaßen programmieren:"
"Schalter 6" nach oben - Servoausschlag +100%
"Schalter 6" Mittelstellung - Servoausschlag 0%
"Schalter 6" nach unten - Servoausschlag -100% aber nur, wenn ein zusätzlicher "Schalter 1" auf "EIN" steht!
Wenn das nicht der Fall ist, darf der Ausschlag -100% nicht erfolgen.
Das ganze soll auf Geber E8 wirken.
Sieht erstmal unübersichtlich aus, ist aber relativ einfach.
Erstmal wähle ich den "Haupt"-Schalter aus. Hier der 3-Stufen-Schalter "6" ganz rechts. (intern als "S5" u. "S6" bezeichnet)
Dann brauche ich noch den "Hilfs"-Schalter. Das soll der Sicherheits-Schalter "1" rechts werden. (intern als "S3" bezeichnet)
In den Gebereinstellungen weise ich dem "E8" nun zuerst den "S5" zu. ("Schalter 6" nach oben)
Hier erscheinen jetzt 3 weitere ---Zeichen im Zuweisungsfeld. Nochmal "Enter" drücken und hier den "S6" zuweisen.("Schalter 6" nach unten)
Zur Kontrolle in der Servoanzeige:
"Schalter 6" nach oben -> +100%
"Schalter 6" Mittelstellung -> 0%
"Schalter 6" nach unten -> -100%

Jetzt erstelle ich den Logischen Schalter "L1".
Der "Schalter 6" muss dazu unbedingt in Mittelstellung stehen.
Menupunkt "Logische Schalter" anspringen.
In Zeile 1, Spalte 2 bei den "---" ENTER drücken und den "Schalter 6" nach unten ziehen.
Hier wird jetzt "6I" angezeigt.
In Zeile 1 Spalte 4 bei den "---" ENTER drücken und den "Schalter 1" nach unten ziehen.
Hier wird jetzt "3I" angezeigt.
In Zeile 1 Spalte 5 wird jetzt "L1I" angezeigt.
Funktionskontrolle:
Nur wenn "Schalter 6" UND "Schalter 1" nach unten gezogen sind, ist L1="I". Ist nur einer davon offen, Ist L1 offen.
Die klassische UND-Schaltung eben.
Jetzt ersetze ich in der Gebereinstellung E8 noch den vorher zum Testen zugewiesenen "S6" durch den oben erstellten "L1". Feddich!
Auch hier nochmal Funktionskontrolle:
Nur wenn "Schalter 6" UND "Schalter 1" nach unten gezogen sind, ist L1 geschaltet.

Zum Abschluss noch die Servoanzeige überprüfen:
"Schalter 6" Mittelstellung bewirkt 0% Servoausschlag.
"Schalter 6" nach oben bewirkt +100% Servoausschlag.
"Schalter 6" nach unten bewirkt -100% Servoausschlag - Aber nur, wenn auch der Sicherheitsschalter "Schalter 1" nach unten geschaltet ist!
Sonst ist nix mit "-100%"!

Das ganze ist bei der 32er etwas verwirrend, weil die Schalter am Gehäuse zweifach durchnummeriert sind.
Es gibt also 2 mal "Schalter 1...8". Einmal links und einmal rechts.
Intern haben sie aber eindeutige Namen: "S1.....16"
War also doch ein Bisschen mehr als ursprünglich angenommen.
Und dabei ist das erst der Anfang. Tatsächlich kann man mit den Logischen Schaltern sogar über die Zeitverzögerung lustige Flip-Flops basteln.

Als kleines Schmankerl hier noch eine mdl-Datei für die Mc20, in der ich eine XOR (Exclusiv-ODER)-Funktion programmiert habe. Hier schalten SW9 und SW13 den L3 nur dann ein, wenn beide in unterschiedlichen Stellungen stehen. Also SW9 nach oben und SW13 nach unten oder umgekehrt. Zeigen beide in die gleiche Richtung, ist L3 AUS-geschaltet. Man sieht, dass man nur mit UND und ODER und ein paar gar nicht so vertrackten Schalterkombinationen auch mal was ungewöhnliches programmieren kann.
Datei:AXOR.mdl
Wer's genauer wissen will, hier gibt's die erweiterte Erklärung mit Grafiken:
Hier klicken!



zuletzt bearbeitet: 28.12.2017