# Sequence



## tongle (7 August 2009)

Ich konnte in diesem Forum bislang durch die Schfunktion all meine Fragen beantworten.

Jedoch nun stehe ich vor einem Problem, welches ich zur Zeit nicht in der Lage bin zu Lösen.

Meine Ausstattung:
Beckhoff PLC.

Nun zu meinem Anliegen:

Ich habe die Aufgabe erhalten einen einen Roboter für pick and place Anwendungen zu programmieren, welcher jedoch voll automatisch arbeiten soll:

D.h:
ich habe z.b. 4 Stationen wobei jede Station eine Zeitbasis von 0-999sec hat, das Produkt sollte auch nicht länger als 0,5 sec auf jeder Station liegen bleiben, dann sollte man auch noch auswählen können, welche Station zuerst angefahren werden soll.
Desweiteren soll die Möglichkeit bestehen Stationen hinzuzufügen d.h. anstatt 4 z.b. 10.
Welche dann dynamisch bearbeitet werden sollen. D.h ich möchte ein Programm schreiben, welches im Vornhinein ermittelt, welche Station anzufahren ist ohne einen Zeitverlust.

Beispiel:
Werkstücke zu bearbeiten 10Stk.

Abholen von Station 1  10s
Befördern zu Staion 2
Bearbeiten auf Station 2 für 100s
Befördern zu Station 3
Bearbeiten auf Station 3 für 50s
Befördern zu Staion 4
Bearbeiten auf Staion 4 für 10s
Befördern zurück zu Station 1
Annahme Beförderungs Dauer 10s

Befördern von A nach B ca. 10s

Eventuell hat jemand eine Vorschlag wie man dieses Thema angehen könnte. Ich wäre für jede Hilfe dankbar


----------



## Proxy (8 August 2009)

Ich würde das ganze in einen Rezept erstellen. In etwa so

1.Station:
-Arbeitsplatznummer
-Zeit
2.Station:
-Arbeitsplatznummer
-Zeit
3.Station:
........

Jeder Arbeitsplatz hat einen Nummer von 1-10, wenn der Platz nich angefahren werden soll wird halt in der Station eine 0 eingetragen. Somit kann der Maschinenbediener bestimmen was er fahren muss/will.

Hoff das hilft dir einwenig


----------



## tongle (8 August 2009)

Vorerst recht herzlichen Dank für Eure Antwort.

Jedoch habe ich vielleicht mein Problem nicht konkret genug beschrieben.

Das Problem sieht wie folgt aus.

Ich habe eine Plattform, wo ich eine Sende-Empfangs-Station für die Werkstücke habe (bis zu 10 Stk. - kann sich jederzeit ändern)
Dann habe ich eine Hauptbearbeitungsstation, welche nur ein Werkstück bearbeiten kann. Dann habe ich noch Nachbearbeitungsstation, welche bis zu 10 Werkstücke aufnehmen kann ( je nach Konfiguration, es kann auch nur eine sein)

D.h. der Ablauf wäre in etwa:
pick up- put zu Hauptbearbeitungsstation-put zu Nachbearbeitungsstation,
danach könnte ich ein neues Werkstück abholen u. auf die Hauptbearbeitungsstation legen, danach könnte ich z.B. Werkstück Nr.1 (wenn es die Zeit erlaubt) zurück zur Empfangsstation legen...

Mein Problem besteht nun darin, dass das Produkt nicht länger als 1s auf der Hauptbearbeitungsstation od. der Nachbearbeitungsstation liegen darf ( egal wieviel Nachbearbeitungsstationen ich habe 1-10Stk.)

Somit müsste ich im Vorfeld berechnen, zu welchem Zeitpunkt der Roboter bei welcher Station sein müsste, damit es zu keinen Zeitüberschreitungen kommt.

Damit es eventuell leichter verständlich ist ein kleines Beispiel:
Pick-put zu Hauptbearbeitungstation Werkstück 1 10s
Bearbeitung Werkstück 1 100s
Put zu Nachbearbeitungsstation 10s
Nachbearbeitungsstation Werkstück 1 50s
pick - put Werkstück 2 zu Hauptbearbeitungsstation 10s
Bearbeitung auf Hauptbearbeitungsstation 100s
put Werkstück 1 zurück zu Empfangsstation 10s
put Werkstück 2 zu Nachbearbeitungsstation Slot Nr.2
Nachbearbeitungsstation Werkstück 2 50s
put Werkstück 2 zurück zu Empfangsstation 10s.

