-> Hier kostenlos registrieren
Hallo Zusammen,
Ich baue derzeit eine Anlage zur Sortierung von Paketen.
Kurz zum Aufbau der Anlage:
Ich habe ein "Regalbediengerät", bestehend aus einer senkrechten Linearachse, auf dem die Pakete hoch und runter gefahren werden können und in ein entsprechendes Regalfach einsortiert werden können.
Dieses Regelbediengerät hat eine Ladeposition, an der das Paket von einem Pusher von einem Förderband auf fahrbare Ebene des Regelbediengeräts geschoben wird.
Ziel ist es dass ankommende Pakete bei Bedarf vereinzelt werden, dann zur Pusher-Station gefahren werden, während dem verfahren zum Pusher der auf dem Paket angebrachte Barcode gelesen wird, anhand des Barcodes wird entschieden ob das Paket in das Regal eingelagert werden soll, oder ob es durch die Anlage durchfahren soll zur nächsten Station.
Ich hoffe ich habe in der kurzen Beschreibung alles wichtige erwähnt, so dass ihr das ganze verstehen könnt, sonst einfach fragen
Kurz zu meinem Hintergrund:
Ich habe Elektrotechnik studiert, und im Studium auch mit Automatisierungstechnik (Codesys) zutun gehabt.
Haben damals z.B. eine kleine Modell-Taktstraße automatisiert.
Allerdings war das meiner Meinung nach immer etwas rudimentär, was wir programmiert haben hat schon funktioniert, allerdings würde ich sagen dass das Meilenweit von einer Steuerung entfernt war die man an einen Kunden ausliefern könnte. Fehler und Störungen wurden eher rudimentär abgefangen ...
Wobei genau dieses Fehlerhandling eigentlich das ist was mich wie man das richtig macht.
Ich möchte nicht dass ich bei der kleinsten Störung die Anlage leer fahren muss, komplett zurücksetzen usw ..., das haben wir leider nicht behandelt, das eigentliche Programmieren ist ja das einfachste würde ich behaupten ...
Meine eigentliche Kompetenz ist aber die Entwicklung von Embedded Soft- und Hardware, programmiere viel in C und C#, daher ist das programmieren auf der SPS in ST z.B. doch eine kleine Umstellung für mich
Ich benötige gerade Hilfe beim überlegen wie denn die Programmstruktur aussehen soll, bzw. am interessantes fände ich eigentlich wenn ich mir irgendwo die Programmierung echter Automatisierungsprojekte ansehen könnte, allerdings suche ich schon echt einige Zeit, finde aber praktisch nichts (ist ja auch logisch, wer veröffentlicht schon sein geistiges Eigentum ...).
Die Umsetzung erfolgt übrigens mit einer WAGO PFC100, entsprechende erfolgt die Programmierung im e!Cockpit (was ja quasi Codesys ist ...)
Ich habe bisher vor den Programmablauf ca. so zu gestalten:
Die Anlage besteht für mich aus 3 Blöcken:
- Förderband
- Pusher
- Regalbediengerät (ich nenne das im folgenden einfach mal RBG zur Vereinfachung)
Nun würde ich für jedes Element einen FB anlegen, und die einzelnen FBs miteinander über entsprechende Variablen sprechen lassen.
Ein Programmablauf sieht dabei für mich so aus:
- Paket am Förderband verfügbar
- prüfen ob Pusher eingefahren, wenn ja dann Transport zur Pushposition starten
- Barcode des Pakets lesen und prüfen ob das Paket einsortiert werden muss, falls nein Paket bis zum Ende des Förderbands weiter fahren
- wenn Paket sortiert werden muss und an Pushposition angekommen, prüfen ob RBG bereit zur Aufnahme des Pakets (muss an richtiger Position stehen, und der Platz auf dem RBG frei sein), falls nicht Anforderung an RBG schicken
- wenn RBG bereit ist, Pusher starten, wenn Pusher wieder in der eingefahrenen Endlage angekommen ist, den Sortiervorgang des RBGs starten
- gleichzeitig sobald Pusher in eingefahrener Endlage angekommen ist kann bereits das nächste Paket zum Pusher transportiert werden falls am Eingang schon neue Pakete bereit liegen
Das klingt jetzt wenn ich das durchlese garnicht mal sooo schwierig, allerdings fehlt dabei ja noch die ganze Überwachung auf Störungen usw.
Und wie setze ich die Kommunikation zwischen den 3 FBs um?
Ich hätte gesagt für den Triggereingang eines FBs eine Flankenerkunng auf die steigende Flanke zu nehmen.
Jeder block bekommt einen Error Ausgang, die Error-Ausgänge der 3 Blöcke dann verodern und einen stop Eingang jedes FBs geben.
Wie setze ich sinnvollerweise einen Reset bei Fehlern um?
Für mich ist nicht die eigentliche Programmierung das Problem, sondern die Umsetzung des großen Ganzen so hin zu bekommen dass die Anlage möglichst robust funktioniert, und der Bediener sich nicht täglich darüber aufregt
Gibt es irgendwelche Literatur wo so "best practice" Lösungen oder so beschrieben sind?
Die Aufgabenstellung die ich habe ist ja eigentlich ein alltägliches Problem in der Automatisierungstechnik würde ich behaupten.
Beste Grüße
David
Ich baue derzeit eine Anlage zur Sortierung von Paketen.
Kurz zum Aufbau der Anlage:
Ich habe ein "Regalbediengerät", bestehend aus einer senkrechten Linearachse, auf dem die Pakete hoch und runter gefahren werden können und in ein entsprechendes Regalfach einsortiert werden können.
Dieses Regelbediengerät hat eine Ladeposition, an der das Paket von einem Pusher von einem Förderband auf fahrbare Ebene des Regelbediengeräts geschoben wird.
Ziel ist es dass ankommende Pakete bei Bedarf vereinzelt werden, dann zur Pusher-Station gefahren werden, während dem verfahren zum Pusher der auf dem Paket angebrachte Barcode gelesen wird, anhand des Barcodes wird entschieden ob das Paket in das Regal eingelagert werden soll, oder ob es durch die Anlage durchfahren soll zur nächsten Station.
Ich hoffe ich habe in der kurzen Beschreibung alles wichtige erwähnt, so dass ihr das ganze verstehen könnt, sonst einfach fragen

