Frage zu Eltako Funktion mit R_Trig

berti74

Level-1
Beiträge
26
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich hätte eine kurze Frage zu einer (eltako) Funktion im ST. Ich würde gerne meine Leuchten im Garten über ein Panel einzeln ein und ausschalten können, als auch alle 6 zusammen. Also einmal auf den Button drücken, und ein Licht ist an, und nochmal auf den selben und das Licht ist wieder aus. Das habe ich noch mit einem R_Trig hinbekommen. (Wenn 3e einen Impuls bekommt ist der ausgang10 an, beim nächsten Impuls ist er wieder aus. Das dann 6 mal, für 6 Lampen.

fpTOF(IN:=e3 , PT:=t#50ms , Q=>ti , ET=> );
fbR_TRIG(CLK:=ti , Q=> );
IF fbr_trig.Q THEN lampe:= NOT lampe;
END_IF
ausgang10:=lampe;
Jetzt möchte ich aber über 2 Buttons (alle aus / alle ein) auch alle 6 Leuchten gleichzeitig ein und ausschalten können. Irgendwie komme ich damit nicht klar. Kann mir das jemand eine Anfängerfreundliche Hilfe geben? Wäre super.
 
Hallo,
das mit der Eltako-Funktion kann man auch ohne Timer lösen. Aber dessen ungeachtet :
Code:
if e4 then
   Lampe1 := false ;
   Lampe2 := false ;
   '' etc.
end_if ;
if e5 then
   Lampe1 := true ;
   Lampe2 := true ;
   '' etc.
end_if ;
und für den Eltako :
Code:
if e3 and not e3_Flanke then
   Lampe := not Lampe ;
end_if ;
e3_Flanke := e3 ;

''e3_Flanke ist hierbei eine STAT-Variable ...
Gruß
Larry
 
Hmm, kann man so machen. Doch das ist leider genau das, was ich an den Anfänger-/(bzw. Normal-)Anwendern von ST so hasse: die vielen verstreuten bedingten Zuweisungen an Ausgänge. :evil:
Da kann man irgendwann nicht mehr nachvollziehen, warum und an welcher Programmstelle eine Lampe an- oder ausgegangen ist und die Vorrangregeln werden meistens auch noch unbewußt ausgehebelt. :(

Ich würde es etwa so realisieren:
Code:
Taster_alle_aus := not Taster8; 'der Aus-Taster 8 ist ein Öffner

fbR_TRIG1(CLK:=Taster1);
Lampe1 := ((Lampe1 xor fbR_TRIG1.Q) or Taster_alle_an) and not Taster_alle_aus;

fbR_TRIG2(CLK:=Taster2);
Lampe2 := ((Lampe2 xor fbR_TRIG2.Q) or Taster_alle_an) and not Taster_alle_aus;

'...

Harald
 
Hallo Harald,
das sehe ich nicht unbedingt so - aber die Geschmäcker sind ja bekanntlich verschieden ... ;)

Die von mir dargestellte Vorgehensweise ist nicht einfach nur als Vorschlag im Sinne von "so würde es gehen" zu verstehen sondern genau so (oder ähnlich würdest du es auch in meinen Scripten wiederfinden. Die Variante von dir, die einen verkappten Kontaktplan darstellt, fände ich persönlich nicht so schön - wie gesagt : Geschmackssache ...

Die Nachvollziehbarkeit von Aktionen allgemein, unabhängig von der Programmiersprache, ist ein ganz eigenes Thema für sich und dafür habe ich bislang noch keinen allgemein gültigen Lösungsansatz gefunden - oft hilft aber die Scripte nicht zu groß werden zu lassen und viel zu dokumentieren.

Gruß
Larry
 
Zurück
Oben