Diesen Vorgang müsste ich nun für alle 10 Werkstücke im Vorfeld so berechnen, dass keines dieser 10 Werkstücke länger als 1s auf der Hauptbearbeitungsstation od. der Nachbearbeitungsstation liegt.

Zu beachten wäre jedoch, dass sich die Zeiten der Hauptbearbeitungssstation oder Nachbearbeitungssstation jederzeit ändern können (0 - 999 s). Der einzige Fixwert ist das Handling (10s).

Ich bin dankbar für jeden Lösungsvorschlag.


----------



## Deichkind (9 August 2009)

Damit ich Dich richtig verstehe:

Du hast einen "Transporter", der eine variable Anzahl an "Werkstücken" zwischen einer variablen Anzahl an "Bearbeitungsstationen" transportiert.
Die Bearbeitungsdauer der Stationen varriiert. Sobald die Werkstücke fertig sind, dürfen sie nicht länger als 1s auf der Station verbleiben. 
Der Transporter benötigt 10s um ein Werkstück zwischen zwei Stationen zu transportieren.

Grundsätzlich geht es bei dieser Aufgabe also darum, die Auslastung des Transporters zu maximieren und gleichzeitig sicher zu stellen, dass die 
Werkstücke nie länger als 1s warten müssen.

Ich würde es zunächst mit der Gantt-Chart-Methode versuchen:
1. Definition der Ressourcen (Transporter, Hauptstation, Nebenstation1, Nebenstation2, ...)
2. Ressourcen zunächst beispielhaft fixe Zeiten zuweisen.
3. Gantt-Chart für beispielhafte Zeitenkonstellation aufstellen.
4. Stationären (sich wiederholenden) Zustand ermitteln.
5. Berechnungsfunktion aus stationärem Zustand ableiten (versuchen).

Habe eine ähnliche Aufgabe mal mit Hilfe des Gant-Charts gelöst, allerdings waren hier die Bearbeitungszeiten fix. Grundsätzlich kommst Du meiner 
Meinung nach aber um eine Berechnung der jeweiligen Zeitkonstellation bei gegebenen Bearbeitungszeiten und Nachbearbeitungskonfigurationen 
nicht herum... Das Gantt-Chart hilft aber vielleicht die erforderliche Berechnungsfunktion zu ermitteln.

Interessante Aufgabe! Grüße, Dk.


----------



## Ralle (9 August 2009)

Ich bin doof und versteh das immer noch nicht. Wie sollen die Werkstücke da nicht länger als 1 Sekunde liegen, wenn sie 10 Sekunden und länger bearbeitet werden?

Du siehst, eine exakte Formulierung der Aufgabe ist eine Kunst für sich.


----------



## tongle (10 August 2009)

Danke für eure Antworten.

Es ist wirklich sehr schwierig zu erklären vor allem schriftlich, jedoch Deichkind hat mein Problem genau erkannt.

Ich muss meinen Transporter maximieren u. gleichzeitig sicherstellen das das Werkstück nach der Bearbeitungsdauer nicht länger als 1s auf der jeweiligen Station liegen bleibt.


----------



## Larry Laffer (10 August 2009)

Hallo,
die Schwierigkeit, die du hast, das Problem vernünftig zu beschreiben, wird sich beim Programm-Erstellen wiederholen.
Um einen (wie-auch-immer-gearteten) Algorhythmus zu erstellen sollte man die Spielregel (möglichst einfach) beschreiben können. 

Ansonsten sehe ich das auch so wie Deichkind. Je mehr Konstanten (feststehende Zeiten) du hast umso größer ist die Chance ein sinnvolle Berechnungs-Routine zu erstellen. Hierbei würde ich jetzt die maximale Verweilzeit nicht in den Vordergrund stellen - das ist m.E. nicht genau kalkulierbar ...

Gruß
LL


----------



## Elektri(c)ker (11 August 2009)

