TIA TIA SCL Ausgänge nacheinander einschalten u ausschalten

marsupilamis79

Level-1
Beiträge
9
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich benötige in SCL folgende Funktion.

Über einen Start Taster möchte ich automatisch Ausgänge nacheinander einschalten. Sind alle Ausgänge einmal eingeschaltet worden soll das ganze wieder von vorne starten.

Bsp:
E0.0 Startschalter
A0.1 Ausgang1
A0.2 Ausgang2
A0.3 Ausgang3

Betätige ich nun E0.0 wird A0.1 für 1Sekunde gesetzt und danach wieder ausgeschaltet.

Danach wird A0.2 für 1 Sekunde gesetzt und wieder ausgeschaltet.

Danach wird A0.3 für 1 Sekunde gesetzt und wieder ausgeschaltet.


Danach soll sich das ganze wiederholen bis E0.0 auf low gesetzt wird.


Habe das ganze mit Timern versucht bringe es aber irgendwie nicht zum laufen.

grüße...
 
Start aktiviert einen TON, der sich bei Ablauf selber neu startet.
Ablauf Timer lässt einen Zähler weiter schalten.
Start + Zählerstand = gewünschte Lampe.

Rücksetzen Start = Rücksetzen Zähler?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du könntest eine Schrittkette nehmen, z.B. mit Int-Variable (oder Zähler) für Schrittnummer:
- E0.0 setzt Schrittkette auf 1
- Schrittkette <> 0 ist Freigabe für Pulsfolgeerzeugung mit einem Timer (TON oder TOF), der Timer startet sich selber wieder neu (Q auf Hilfvariable zwischenspeichern und auf den Timer-Eingang rückführen)
- wenn Timer abgelaufen dann Schritt := Schritt + 1
- wenn Schritt > 3 dann Schritt := 0
- A0.1 := Schritt = 1;
- A0.2 := Schritt = 2;
- A0.3 := Schritt = 3;

Harald
 
Die Zählerlösung geht relativ einfach

Code:
// Reset
IF NOT #START OR #Cnt > 2 THEN
    #Cnt := 0;
END_IF;


// Impuls-Timer
#Out_TP(IN := #START AND NOT #PulsOut,
        PT := T#1s,
        Q => #PulsOut,
        ET => #TimeOut);


// Negativ Flanke
#CountUp_FN(CLK := #PulsOut);


// Hochzählen
IF #CountUp_FN.Q THEN
    #Cnt += 1;
END_IF;


// Ausgänge
#OUT1 := #START AND #Cnt = 0;
#OUT2 := #START AND #Cnt = 1;
#OUT3 := #START AND #Cnt = 2;
 
Zurück
Oben