Dreh mich mal wieder beim programmieren im Kreis herum
Hab schon sämtliche Sachen ausprobiert, komm aber nicht zu meinem gewünschten Ziel?!
Folgendes möchte ich tun:
Beim Druck auf einen "Taster" möchte ich eine LED ansteuern, die erst einmal kurz blinken soll und danach ständig an sein soll! Beim erneuten drücken auf den "Taster" soll die LED zweimal aufblinken und dann wiederum ständig leuchten und dann nochmal beim drücken des "Tasters" dreimal blinken und ständig leuchten. Wird dann wieder der Taster gedrückt, soll die LED ausgehen und fängt dann wieder von vorne an.
Hab schon mit Triggern und Timern herumexperimentiert, aber dreh mich irgendwie nur im Kreis und bekomm es einfach nicht hin!? Ich glaub es ist zu warm
Kann jemand helfen?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ich hab all meine Versuche schon wieder verworfen...
Momentan sieht mein Code so aus (allerdings ohne Impulsfunktion):
VAR
  DA00     AT%QX1.1.0.0 : BOOL;
  DA01      AT%QX1.1.0.1 : BOOL;
  DA02     AT%QX1.1.0.2 : BOOL;
  LED1      AT%QX1.2.1.0 : BOOL;
  LED2      AT%QX1.2.1.1 : BOOL;
  LED3      AT%QX1.2.1.2 : BOOL;
  Taster    AT%IX1.2.1.0 : BOOL;
  Trig1: R_TRIG;
  count: INT;END_VARTrig1(CLK:=Taster);IFTrig1.QTHEN
  count :=count+1;
  IFcount=5THENcount :=0; END_IF;END_IF;IFcount=0THEN     (*Automatikbetrieb*)
  DA00 :=FALSE;
  DA01 :=FALSE;
  DA02 :=FALSE;
  LED1 :=FALSE;
  LED2 :=TRUE;
  LED3 :=FALSE;ELSIFcount=1THEN       (*Hand-Stufe1*)
  DA00 :=TRUE;
  DA01 :=FALSE;
  DA02 :=FALSE;
    LED1 :=TRUE
  LED2 :=FALSE;
  LED3 :=FALSE;ELSIFcount=2THEN      (*Hand-Stufe2*)
  DA00 :=FALSE;
  DA01 :=TRUE;
  DA02 :=FALSE;
  LED1 :=TRUE;
  LED2 :=FALSE;
  LED3 :=FALSE;ELSIFcount=3THEN      (*Hand-Stufe3*)
  DA00 :=FALSE;
  DA01 :=FALSE;
  DA02 :=TRUE;
  LED1 :=TRUE;
  LED2 :=FALSE;
  LED3 :=FALSE;ELSIFcount=4THEN    (*AUS*)
  DA00 :=FALSE;
  DA01 :=FALSE;
  DA02 :=FALSE;
  LED1 :=FALSE;
  LED2 :=FALSE;
  LED3 :=TRUE;END_IF;
In den "Hand-Stufen" soll nun die LED1 vor dem Dauerleuchten je nach Stufe kurz pulsen. Für Stufe 1 also ein kurzer Impuls und dann DauerEIN, bei Stufe 2 zwei kurze Impulse und dann DauerEIN und bei Stufe 3 soll die LED1 erst dreimal kurz pulsen und dann aktiviert werden.
Wie gesagt, hatte es schon mit Triggern und Timern etc. probiert, bin aber nie zu einem brauchbaren Ergebnis gekommen.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Dann bau dir einen Blinker, der anfängt zu blinken sobald eine Stufe neu aktiviert wurde. Dann zählst du die anzahl der Blinker, und vergleichst sie mit deiner Stufe. Sobald die identisch sind lässt du sie dauerleuchten.
MfG
Marcel
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo zusammen!
Dreh mich mal wieder beim programmieren im Kreis herum
Hab schon sämtliche Sachen ausprobiert, komm aber nicht zu meinem gewünschten Ziel?!
Folgendes möchte ich tun:
Beim Druck auf einen "Taster" möchte ich eine LED ansteuern, die erst einmal kurz blinken soll und danach ständig an sein soll! Beim erneuten drücken auf den "Taster" soll die LED zweimal aufblinken und dann wiederum ständig leuchten und dann nochmal beim drücken des "Tasters" dreimal blinken und ständig leuchten. Wird dann wieder der Taster gedrückt, soll die LED ausgehen und fängt dann wieder von vorne an.
Hab schon mit Triggern und Timern herumexperimentiert, aber dreh mich irgendwie nur im Kreis und bekomm es einfach nicht hin!? Ich glaub es ist zu warm
Kann jemand helfen?
Hast du einen Zähler (CTU) drin?
Poste mal deinen Code hier, wenn es ST oder AWL ist mittels des Code-Tags, ansonsten per Screenshot.
MfG
Marcel
Ich hab all meine Versuche schon wieder verworfen...
Momentan sieht mein Code so aus (allerdings ohne Impulsfunktion):
In den "Hand-Stufen" soll nun die LED1 vor dem Dauerleuchten je nach Stufe kurz pulsen. Für Stufe 1 also ein kurzer Impuls und dann DauerEIN, bei Stufe 2 zwei kurze Impulse und dann DauerEIN und bei Stufe 3 soll die LED1 erst dreimal kurz pulsen und dann aktiviert werden.
Wie gesagt, hatte es schon mit Triggern und Timern etc. probiert, bin aber nie zu einem brauchbaren Ergebnis gekommen.
Dann bau dir einen Blinker, der anfängt zu blinken sobald eine Stufe neu aktiviert wurde. Dann zählst du die anzahl der Blinker, und vergleichst sie mit deiner Stufe. Sobald die identisch sind lässt du sie dauerleuchten.
MfG
Marcel
Hallo Matze!
Danke für den Tipp mit dem Blinker!
Hab mir nun direkt drei Stück für die entsprechenden Stufen mit integriertem Zähler gebaut und es funktioniert sogar...
Danke nochmal!