Hi,
wie das immer so ist, wenn man ein neues Spielzeug hat: Ich habe rumprobiert und bei dem Modul Sachen festgestellt, die zu kritischen Fragen meinerseits im Forum geführt haben. Es gibt ja selten Threads, die die positiven Seiten hervorheben, aber ich finde, das MDT Logikmodul ist es Wert, einen solchen Thread zu haben.
Ich wollte in loser Folge hier Beispiele Posten, die eher nicht triviale Möglichkeiten der Funktionen zeigen und fange mal mit der Szenensteuerung / Steuertabelle an - eine der Funktionen, die ich wirklich super finde und die mich zum Kauf verleitet hat.
Beispiel hier: Garagentorsteuerung über eine "Toggle"-GA. Wenn also das Tor zu ist und eine 1 empfangen wird, geht das Tor auf. Wenn es auf ist und eine 1 empfangen wird, geht es zu. Wenn eine 1 empfangen wird und das Tor fährt, wird es gestoppt.
Jeder, der das jetzt liest, wird sagen, dass man das doch einfach mit jedem Taster über 1-Tasten-Bedienung hin bekommt. Das Problem da ist aber, dass so ein Garagentor manchmal einfach nicht fahren will, weil es blockiert ist oder eine Katze durch die Lichtschranke läuft oder oder oder... Und mich hat es schon immer gestört, dass ich dann 2x drücken muss, wenn irgendein "Störfall" das Fahren verhindert hat. Ziel ist es also, die Fahrtrichtung, in die man fahren will, erst beim Tastendruck zu ermitteln und zu senden. Mit einfachen Logikgattern gar nicht so einfach zu realisieren, mit der Steuertabelle ein Klacks...
Voraussetzung beim Garagentor:
Die Wertetabelle sieht dann so aus
GarageToggle1.PNG :
GarageToggle2.PNG
Was passiert hier? Erstmal definiert man die 3 Eingänge "Taster" (der immer eine 1 liefert), "Tor unten" und "Motor fährt", die man später mit den entsprechenden GA verbindet.
Und dann schreibt man einfach die Bedingungen hin, bei denen was passieren soll.
Bedingung 1: 110xxxx sagt, dass Taster = 1 UND Tor unten = 1 UND Motor fährt = 0 sein muss (oder natürlichsprachlich: Wenn die Taste gedrückt wurde und das Tor unten ist und es nicht fährt), dann sende den Wert 0 (was Tor hochfahren bedeutet).
Bedingung 2: 100xxxx sagt, dass Taster = 1 UND Tor unten = 0 UND Motor fährt = 0 sein muss (oder natürlichsprachlich: Wenn die Taste gedrückt wurde und das Tor nicht unten ist und es nicht fährt), dann sende den Wert 1 (was Tor runterfahren bedeutet).
Das war's! Ich bin immer noch begeistert, wie simpel das ist! Im Gegensatz zu normalen Logiken muss man sich nicht darum kümmern, was passiert, wenn das Tor fährt seinen Zustand ändert (also es losfährt) oder Tor unten von 1 auf 0 geht (also das Tor nicht mehr unten ist). Keine Seiteneffekte, keine komplizierten UND/ODER/NICHT-Ketten.
Da man aber möchte, dass mit jedem Tastendruck (also jeder 1 auf dem Taster-Eingang) auch wirklich die Steuertabelle ausgewertet wird, muss man noch bei Sendebedingung auf "bei Eingangstelegramm" und "Sende bei Eingangstelegramm auf" "Eingang 1" setzen.
Als Abfallprodukt bekommt man noch die Stop-Funktion quasi umsonst. Aber da das nicht am Logikmodul liegt, gehört das nicht wirklich hierher...
Jetzt noch bei den Kommunikationsobjekten die GA verbinden und das wars!
Vielleicht hilft es jemanden, der auch verschiedene Sachen über eine GA steuern will...
Gruß, Waldemar
wie das immer so ist, wenn man ein neues Spielzeug hat: Ich habe rumprobiert und bei dem Modul Sachen festgestellt, die zu kritischen Fragen meinerseits im Forum geführt haben. Es gibt ja selten Threads, die die positiven Seiten hervorheben, aber ich finde, das MDT Logikmodul ist es Wert, einen solchen Thread zu haben.
Ich wollte in loser Folge hier Beispiele Posten, die eher nicht triviale Möglichkeiten der Funktionen zeigen und fange mal mit der Szenensteuerung / Steuertabelle an - eine der Funktionen, die ich wirklich super finde und die mich zum Kauf verleitet hat.
Beispiel hier: Garagentorsteuerung über eine "Toggle"-GA. Wenn also das Tor zu ist und eine 1 empfangen wird, geht das Tor auf. Wenn es auf ist und eine 1 empfangen wird, geht es zu. Wenn eine 1 empfangen wird und das Tor fährt, wird es gestoppt.
Jeder, der das jetzt liest, wird sagen, dass man das doch einfach mit jedem Taster über 1-Tasten-Bedienung hin bekommt. Das Problem da ist aber, dass so ein Garagentor manchmal einfach nicht fahren will, weil es blockiert ist oder eine Katze durch die Lichtschranke läuft oder oder oder... Und mich hat es schon immer gestört, dass ich dann 2x drücken muss, wenn irgendein "Störfall" das Fahren verhindert hat. Ziel ist es also, die Fahrtrichtung, in die man fahren will, erst beim Tastendruck zu ermitteln und zu senden. Mit einfachen Logikgattern gar nicht so einfach zu realisieren, mit der Steuertabelle ein Klacks...
Voraussetzung beim Garagentor:
- KO zum Fahren: 0-hoch, 1-runter.
- KO zum Stoppen: 0 oder 1 stoppt.
- KO mit dem Motorstatus: 0-steht, 1-fährt.
- KO mit dem Torstatus "Ist zu": 0-offen, 1-ist zu.
Die Wertetabelle sieht dann so aus
GarageToggle1.PNG :
GarageToggle2.PNG
Was passiert hier? Erstmal definiert man die 3 Eingänge "Taster" (der immer eine 1 liefert), "Tor unten" und "Motor fährt", die man später mit den entsprechenden GA verbindet.
Und dann schreibt man einfach die Bedingungen hin, bei denen was passieren soll.
Bedingung 1: 110xxxx sagt, dass Taster = 1 UND Tor unten = 1 UND Motor fährt = 0 sein muss (oder natürlichsprachlich: Wenn die Taste gedrückt wurde und das Tor unten ist und es nicht fährt), dann sende den Wert 0 (was Tor hochfahren bedeutet).
Bedingung 2: 100xxxx sagt, dass Taster = 1 UND Tor unten = 0 UND Motor fährt = 0 sein muss (oder natürlichsprachlich: Wenn die Taste gedrückt wurde und das Tor nicht unten ist und es nicht fährt), dann sende den Wert 1 (was Tor runterfahren bedeutet).
Das war's! Ich bin immer noch begeistert, wie simpel das ist! Im Gegensatz zu normalen Logiken muss man sich nicht darum kümmern, was passiert, wenn das Tor fährt seinen Zustand ändert (also es losfährt) oder Tor unten von 1 auf 0 geht (also das Tor nicht mehr unten ist). Keine Seiteneffekte, keine komplizierten UND/ODER/NICHT-Ketten.
Da man aber möchte, dass mit jedem Tastendruck (also jeder 1 auf dem Taster-Eingang) auch wirklich die Steuertabelle ausgewertet wird, muss man noch bei Sendebedingung auf "bei Eingangstelegramm" und "Sende bei Eingangstelegramm auf" "Eingang 1" setzen.
Als Abfallprodukt bekommt man noch die Stop-Funktion quasi umsonst. Aber da das nicht am Logikmodul liegt, gehört das nicht wirklich hierher...
Jetzt noch bei den Kommunikationsobjekten die GA verbinden und das wars!
Vielleicht hilft es jemanden, der auch verschiedene Sachen über eine GA steuern will...
Gruß, Waldemar
Kommentar