# Sortierstrecke (Loop)



## SinusQuadrat (28 September 2007)

Ich brauche mal einen Denkanstoß für ein fördertechnisches Problem:
Es gibt eine "Sortierstrecke" bestehend aus zwei einzelnen förderern, die an den Enden mit Eck-Umsetztern miteinander verbunden sind (Loop)
An den Förderern 1 und 2 gibt es x, bzw y Arbeitsstationen, die Behälter auf den Loop einschleusen.
Die eingeschleusten Behälter werden in der Regel irgendwo auf dem Loop an einer anderen Arbeitsstation ausgeschleust, können aber auch "Ehrenrunden" drehen, 
oder aber am Ende des zweiten Förderers raus fahren (Eck-Umsetzter in diesem Falle deaktiviert).

Nun zu meinem Problem:
Wie schaffe ich es, dass alle Arbeitsstationen bei der Fensterreservierung gleich behandelt werden.
Der Algorithmus ist folgender:
Meldet sich eine Station an, so wird auf dem Loop von der Einschleusposition aus rückwärts ein freies Fenster gesucht, gefunden und reserviert. 
Fenster werden mit jedem Impuls um z Einheiten vorwärts bewegt. Irgendwann ist die Position des reservierten Fensters = Einschleusposition (exakte Pos. wird mit Lichttaster erfasst), es wird dann eingeschleust, usw.....
Der Algorithmus behandelt nicht alle Einschleusungen gleich, die hinteren werden benachteiligt, weil die vorderen die Fenster für sich reservieren.
Implementierung einer Suchtiefe bei der Fensterreservierung hat nicht viel gebracht. Prioritäten vergabe bei der Anmeldung hat auch nicht sooo viel Erfolg gebracht.
Zur Zeit versuche ich jedes x-te Fenster für die hinteren Einschleusungen frei zu halten (reservierbar, ab Pos zz)  ohne vorher zu wissen, dass sie auch reserviert werden, das geht natürlich auf die Leistung, wenn die frei gehaltenen Fenster von den hinteren Einschleusern doch nicht benutzt werden....

Hat Jemand eine Idee wie man die Einschleuser halbwegs gleich behandeln könnte, ohne die Leistung des Loops (xx Behälter/Stunde) nenneswert (10%..15% wären egal) zu reduzieren ? Wie müsste der Algorithmus für die Fensterreservierung sein, damit die Mitarbeiter der hinteren Arbeitsstationen kurz vor Feierabend (alle wollen einschleusen und nach Hause gehen) nicht den dicken Hals kriegen.


----------



## ybbs (1 Oktober 2007)

Ich bin mir nicht sicher ob ich das Problem richtig verstanden habe...

Vielleicht könnte es helfen, wenn Du den hinteren Stationen erlaubst eine Reservierung einer vorderen Station (oder auch nur von bestimmten vorderen Stationen) einmalig zu stornieren und deren Reservierung für sich zu beanspruchen. Die vordere Station müsste sich dann ein neues freies Fenster reservieren.

Ziel wäre, die Fensteranzahl zwischen Einschleusposition und "freiem" bzw. reservierbarem Fenster bei vorderen und hinteren Stationen anzugleichen. 

Wenn also eine Station im Mittel 20 Fenster zwischen reservierbarem Fenster und Einschleusposition hat, so kann diese alle Reservierungen von Stationen deren Mittel kleiner 20 ist stornieren.

Einigermaßen verständlich? Oder meintest Du das mit "Prioritätenvergabe" ?


----------



## SinusQuadrat (4 Oktober 2007)

Danke für die Idee. 
Das scheint eine "brutale" Lösung zu sein, würde wahrscheinlich gut funktionieren. Je nach Füllstand und Anzahl der Anmeldungen, könnte man die Sequenz laufen lassen. Das Problem ist, dass ich meine Programmstrukturen dafür anders machen müsste, was nicht auf die schnelle geht. Anfang nächsten Jahres wird die Anlage erweitert, bis dahin werde ich versuchen je nach Rückmeldung des Kunden, unter anderem diese Idee zu implementieren.


----------



## dtsclipper (5 Oktober 2007)

Ich hatte ein ähnliches Problem.
Jetzt läuft auf der Strecke ein FiFo-Register, das die Ausschleusungen in Sequenz auf die Hauptstrecke antriggert.
Jede Anmeldung wird also in das FiFo eingetragen und dann in dieser Reihenfolge auf freie Plätze gefahren.
funktioniert vortrefflich.

Grüße dtsclipper


----------



## SinusQuadrat (6 Oktober 2007)

Ein Anmelde-Fifo hatte ich auch, aber mittlerweile ist es deaktiviert, weil das Problem nicht die Reihenfolge der Anmeldung ist. Ich klapperer alle Einschleuser ab und frage ob sie was einzuschleusen haben, das passiert in umgekehrter (entgegen der Fahrtrichtung) Reihenfolge. Da für jeden Einschleuser garantiert ein Fenster frei ist (man definiert so viele Fenster mehr wie Anzahl der Einschleuser als für den Sorter notwendig).  Wenn sich eine hintere Station angemeldet hat, egal mit oder  ohne Fifo, bekommt es auf jedenfall vor den ersten Stationen  ein Fenster reserviert.  Eine vordere Station kommt beim Reservieren immer später dran. Das Problem ist nun, während das Fenster  für die hintere Station unterwegs ist, Ist das Fenster der vorderen Station schon in Position und die Station schleust ein, obwohl das Fenster später reserviert wurde. Im Extremfall kommt eine vordere Station bis zu 3 mal dran bevor das für die hintere Station reservierte Fenster auf Einschleuspositon der hinteren Stationen ist. Somit sind auf dem Sorter immer weniger Fenster für die hinteren Stationen frei. Die hinteren Stationen müssen immer die entfernteren Fenster reservieren, die sind aber lange unterwegs. usw....
Mit einem Fifo würden die vorderen Stationen indirekt bevorzugt behandelt, weil sie früher einschleusen und sich sofort wieder anmelden, während die hinteren auf ihre Fenster warten und sich erst anmelden können, wenn sie eingeschleust haben.


----------

