Codesys v2.3 Ablaufsprache - FlipFlop in Ausgangstask zurücksetzen

ogaw

Level-2
Beiträge
13
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forum,

ich möchte in einem Schritt "Fuellen" einer Schrittkette folgendes erreichen:

SFC.png

- ein Magnetventil soll öffnen, solange der Schritt aktiv ist und vor dem Magnetventil ein genügend hoher Wasserdruck ansteht
- das Magnetventil soll am Ende des Schrittes geschlossen werden

Aktion:

S2_Fuellen.png

das Schließen im Ausgangstask will mir aber nicht gelingen - egal ob mit Reset der Variablen xFuellventil_auto oder in der Variante mit SR-FlipFlop durch Setzen des Reset-Eingangs oder Rücksetzen der Instanz.
Ich möchte nicht den nachfolgende Schritt (oder auch nur die implizite Variable <StepName>._x) dazu heranziehen.

Wie kann ich den Ausgangstask - oder die Aktion selber dazu bewegen, mit der folgenden Transition das Ventil zu schließen?
 
Zuletzt bearbeitet:
- ein Magnetventil soll öffnen, solange der Schritt aktiv ist und vor dem Magnetventil ein genügend hoher Wasserdruck ansteht
Ich sehe nur Kästchen mit "GE" und "LT", was ich als GreaterEqual (>=) und LessThan (<) deute.
Was verbirgt sich hinter rDruckWasser_fuellen_ein und rDruckWasser_fuellen_aus? Das sind die Schwellwerte, bei deren Überschreitung ein- bzw. bei deren Unterschreitung ausgeschaltet werden soll?
Wird der untere Druckwert denn sicher unterschritten? Wird danach erst oder unabhängig davon zum nächsten Schritt weitergeschaltet?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich sehe nur Kästchen mit "GE" und "LT", was ich als GreaterEqual (>=) und LessThan (<) deute.
Was verbirgt sich hinter rDruckWasser_fuellen_ein und rDruckWasser_fuellen_aus? Das sind die Schwellwerte, bei deren Überschreitung ein- bzw. bei deren Unterschreitung ausgeschaltet werden soll?
Wird der untere Druckwert denn sicher unterschritten? Wird danach erst oder unabhängig davon zum nächsten Schritt weitergeschaltet?

deine Deutung ist in allen Punkten richtig.
Die vorgelagerte Pumpe schafft es nicht, den gewünschten Druck vor dem Magnetventil zu halten - also schließt das Magnetventil bei Unterschreitung vom unteren Schwellwert (rDruckWasser_fuellen_aus) und öffnet wieder wenn der Einschaltschwellwert (rDruckWasser_fuellen_ein) überschritten wird.
Die Transition in den nachfolgenden Schritt tritt dann bei Erreichen eines Niveauschalters oder nach einer Maximalzeit (falls der Niveauschalter defekt ist) ein.
xFuellventil_auto wird also bei Erreichen des Niveauschalters gesetzt sein.
Mit dem Verlassen des Schrittes "Fuellen" möchte ich (in diesem Schritt) xFuellventil_auto zurücksetzen.


Mitlerweile habe ich eine Lösung gefunden.
Es scheint, als würde nach der Ausgangsaktion noch einmal die assoziierte Aktion ausgeführt werden.
Daher setze ich in der Ausgangsaktion eine Variable xFuellventil_schliessen auf true und in der assoziierten Aktion "S2_Fuellen" ist diese Variable eine weitere Rücksetzbedingung für xFuellventil_auto.

Ausgangsaktion:
Ausgangsaktion.jpg

und Aktion "S2_Fuellen"
S2_Fuellen_2.jpg
 
Zurück
Oben