Kurz zu meinem Hintergrund:
Ich habe Elektrotechnik studiert, und im Studium auch mit Automatisierungstechnik (Codesys) zutun gehabt.
Haben damals z.B. eine kleine Modell-Taktstraße automatisiert.
Allerdings war das meiner Meinung nach immer etwas rudimentär, was wir programmiert haben hat schon funktioniert, allerdings würde ich sagen dass das Meilenweit von einer Steuerung entfernt war die man an einen Kunden ausliefern könnte. Fehler und Störungen wurden eher rudimentär abgefangen ...
Wobei genau dieses Fehlerhandling eigentlich das ist was mich wie man das richtig macht.
Ich möchte nicht dass ich bei der kleinsten Störung die Anlage leer fahren muss, komplett zurücksetzen usw ..., das haben wir leider nicht behandelt, das eigentliche Programmieren ist ja das einfachste würde ich behaupten ...
Meine eigentliche Kompetenz ist aber die Entwicklung von Embedded Soft- und Hardware, programmiere viel in C und C#, daher ist das programmieren auf der SPS in ST z.B. doch eine kleine Umstellung für mich

Ich benötige gerade Hilfe beim überlegen wie denn die Programmstruktur aussehen soll, bzw. am interessantes fände ich eigentlich wenn ich mir irgendwo die Programmierung echter Automatisierungsprojekte ansehen könnte, allerdings suche ich schon echt einige Zeit, finde aber praktisch nichts (ist ja auch logisch, wer veröffentlicht schon sein geistiges Eigentum ...).
Die Umsetzung erfolgt übrigens mit einer WAGO PFC100, entsprechende erfolgt die Programmierung im e!Cockpit (was ja quasi Codesys ist ...)
Ich habe bisher vor den Programmablauf ca. so zu gestalten:
Die Anlage besteht für mich aus 3 Blöcken:
- Förderband
- Pusher
- Regalbediengerät (ich nenne das im folgenden einfach mal RBG zur Vereinfachung)
Nun würde ich für jedes Element einen FB anlegen, und die einzelnen FBs miteinander über entsprechende Variablen sprechen lassen.
Ein Programmablauf sieht dabei für mich so aus:
- Paket am Förderband verfügbar
- prüfen ob Pusher eingefahren, wenn ja dann Transport zur Pushposition starten
- Barcode des Pakets lesen und prüfen ob das Paket einsortiert werden muss, falls nein Paket bis zum Ende des Förderbands weiter fahren
- wenn Paket sortiert werden muss und an Pushposition angekommen, prüfen ob RBG bereit zur Aufnahme des Pakets (muss an richtiger Position stehen, und der Platz auf dem RBG frei sein), falls nicht Anforderung an RBG schicken
- wenn RBG bereit ist, Pusher starten, wenn Pusher wieder in der eingefahrenen Endlage angekommen ist, den Sortiervorgang des RBGs starten
- gleichzeitig sobald Pusher in eingefahrener Endlage angekommen ist kann bereits das nächste Paket zum Pusher transportiert werden falls am Eingang schon neue Pakete bereit liegen
Das klingt jetzt wenn ich das durchlese garnicht mal sooo schwierig, allerdings fehlt dabei ja noch die ganze Überwachung auf Störungen usw.
Und wie setze ich die Kommunikation zwischen den 3 FBs um?
Ich hätte gesagt für den Triggereingang eines FBs eine Flankenerkunng auf die steigende Flanke zu nehmen.
Jeder block bekommt einen Error Ausgang, die Error-Ausgänge der 3 Blöcke dann verodern und einen stop Eingang jedes FBs geben.
Wie setze ich sinnvollerweise einen Reset bei Fehlern um?
Für mich ist nicht die eigentliche Programmierung das Problem, sondern die Umsetzung des großen Ganzen so hin zu bekommen dass die Anlage möglichst robust funktioniert, und der Bediener sich nicht täglich darüber aufregt

Gibt es irgendwelche Literatur wo so "best practice" Lösungen oder so beschrieben sind?
Die Aufgabenstellung die ich habe ist ja eigentlich ein alltägliches Problem in der Automatisierungstechnik würde ich behaupten.
Beste Grüße
David