-> Hier kostenlos registrieren
Hallo liebes Forum,
mein Name ist Ahmed, bin 18 Jahre alt. Zur SPS-Programmierung bin ich durch meine Schule gekommen und habe nun bei einer freiwilligen SPS-Projekt mitgemacht.
Da ich noch ein blutiger Anfänger in der SPS-Programmierung bin, würde ich mich sehr über eure Hilfe freuen.
Problem #1:
Mein Projekt besitzt ein Auslaufband, welches 2x starten muss:
1.Fall: Schieber fährt los, Auslaufband startet und schaltet sich nach einer gewissen Zeit ab.
2. Fall: Der Sensor am Ende erkennt das entfernen eines Objektes und fährt für eine gewisse Zeit nach.
Dazu habe ich auch einen Code geschrieben:
Mein Problem nun: Je nachdem welcher der beiden Timer weiter unten im Code ist, funktioniert nur dieser. Abhilfe?
Problem #2:
In meinem Projekt sind mehrere Fehlererkennungen, die je eine Fehlervariable in meinem Fehler_DB setzt. Nun möchte ich, wenn einer dieser Variablen gesetzt wird, dass alle meine Outputs auf 0 gesetzt werden.
Könnte mir jemand erklären, wie man das am Besten macht?
Problem #3:
In meinem Projekt besitze ich 2 FB's die zu 90% gleich sind und viele andere Stellen wo der Code auch schonmal vorgekommen ist. Mein Lehrer meinte, man könnte diesen Code öfter verwenden und man bräuchte das Programm nicht öfter schreiben. Da ich aber immer andere Variablen habe und so auch keine Idee wie das funktioniert, würde ich mehr sehr freuen, wenn auch das mir jemand erklären könnte.
Danke im Vorraus.
Lg
mein Name ist Ahmed, bin 18 Jahre alt. Zur SPS-Programmierung bin ich durch meine Schule gekommen und habe nun bei einer freiwilligen SPS-Projekt mitgemacht.
Da ich noch ein blutiger Anfänger in der SPS-Programmierung bin, würde ich mich sehr über eure Hilfe freuen.
Problem #1:
Mein Projekt besitzt ein Auslaufband, welches 2x starten muss:
1.Fall: Schieber fährt los, Auslaufband startet und schaltet sich nach einer gewissen Zeit ab.
2. Fall: Der Sensor am Ende erkennt das entfernen eines Objektes und fährt für eine gewisse Zeit nach.
Dazu habe ich auch einen Code geschrieben:
Code:
// Hauptfunktion
"timer_auslaufband_fahrzeit".TOF(IN := "Daten_DB".schieber2_belegt,
PT := "Zeiten_DB".zeit_auslaufband_fahrzeit,
Q => #auslaufband);
// Objekt angekommen und abholbereit
"pos_flankenerkennung_objekte_abholbereit"(CLK := "timer_auslaufband_fahrzeit".Q);
IF "pos_flankenerkennung_objekte_abholbereit".Q THEN
"Daten_DB".objekte_abholbereit_anzahl := "Daten_DB".objekte_abholbereit_anzahl + 1;
END_IF;
// Objekt wurde entfernt und Station fährt nach
"neg_flankenerkennung_objekte_abholbereit"(CLK := #auslaufband_belegt);
"timer_auslaufband_nachfahren".TOF(IN :="neg_flankenerkennung_objekte_abholbereit".Q AND"Daten_DB".objekte_abholbereit_anzahl > 0,
PT := T#500ms,
Q => #auslaufband);
IF "neg_flankenerkennung_objekte_abholbereit".Q AND "Daten_DB".objekte_abholbereit_anzahl > 0 THEN
"Daten_DB".objekte_abholbereit_anzahl := "Daten_DB".objekte_abholbereit_anzahl - 1;
END_IF;
Mein Problem nun: Je nachdem welcher der beiden Timer weiter unten im Code ist, funktioniert nur dieser. Abhilfe?
Problem #2:
In meinem Projekt sind mehrere Fehlererkennungen, die je eine Fehlervariable in meinem Fehler_DB setzt. Nun möchte ich, wenn einer dieser Variablen gesetzt wird, dass alle meine Outputs auf 0 gesetzt werden.
Könnte mir jemand erklären, wie man das am Besten macht?
Problem #3:
In meinem Projekt besitze ich 2 FB's die zu 90% gleich sind und viele andere Stellen wo der Code auch schonmal vorgekommen ist. Mein Lehrer meinte, man könnte diesen Code öfter verwenden und man bräuchte das Programm nicht öfter schreiben. Da ich aber immer andere Variablen habe und so auch keine Idee wie das funktioniert, würde ich mehr sehr freuen, wenn auch das mir jemand erklären könnte.
Danke im Vorraus.
Lg