TIA Counter per Taster im 2 Sekunden Takt erhöhen

kami

Level-1
Beiträge
103
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich bastele gerade an einen FB rum, der über einen Taster im 2 Sekunden Takt einen Counter bis 100 erhöhen soll.
Anschließend soll er bei 100 stehen bleiben.

Folgender Gesamtablauf ist geplant:

Taster in der Wand wird gedrückt. Bei kurzem Druck wird nur ein BOOL invertiert.
Bei langem Druck läuft der Taster dann hoch also wenn das BOOL 1 ist. Nach loslassen und wiederholtem Langen drücken soll der Counter sich wieder im 2 Sekunden Takt auf 0 reduzieren und dann da stehen bleiben.

Das ganze wird eine PWM-Dimmer Ansteuerung fürs Wohnzimmer. Die restlichen Infos sind nur um die Programmierung besser zu verstehen.

Hat hier zu einer ein paar Beispiel oder eine Idee in FUP??

Vielen Dank.

Gruß kami
 
Ich würde einen universellen, mehrfach aufrufbaren Zählerbaustein erstellen, der nicht nur an diese eine bestimmte Funktion gebunden ist. Dabei würde ich die Zählfunktionen zunächst mit getrennten Eingängen für die beiden Richtungen umsetzen.
So in etwa:





Die Steuerung mit nur einer Taste würde ich dann außerhalb dieses FB mit einer Stromstoßfunktion umsetzen, die hier aber erst beim Loslassen der Taste toggelt.



Den vorigen Zählerbaustein dabei am Besten als Multiinstanz deklarieren. Im folgenden NW dann vielleicht noch den eigentlichen PWM-Dimmausgang.
Wenn man das öfter braucht, kann man daraus ebenfalls einen mehrfach aufrufbaren FB machen.



PS: Der Takt kam mir ziemlich langsam vor (mehr als 3 Minuten für einmal durchdimmen), daher hab' ich die Standardzeiten etwas kürzer eingestellt.
Ach, und getestet hab' ich das auch nicht.

PPS: Der Simulator hat's mittlerweile (nebst auch der Anpassung aus dem nächsten Post) für OK befunden.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Manche Dimmer funktionieren ja auch so, dass sie nach ganz hell wieder mit ganz dunkel anfangen bzw. anders herum.
Wenn man dem Zähler noch einen weiteren Eingang (#Round) gönnt und die Netzwerke NW6 - NW9 etwas anpasst, kann man auch in Runden zählen und hat somit wahlweise auch diese Funktion:

 
Hallo,
vielen Dank für die super Antworten. Das hat mir sehr weitergeholfen.

Ich habe nun aber noch ein anderes Grundlagendes Problem. Ich möchte gerne erkennen, ob der Taster nur kurz gedrückt wurde. Also unter 500ms drücken und dann wieder loslassen bedeutet nur Status der Lampe ändern und nicht rauf oder runter fahren. Eigentlich soll er sogar nur folgendes tun:
- Wenn Lampe aus dann bei jeder positiven Flanke über den Taster Lampe einschalten.
- Wenn Lampe ein und Taster für weniger als 500ms gedrückt dann Lampe ausschalten.

Hat einer hierzu noch ne Idee?

Vielen Dank.

Gruß kami
 
Den obigen Zählerbaustein würde ich folgendermaßen anpassen, um mit kurzen Tastendrücken nicht mehr zu zählen sondern zu togglen:







Und auch der aufrufende Baustein muss etwas angepasst werden, da durch das Togglen eventuell die eigentlich vorgesehene nächste Dimmrichtung korrigiert werden muss:





Für das Togglen müssen einige Variablen aus dem Temp- in den Static-Bereich wechseln. Daher also alle schon vorhandenen Variablen nochmal kontrollieren!
Mit dem Eingang #Memory kann man einstellen, ob der letzte Helligkeitswert gespeichert und wieder hergestellt werden soll oder nicht.
Das NW5 des 2. FBs wird nur benötigt, wenn der folgende PWM den BOOL-Ausgang des Zählerbausteins nicht beachten kann. Allerdings schadet es auch dann nicht, wenn der PWM den Out mit einbezieht.



Ich hätte das ja gern als Quelle exportiert und hier hoch geladen, aber das scheint in TIA bei FUP/KOP nicht mehr möglich zu sein bzw. ich bin zumindest dessen nicht fündig geworden.
:(
 
Zuletzt bearbeitet:
Hallo,

das sieht ja echt super aus. Vielen Dank. Werde ich zu hause erstmal nachbauen und testen.

Danke aber schon mal.

Melde mich dann ob alles geklappt hat.

Gruß kami
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Im NW3 des Zählerbausteins erkennt man gut, das ich die Zuweisung der Variable Toggle noch nachträglich eingefügt habe, da ich diese noch für die späteren Wertzuweisungen beim Togglen benötigte. Mit etwas Abstand würde ich dieses Netzwerk besser in 2 einfachere aufteilen (schon allein, weil ich persönlich lieber in KOP arbeite und so das dort nicht existente XOR in dem einfacheren NW4 besser ersetzbar ist).
Ziel sollte es also m.M.n. immer sein, die NWs möglichst einfach und damit einfacher lesbar zu halten:

 
Zurück
Oben