Hallo tongle,
so wie ich das sehe werden Dir auf Deinem Weg noch ein paar Punkte über den Weg laufen. So ist die Frage wie Du die variablen Bearbeitungszeiten an den Nachbearbeitungsstationen feststellen willst (Stoppuhr & manuelle Eingabe ins HMI oder per Referenzdurchlauf ermitteln lassen?). Auch bei der maximalen Verweildauer an den Stationen sehe ich Probleme. Da ständig alle laufenden Prozesse überwacht werden müssen und nach der Berechnung der zur verfügungstehenden Zeit entweder ein neues Teil eingelegt werden kann oder eine fast fertige Station angefahren werden muß. Bei mehreren Stationen sehe ich die Gefahr, dass durch Wartephasen vor fast fertigen Stationen die Auslastung leidet. Wodurch sich jetzt die Frage stellt was wichtiger ist: Produktivität oder die maximale Verweildauer von 1s?


----------



## tongle (12 August 2009)

Hallo Elektri(c)er

Die Zeiteingabe für die jeweilige Station erfolgt über das HMI, diese Eingabe kann jedoch von Kunde zu Kunde unterschiedlich sein, deshalb können sich meine Zeiten variieren.
Bei dieser Maschine muss das Hauptaugenmerk auf die Verweildauer gelegt werden, natürlich sollte auch die Produktivität nicht komplett darunter leiden.
Deshalb kann man bei den Nachbearbeitungsstationen bis zu 10Stk installieren,
welche dann den Durchsatzverlust auffangen sollen.


----------



## Elektri(c)ker (12 August 2009)

Hallo tongle,
Deine Aussage wirft bei mir noch ein paar Fragen auf:
- können die Nachbearbeitungsstationen alle das gleiche?
- werden unterschiedliche Stationen mit "gleichen" Stationen kombiniert?
  (z.B. 1 x Station Schritt 1 (Hauptstation), 2 x Station Schritt 2, 2 x Station Schritt 3 ...)
- werden Stationen benutzt die mehrere Plätze haben / Revolvermagazin?

Gruß Erik


----------



## tongle (12 August 2009)

Hallo Elekti(c)er

- können die Nachbearbeitungsstationen alle das gleiche?
wenn der Kunde es Wünscht können alle Nachbearbeitungsstationen das gleiche.

- werden unterschiedliche Stationen mit "gleichen" Stationen kombiniert?
  (z.B. 1 x Station Schritt 1 (Hauptstation), 2 x Station Schritt 2, 2 x Station Schritt 3 ...)
Der Ablauf könnte so aussehen wie du es geschrieben hast, d.h. sie können kombiniert werden.

- werden Stationen benutzt die mehrere Plätze haben / Revolvermagazin?
Ja

Gruß


----------



## Elektri(c)ker (13 August 2009)

Hallo tongle,

Du möchtest, wenn ich es richtig verstanden habe, eine Steuerung programmieren, die universell einsetzbar und frei konfigurierbar ist
und die von Dir beschriebenen Anforderungen (geringe Verweilzeit an den Stationen) erfüllt (eierlegende Wollmilchsau).

Ich würde es so probieren:
Nach jedem "Pick-Put"-Vorgang die verbleibenden Zeiten mit der maximalen Zeit eines "Pick-Put"-Vorganges zur Station 1 + der Fahrt zur nächsten Station (eventuell mit einer kleinen Reserve) 
-ca. 30s+Reserve - vergleichen. Sind alle Zeiten größer als die benötigte würde ich ein Werkstück nachlegen. Wenn nicht würde ich zur nächsten fertig werdenden Station fahren um die Zeit einzuhalten, die das Werkstück fertig an der Station liegt.
Wobei ich allerdings noch eine Priorität und eine eventuelle festgelegte Reihenfolge prüfen würde (ist eine andere Station wichtiger/ist die Folgestation frei).

Bei Deiner Idee die ganze Sache im Vorfeld zu berechnen, schließe ich mich Deichkind und Larry Laffer an : zu viele Variablen, zu wenig Konstanten.

Ich muß gestehen das meine Überlegung recht einfach gestrickt ist und ein längeres Liegenbleiben des Werkstücks von 1s bei einer hohen Auslastung der Anlage nicht unbedingt gewährleistet ist, ich hoffe jedoch das es für Dich ein guter Ansatz ist.

Gruß Erik


----------

