KleinerLehrling
Level-1
- Beiträge
- 2
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo zusammen!
Als SPS Neuling bin ich gerade dabei meine erste Schrittkette umzusetzen, komme jedoch auf keinen grünen Zweig.
Ich möchte ganz simpel, dass eine Drehachse sich für eine gewisse Zeit in die eine und anschließende in die andere Richtung dreht.
Hier dachte ich, könne ich die Einschaltverzögerung nutzen, doch da "IN" immer aktiv ist, wenn in den jeweiligen Case gesprungen wird, zählt die Zeit nicht erneut auf 5s und schaltet den Ausgang stattdessen sofort durch.
Ich habe viel probiert und gelesen, doch ich komme gerade einfach nicht weiter. Sehr wahrscheinlich ist es keine große Sache oder die Methode ist für meinen Anwendungsfalls sowieso ungeeignet. Wie auch immer, vielen Dank für jegliche Hilfe
.
Liebe Grüße!
Als SPS Neuling bin ich gerade dabei meine erste Schrittkette umzusetzen, komme jedoch auf keinen grünen Zweig.
Ich möchte ganz simpel, dass eine Drehachse sich für eine gewisse Zeit in die eine und anschließende in die andere Richtung dreht.
Hier dachte ich, könne ich die Einschaltverzögerung nutzen, doch da "IN" immer aktiv ist, wenn in den jeweiligen Case gesprungen wird, zählt die Zeit nicht erneut auf 5s und schaltet den Ausgang stattdessen sofort durch.
Ich habe viel probiert und gelesen, doch ich komme gerade einfach nicht weiter. Sehr wahrscheinlich ist es keine große Sache oder die Methode ist für meinen Anwendungsfalls sowieso ungeeignet. Wie auch immer, vielen Dank für jegliche Hilfe

Liebe Grüße!
Code:
REGION Dauerlauf Start
#R_TRIG_Dauerlauf_Start(CLK := "DB_4_Ansteuerung".b_HMI_Start_Dauerlauf,
Q => #R_TRIG_Dauerlauf_Start.Q);
IF #R_TRIG_Dauerlauf_Start.Q = TRUE
AND
"DB_4_Ansteuerung".b_HMI_Automatikbetrieb = TRUE
THEN
#b_Dauerlauf_gestartet := 1;
#Schrittnummer.Aktueller_Schritt := 0;
END_IF;
END_REGION
REGION Schrittkette Dauerlauf
// Statement section REGION
CASE #Schrittnummer.Aktueller_Schritt OF
0: // Drehen im Uhrzeigersinn
#TON_Dauerlauf_Drehen(IN := #b_Dauerlauf_gestartet,
PT := t#5s,
Q => #b_TON_Drehen_abgelaufen);
IF "DB_4_Ansteuerung".b_HMI_STOP_Dauerlauf = TRUE
THEN
#Schrittnummer.Aktueller_Schritt := 88;
END_IF;
IF #b_TON_Drehen_abgelaufen = TRUE
THEN
#b_Dauerlauf_gestartet := 0;
#b_test := 1;
"b_Drehen" := 1;
#Schrittnummer.Aktueller_Schritt := #Schrittnummer.Aktueller_Schritt + 1;
END_IF;
1: // Drehen gegen den Uhrzeigersinn
#TON_Dauerlauf_DrehenG(IN := #b_test,
PT := t#5s,
Q => #b_TON_DrehenG_abgelaufen);
IF "DB_4_Ansteuerung".b_HMI_STOP_Dauerlauf = TRUE
THEN
#Schrittnummer.Aktueller_Schritt := 88;
END_IF;
IF #b_TON_DrehenG_abgelaufen = TRUE
THEN
#b_test := 0;
"b_DrehenG" := 1;
#Schrittnummer.Aktueller_Schritt := 0;
END_IF;
END_CASE;