Verständnisfrage zum Servo

Antworten
Benutzeravatar
PeterVT11 Verified
MLL-TEAM
MLL-TEAM
Beiträge: 196
Registriert: Mi 9. Apr 2025, 21:21
Hat sich bedankt: 403 mal
Wurde bedankt: 461 mal

Verständnisfrage zum Servo

#1

Beitrag von PeterVT11 Verified »

Hallo,

ich bin gerade dran, einen Servo anzusteuern. Prinzipiell geht das auch, aber ich bin bei der Such auf eien beitrag von @GerdR im Stummi-Forum gestossen und war verblüfft.
2025-09-14 13_01_41-Prog_Generator_MobaLedLib.xlsm - Excel.png
2025-09-14 13_01_41-Prog_Generator_MobaLedLib.xlsm - Excel.png (11.58 KiB) 157 mal betrachtet
Es wird mit dem Treppenhaus-Schalter (einer Art Flipflop auf Zeit) ein Servo bewegt. Damit er nach der Zeit wieder in die Ruhestellung geht, ist die Zeile:

Logic(floppy, NOT flippi)

notwendig. Die Variable "floppy" wird nirgends verwendet. Doch ohne diese Zeile geht der Servo nach der Zeit nicht mehr in Ruhestellung.

Kann mir jemand sagen, warum das so ist? Ich hätte eigentlich gedacht, dass der Servo nach dem der Treppenhaus-Schalter abgelaufen ist, der Servo zurück geht.

Vielen Dank.

Viele Grüße Peter

Märklin C-Gleis, Märklin CS3, WinDigipet, Analog und Digital
Eckhart Verified
Gaslampenwärter
Beiträge: 193
Registriert: Di 15. Apr 2025, 17:09
Wohnort: bei Berlin
Hat sich bedankt: 172 mal
Wurde bedankt: 198 mal

Re: Verständnisfrage zum Servo

#2

Beitrag von Eckhart Verified »

Hallo Peter!

Das liegt an dem Unterschied von Sigular und Plural! ;) Du hast nur EINEN Button, aber ein Servo mit ZWEI Positionen!

EIN Button ist aber bei der MLL analog dazu zu sehen, wie entweder der DCC Aspect "rot", ODER der DCC Aspect "grün", aber nicht wie beide, denn das wären ja ZWEI Buttons! Auch bei DCC bedeutet die Aufhebung von "rot" (oder von "grün") nur das Abschalten von z.B. der einen Magnetspule eines Weichenantriebs, aber NICHT auch, dass der andere Aspect ausgelöst wird!

Genauso unterscheidet die MLL in ihren "InCh" zwischen Mono-Auslösungen (und deren Aufhebung) und Dualen-Auslösungen!

Ein Servo (mit zwei Positionen) hat ja die Position A und die Position B. Der Button löst aber nur das Fahren in Position A aus und nach dem Ablauf der Zeit wird das Fahren in Position A deaktivert (wie bei einem Magnetantrieb). Das bedeutet aber NICHT, dass dann automatisch der Befehl zum Fahren in Position B ausgelöst wird!

Dafür braucht man den Befehl "logic". "flippy" wird invertiert und dann via Set_Input als inverser Befehl (und nicht nur als Aufhebung des vorherigen Befehls!) in den "InCh" geschrieben. Dadurch beginnt die Fahrt des Servos zu Position B.

Gruß, Eckhart

Benutzeravatar
PeterVT11 Verified
MLL-TEAM
MLL-TEAM
Beiträge: 196
Registriert: Mi 9. Apr 2025, 21:21
Hat sich bedankt: 403 mal
Wurde bedankt: 461 mal

Re: Verständnisfrage zum Servo

#3

Beitrag von PeterVT11 Verified »

Hallo Eckhart,

Danke für Deine Erklärung. Wenn die Variable flippi1 und flippi2 geheißen hätte, wäre es mir klar gewesen, aber flippi und floppy hab ich so nicht zusammen bekommen. Ich vermute, das funktioniert auch nur in diesem begrenzten Umfeld, wenn es keine weiteren Variablen gibt.

Viele Grüße Peter

Märklin C-Gleis, Märklin CS3, WinDigipet, Analog und Digital
Eckhart Verified
Gaslampenwärter
Beiträge: 193
Registriert: Di 15. Apr 2025, 17:09
Wohnort: bei Berlin
Hat sich bedankt: 172 mal
Wurde bedankt: 198 mal

Re: Verständnisfrage zum Servo

#4

Beitrag von Eckhart Verified »

Hallo Peter!
PeterVT11 hat geschrieben: So 14. Sep 2025, 19:08
Hallo Eckhart,

Danke für Deine Erklärung. Wenn die Variable flippi1 und flippi2 geheißen hätte, wäre es mir klar gewesen, aber flippi und floppy hab ich so nicht zusammen bekommen. Ich vermute, das funktioniert auch nur in diesem begrenzten Umfeld, wenn es keine weiteren Variablen gibt.
"floppy" ist gar nicht relevant, sondern es geht nur darum, "flippi" zu negieren! Warum man "floppy überhaupt braucht, ist mir auch nicht so klar. Ich vermute, dass ursprünglich der Macro "logic" nur darauf ausgelegt war, mehrere Variablen miteinander zu verknüpfen. "NOT flippi" alleine anzugeben scheitert vermutlich im Excel VBA. Dafür spricht auch die ursprüngliche Kommentierung von logic.c in der die Negierung nachgerüstet wurde:

Revision History:
~~~~~~~~~~~~~~~~~
05.09.18: - Started
16.09.18: - Added the ENABLE/DISABLE functionality. If the first argument is ENABLE/DISABLE the
following number defines an input which enables/disables the output.
Example: ENABLE 17, 12 AND 13
DISABLE 17, 12 AND 13
DISABLE is equal to: ENABLE NOT


Ich denke, es handelt sich hier um eine "off label" Verwendung der Logikfunktion.

Gruß, Eckhart

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag

Zurück zu „WS2811 - Dreifach-Stepperplatine mit Relais (551)“