-> Hier kostenlos registrieren
Hallo Leute,
ich sitzte grade vor einem Problem und zwar wollte ich eine Schrittkette Programmieren um eine Pumpe zu steuern, kurz zu Funktion.
Sobald auf Automatik gestellt soll eine Pumpe in einem Medium von oben anfangen abzupumpen.
Die Pumpe soll zuerst ein eine Stellung außerhalb des Wassers fahren und dann wider runter bis der Schwimmerschalter schaltet damit sie im Wasser ist.
anschliessend soll sie abpumpen bis ihr das Medium nicht mehr gefällt daher kommt auch der bool ausgang eines hysterese Timers Überschreitungszeit_Q.
wenn dies der Fall ist soll die Pumpe die Strecke "verfahrweg" nach unten verfahren und anschliessend wider Pumpen bis das Medium nicht ok ist.
Das ganze geht so lange bis sie in der Unteren endlage ist. Danach soll sie wider bei Schritt 1 einsteigen und nach ganz oben fahren um wider neu ins medium einzutauchen.
Ich habe das Problem das die Anlage zwar auf schritt 1 anfährt aber der Merker zB gar nicht gesetzt ist und die anlage somit auch nicht in Schritt 2 wechselt usw.
Hier ein auszug aus meinem Programm.
ich sitzte grade vor einem Problem und zwar wollte ich eine Schrittkette Programmieren um eine Pumpe zu steuern, kurz zu Funktion.
Sobald auf Automatik gestellt soll eine Pumpe in einem Medium von oben anfangen abzupumpen.
Die Pumpe soll zuerst ein eine Stellung außerhalb des Wassers fahren und dann wider runter bis der Schwimmerschalter schaltet damit sie im Wasser ist.
anschliessend soll sie abpumpen bis ihr das Medium nicht mehr gefällt daher kommt auch der bool ausgang eines hysterese Timers Überschreitungszeit_Q.
wenn dies der Fall ist soll die Pumpe die Strecke "verfahrweg" nach unten verfahren und anschliessend wider Pumpen bis das Medium nicht ok ist.
Das ganze geht so lange bis sie in der Unteren endlage ist. Danach soll sie wider bei Schritt 1 einsteigen und nach ganz oben fahren um wider neu ins medium einzutauchen.
Ich habe das Problem das die Anlage zwar auf schritt 1 anfährt aber der Merker zB gar nicht gesetzt ist und die anlage somit auch nicht in Schritt 2 wechselt usw.
Hier ein auszug aus meinem Programm.
// Zyklusfahrt
IF "StoerungPumpe" OR "StoerungHubwerk" OR "StoerungGlobal" OR NOT "DREH_Auto_KRAN" THEN
"Zyklusmerker" := FALSE;
ELSE
"Zyklusmerker" := TRUE;
END_IF;
IF NOT "Zyklusmerker" THEN
"m_schritt1" := FALSE;
"m_schritt2" := FALSE;
"m_schritt3" := FALSE;
"m_schritt4" := FALSE;
"Motor_hochauto" := FALSE;
"Motor_runterauto" := FALSE;
"Pumpe_einauto" := FALSE;
END_IF;
IF "Zyklusmerker" AND "Flanke_Auto" AND NOT "Oberste Endlage" THEN
"m_schritt1" := TRUE;
END_IF;
IF "Zyklusmerker" AND "Wartungsstellung" AND "m_schritt1" THEN
"m_schritt2" := TRUE;
END_IF;
IF "Zyklusmerker" AND "Ruhezeit_Q" AND "m_schritt2" THEN
"m_schritt3" := TRUE;
END_IF;
IF "m_schritt3" AND "Ueberschreitungszeit_Q" THEN
"m_schritt4" := TRUE;
END_IF;
IF "m_schritt4" AND "Verfahrweg_Q" AND "Unterste Endlage" THEN
"m_schritt1" := TRUE;
END_IF;
IF "m_schritt4" AND "Verfahrweg_Q" AND NOT "Unterste Endlage" THEN
"m_schritt3" := TRUE;
END_IF;
// Ausgabe
IF "m_schritt1" THEN
"Motor_hochauto" := TRUE;
"m_schritt4" := FALSE;
END_IF;
IF "m_schritt2" AND NOT "Pumpe_schwimmer" THEN
"Motor_hochauto" := FALSE;
"Motor_runterauto" := TRUE;
ELSE
"Motor_runterauto" := FALSE;
"m_schritt1" := FALSE;
END_IF;
IF "m_schritt3" THEN
"Pumpe_einauto" := TRUE;
"m_schritt2" := FALSE;
"m_schritt4" := FALSE;
"MR_Start" := "scale_Drehgeber";
"MR_Ziel" := "MR_Start" + "Verfahrweg";
END_IF;
IF "m_schritt4" AND "scale_Drehgeber" <= "MR_Ziel" THEN
"Pumpe_einauto" := FALSE;
"Motor_runterauto" := TRUE;
"m_schritt3" := FALSE;
END_IF;
IF "scale_Drehgeber" > "MR_Ziel" THEN
"Motor_runterauto" := FALSE;
END_IF;
Zuletzt bearbeitet: