Förderbandsteuerung pausieren/SPS Programm pausieren

Aruka

Level-2
Beiträge
11
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hey Forum :)

Ich erkläre erstmal schnell um was es im allgemeinen geht.
Ich bin im letzten Jahr meiner Ausbildung zum Energieelektrotechniker, und hier ist es üblich das man sich in Gruppen ein Projekt ausdenken muss und realisieren soll.
So habe ich(wir) mich für eine Förderbandsteuerung entschieden,die komplett über SPS programmiert werden soll, und das klappt so weit alles fast perfekt.
Hier soll eine Industrie Fließbandarbeit dargestellt werden,bei der kleine Dosen,nach Farbe in verschiedene Stationen mittels eines Krans transportiert wird.
Gesteuert wird alles über ein Touchpanel ( Starten,Not-Aus, Pausieren, Zähler rücksetzen der die Farben abzählt.)

Jetzt allerdings zum eigentlichen Problem, wir sollen es ausserdem so programmieren, dass man die ganze Schaltung pausieren kann,
der momentane Ablauf darf dabei zu Ende geführt werden( Kran darf die Dose natürlich beim pausieren nicht einfach fallen lassen).
Allerdings finden wir einfach keine Möglichkeit wie sowas realisierbar wäre, wir müssen nachdem pausiert wird irgendwie unsere ganzen Merker abspeichern, und beim Befehl "Weiter" wieder abrufen, sowas in der Art.
Aber wie? :/
Wie kann man ein komplettes Programm wirklich einfrieren, pausieren?
Meine SPS-Kenntnisse beschränken sich leider auf FUP, da uns AWL nie gelehrt wurde, leider.
Würde mich sehr über eine Antwort freuen, wir sind momentan echt am verzweifeln. :(

Dankend im Vorraus,
Aruka
 
Du rufst doch die einzelnen Unterprogramme aus dem OB1 heraus auf.

Wenn du nun was einbaust, das du zwar den aktuellen Schritt noch fertig laufen lässt, aber der Reihe nach (Vom Doseneinwurf an gesehen) die Schritte einfach nicht mehr aktivierst, kommst du ev zum gewünschten Ergebnis.

Es gibt da viele Möglichkeiten, versuch mal den Prozess im Kopf ablaufen zu lassen. Jetzt stelld´st du dich vor einem Bedienpult ohne SPS.

Was würdest du in diesem Fall nach und nach abschalten damit du das gewünschte Ergebnis erhältst.

Genau so setzt du das dann im Programm um.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie kann man ein komplettes Programm wirklich einfrieren, pausieren?

Das tut man üblicherweise nicht.

Man blockiert die Weiterschaltbedingungen.

Nehmen wir mal an.
"Dose da" und "Kran gegriffen" setze "Kran vorwärts".

"Kran am Ziel" setze zurück "Kran vorwärts"

Nächster schritt wäre jetzt z.B.
"Kran am Ziel" und "Dose im Griff" gleich "öffne Griff"

Hier gehört dann einfach noch ein und nicht "Pause" zu "Kran am Ziel" und "Dose im Griff"

Das heisst der Kran fährt immernoch zum Ziel weil er von Pause nix weiss. Aber für den nächsten schritt "öffne Griff" fehlt ihm noch die Bedingung "keine Pause".
Wenn diese Bedingung aber erfüllt ist, ist der Kran ja immernoch am Ziel und hat immernoch die Dose womit "öffne Griff" immernoch ausgelöst wird.

Jetzt musst du mein Geschwurbel nur noch in Programm umsetzen, das schafft ihr ;)

mfG René
 
Habt Ihr das Ganze als Schrittkette programmiert? Dann wäre es doch ein Einfaches, als Weiterschaltbedingung für den nächsten Schritt, einen zusätzlichen Eingang UND-verknüpft da mit reinzubringen. SuFu: Schrittkette
 
ich mach das immer so:
- "geordneter stop", so wie eure "pause": alle begonnen schritte werden fertig
- "leerfahren": komplette automatik läuft weiter, aber es werden keine neuen teile mehr in die anlage eingefördert. ist dann alles leer geht die automatik aus. eventuell mit meldung "leergefahren"
 
Bei unseren Anlagen haben wir einen sogenannten "BA_FREI" Merker (Betriebsart frei).
Dieser sitzt in jedem Schritt über eine UND Verknüpfung.
Wenn wir dann im Automatikbetrieb sind und haben START gedrückt wird der Merker gesetzt,
drücken wir jedoch STOPP, wird der Merker zurück gesetzt und die Schrittkette bleibt stehen,
bis wir wieder Start drücken.
Dieser BA_FREI Merker dient uns auch im Tippbetrieb, also wenn wir im Handbetrieb sind und START drücken,
wird der BA_FREI für einen Zyklus gesetzt.
 
Vielen Dank für die zahlreichen Antworten :)
(und ja uns wurde empfohlen es als Schrittkette zu programmieren, haben es dann aber dann doch im FUP programmiert :/)
Die Antwort von vollmi war dann die lösung, haben das soweit umgesetzt und jetzt funktioniert die Schaltung FAST einwandfrei.
Ein Problem gibt es nämlich noch, und zwar mit den Timern S_Severz und S-EVERZ. Wenn man die Schaltung pausiert, während gerade ein Timer Läuft,wird beim wieder weiterfahren die Zeit neu gestartet... wir haben nur 4 verschiedene timersituationen,aber in diesem Fall kann man dann eben nicht pausieren.

Gibt es also einen Timer, der nach dem Wiedereinschalten, die Zeit im selben Augenblick weiterläuft?
Oder die Möglichkeit diesen Wert der Zeit abzugreifen und wieder als Variable am TW wiederzugeben?

Icn danke euch schonmal vielmals für die ganzen Antowrten, finds klasse das es ein Forum gibt mit solch kompetenter Hilfe :O
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi!
Speichern kannst du die Zeiten recht Einfach...
( Musst nur die Move-Befehle in einzelne Netzwerke packen, Screenshot hätte sonst nicht alles erfasst...)
S7.jpg

Wenn die Einschaltbedingung timer da ist und nicht Pause lädt der Move-Befehl die normale Vorgabe Zeit (hier 10s). Sobald Pause wird der Timer gestoppt und die Alte Zeit über den Move-Befehl als Vorgabe Zeit für den Timer geladen.

gruß Maggi
 
Zuletzt bearbeitet:
Thx Maggi :D
Kann jetzt am Wochenende nicht daran arbeiten,sieht aber sehr gut aus.Vielen Dank :)
@Rudi Achso^^ Naja ich merke mir das fürs nächste Mal, ich hoffe dass ich im Berufsleben mindestens genausoviel mit SPS-Programmierungen zu tun habe, finds echt intressant, und hoffe später auch einmal mich mehr mit AWL befassen zu können.
Wenn das noch funktioniert wäre dann auch komplett fertig mit unserer Programmierung.
Danke vielmals für die zahlreichen Antworten,finds klasse dass es ein SPS Forum gibt :)
 
Hi!
Hab es getestet funktioniert... Also es reicht aus das beim starten vom timer die alte zeit geladen wird. Ist ja auch logisch da der timer vor abarbeitung der move befehle steht, sprich der timer startet vorm laden der 10s und wenn der timer einmal gestartet ist läuft er auch zu ende!wenn ganz sichergehen willst dann läst du die 10s halt erst wieder mit ner negativen flanke vom timer laden und sonst immer die alte zeit!
 
Zuletzt bearbeitet:
Super :) Wenn das am Donnerstag echt klappt kann ich ja mal Video unserer Anlage hochladen, falls das einen interessieren würde. :O
 
Zurück
Oben