erst einmal -> Was ist dein Problem, das hast du nirgends geschrieben.
Ich rate mal das die Pumpenumschaltung nicht geht.
Ich würde es so machen.
Eine Ausschaltverzögerung die du durch eine Negative Flanke ihrer selbst wieder aktivierst. Dafür brauchst du natürlich beim ersten Starten der SPS einen "Anschubser", einen Init-Merker. Den musst du dir selbst basteln.
Jede negative Flanke gibst du auf einen Stromstossrelaisbaustein (gibt es bei Oscat) und somit wechselt es immer ein Bit von 0 auf 1 usw... bei 0 ist Pumpe 1 aktiv, bei 1 Pumpe 2.
MfG
Marcel
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Matze001 hat geschrieben:
Hallo,
erst einmal -> Was ist dein Problem, das hast du nirgends geschrieben.
Ich rate mal das die Pumpenumschaltung nicht geht.
Ich würde es so machen.
Eine Ausschaltverzögerung die du durch eine Negative Flanke ihrer selbst wieder aktivierst. Dafür brauchst du natürlich beim ersten Starten der SPS einen "Anschubser", einen Init-Merker. Den musst du dir selbst basteln.
Jede negative Flanke gibst du auf einen Stromstossrelaisbaustein (gibt es bei Oscat) und somit wechselt es immer ein Bit von 0 auf 1 usw... bei 0 ist Pumpe 1 aktiv, bei 1 Pumpe 2.
MfG
Marcel
Wie kann ich dein Vorschlag in Strukturierten Text realesieren???
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Beschreibung:
Das ist die Deklaration
PROGRAM PLC_PRG
VAR
END_VAR
VAR_INPUT
END_VAR
VAR_IN_OUT
END_VAR
VAR_OUTPUT
END_VAR
Das ist das Programm
E1:= A3; ( Nivou 1)
E2:= A4; ( Nivou 2)
A1:=E4 AND NOT E3 AND E1 AND i<5 OR E2;
( Pumpe1ist an wenn Auto Schalter und Schwimmerschalter1 und die Zahl kleiner)
(als 5 ist oder wenn es auf Autoschalter und Schwimmerschalter2 eingeschaltet ist)
A2:=E4 AND NOT E3 AND E1 AND i>5 OR E2;
( Pumpe 2 ist an wenn Auto Schalter und Schwimmerschalter 1 und die Zahl kleiner)
(als 5 ist oder wenn es auf Autoschalter und Schwimmerschalter2 eingeschaltet ist)
A1:=E3 AND E5 AND NOT E4;
( Pumpe 1 ist aktiv wenn Hand und Schalter für Pumpe 1 eingeschaltet ist)
A2:=E3 AND E6 AND NOT E4;
( Pumpe 2 ist aktiv wenn Hand und Schalter für Pumpe 1 eingeschaltet ist)
IF A1 AND E1
( Wenn Pumpe1 und Schwimmerschalter aktiv sind)
THEN (Dann)
FOR ( Für ist in INT)
i:=0 ( i Veriable ist gleich Null)
TO 5 ( Zählt bis 5)
BY 1 ( in einer Schritten)
DO ( mach)
i:=i+1; ( i weiter zaählen)
END_FOR; ( FÃœR endet)
END_IF; (Ende Wenn)
IF A2 AND E1 ( Wenn Pumpe1 und Schwimmerschalter aktiv sind)
THEN (Dann)
FOR ( Für ist in INT)
i:=5 ( Zaehler ist gleich fünf)
TO 0
BY 1
DO ( Zählt bis 5)
i:=i-1; ( in einer Schritten)
END_FOR; ( FÃœR endet)
END_IF; (Ende Wenn)
Ich wollte eine Pumpenvertauschung durch den For befehl realisieren.
FOR ( Für ist in INT)
i:=5 ( Zaehler ist gleich fünf)
TO 0
BY 1
DO ( Zählt bis 5)
i:=i-1; ( in einer Schritten)
END_FOR; ( FÃœR endet)
Das die Pumpe1 dann aktiv ist wenn in For Befehl von 0 bis 5 gezählt wird und dann
Kommt die Pumpenvertauschung und es wird von 5 bis 0 gezählt und in diesem Zeitfenster
Ist Pumpe2 aktiv.
Hallo,
erst einmal -> Was ist dein Problem, das hast du nirgends geschrieben.
Ich rate mal das die Pumpenumschaltung nicht geht.
Ich würde es so machen.
Eine Ausschaltverzögerung die du durch eine Negative Flanke ihrer selbst wieder aktivierst. Dafür brauchst du natürlich beim ersten Starten der SPS einen "Anschubser", einen Init-Merker. Den musst du dir selbst basteln.
Jede negative Flanke gibst du auf einen Stromstossrelaisbaustein (gibt es bei Oscat) und somit wechselt es immer ein Bit von 0 auf 1 usw... bei 0 ist Pumpe 1 aktiv, bei 1 Pumpe 2.
MfG
Marcel
Und wo ist jetzt das Problem oder der Fehler oder Deine Frage. Da einzige was ich sehe Du kannst die Schleife selber "runter" zählen lassen:
Michael
Wie kann ich dein Vorschlag in Strukturierten Text realesieren???