vielen Dank für ihre Antwort. Jetzt habe ich noch eine Frage?
Ich habe mehrere tasten die ein Motor oder licht ein und ausschalten können, sollte diese Funktion über Schrittschaltung programmiert werden, oder gibt es eine andere Lösung.
Mit freundlichen grüße.
Lolo68
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Also wenn Du einen Ausgang (der z.B. Eine Lampe über einen Impulsschalter ein- und ausschaltet) alternierend steuern willst, könntest Du es mal so, mit einem FB probieren.
(Deklarationsteil)
FUNCTION_BLOCK Alternate
VAR_INPUT
CLOCK:BOOL;
END_VAR
VAR_OUTPUT
OUT:BOOL;
END_VAR
VAR
FLANKE:BOOL;
END_VAR
(Codeteil)
(Baustein schaltet den Ausgang bei einer steigenden Flanke an CLOCK, alternierend Ein oder Aus)
IF (CLOCK = TRUE AND FLANKE = FALSE) THEN (Steigende Flanke an CLOCK erkennen)
OUT := NOT OUT; (Ausgang invertieren)
END_IF
FLANKE := CLOCK; (Flankenmerker zurücksetzen)
Ungetestet! Sollte aber funktionieren.
Mit freundlichen Grüssen! Pitsch
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Habe zu Schrittschaltung eine geniale Lösung gefunden.
U E 1.0
UN M 1.0
S A 1.0
U E 1.0
U M 1.0
R A 1.0
UN E 1.0
U A 1.0
S M 1.0
UN E 1.0
UN A 1.0
R M 1.0
Diese Lösung braucht keine Flankenauswertung und kein Entpellen.
Sie ist sehr gut nachvollziehbar und auch in FUP oder KOP gut zu realisieren.
Sie stammt aus dem SPS Forum und ursprünglich aus dem Buch Automatisieren mit S5-115U.
Diese Funktion nennt sich auch Binärutersetzer oder auch Frequenzteiler.
Wenn mehrere Schalter dazugeschaltet werden einfach ein Oder vor E 0.1 gesetzt.
Gruss und viel Erfolg
Kaspar
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo
Ich bin neu hier, Anfänger mit codesys, aber fasziniert vom programmieren.
Könnte mir jemand klären wie ich ein Schrittschalter in ST programmieren kann.
Im Voraus besten dank.
Hallo,
eine - hoffentlich brauchbare - "Kochbuchanleitung" für dieses Thema findest Du unter http://www.geisler-controls.de/Downloads/downloads.html#Zustandsgraphen. Ein bisschen Freeware ist auch dabei.
Gruss Rolf
Moin
Was ist denn ein Schrittschalter ?
Gruss Erik
Hallo
Mit einen FB, kannst DU mal das hier versuchen:
(Deklarationsteil:)
FUNCTION_BLOCK Schrittschalter
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
END_VAR
(Codeteil:)
(Schrittschalter Eingang Clock ist Flankengetriggert)
(Zähler)
IF (CLOCK = TRUE AND FLANKE = FALSE) THEN (Steigende Flanke an Clock erkennen)
COUNT := COUNT + 1;
IF COUNT > 4 THEN (Wenn Zählerstand grösser als höchster Ausgang)
END_IF
END_IF
FLANKE := CLOCK; (Flankenmerker zurücksetzen)
(Alle Ausgänge zurücksetzen)
OUT_1 := FALSE;
OUT_2 := FALSE;
OUT_3 := FALSE;
OUT_4 := FALSE;
(etc.)
(Je nach Zählerstand, den entsprechenden Ausgang auf TRUE setzen)
CASE COUNT
OF
ELSE
(Bei nicht Irrelevanten Werten von COUNT (z.B. COUNT := 0), alle Ausgänge zurücksetzen)
END_CASE;
Habs nicht getestet! Sollte aber so funktionieren.
Viel Spass beim Ausprobieren!
Mit freundlichen Grüssen! Pitsch
vielen dank für ihre hilfe, ich werde das morgen ausprobieren
Hallo Pitsch,
vielen Dank für ihre Antwort. Jetzt habe ich noch eine Frage?
Ich habe mehrere tasten die ein Motor oder licht ein und ausschalten können, sollte diese Funktion über Schrittschaltung programmiert werden, oder gibt es eine andere Lösung.
Mit freundlichen grüße.
Lolo68
Hallo
Also wenn Du einen Ausgang (der z.B. Eine Lampe über einen Impulsschalter ein- und ausschaltet) alternierend steuern willst, könntest Du es mal so, mit einem FB probieren.
(Deklarationsteil)
FUNCTION_BLOCK Alternate
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
END_VAR
(Codeteil)
(Baustein schaltet den Ausgang bei einer steigenden Flanke an CLOCK, alternierend Ein oder Aus)
IF (CLOCK = TRUE AND FLANKE = FALSE) THEN (Steigende Flanke an CLOCK erkennen)
OUT := NOT OUT; (Ausgang invertieren)
END_IF
FLANKE := CLOCK; (Flankenmerker zurücksetzen)
Ungetestet! Sollte aber funktionieren.
Mit freundlichen Grüssen! Pitsch
Hallo Gemeinde
Habe zu Schrittschaltung eine geniale Lösung gefunden.
U E 1.0
UN M 1.0
S A 1.0
U E 1.0
U M 1.0
R A 1.0
UN E 1.0
U A 1.0
S M 1.0
UN E 1.0
UN A 1.0
R M 1.0
Diese Lösung braucht keine Flankenauswertung und kein Entpellen.
Sie ist sehr gut nachvollziehbar und auch in FUP oder KOP gut zu realisieren.
Sie stammt aus dem SPS Forum und ursprünglich aus dem Buch Automatisieren mit S5-115U.
Diese Funktion nennt sich auch Binärutersetzer oder auch Frequenzteiler.
Wenn mehrere Schalter dazugeschaltet werden einfach ein Oder vor E 0.1 gesetzt.
Gruss und viel Erfolg
Kaspar