Daten sortieren

A

Anonymous

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, beim durchsuchen des Internets nach hilfreichen Ideen bin ich auf diese Seite gestoßen und hoffe, daß mir vielleich hier jemand helfen kann.

Ich habe folgendes Problem:

Ich habe eine Koordinatenabfüllanlage zum befüllen von Fässern. (X-Y-Achse). Diese Anlage soll jetzt mit einem Bildverarbeitungssytem ausgestattet werden, damit die Löcher der Fässer nicht mehr manuell angefahren werden müssen, sonder dieses soll automatisch erfolgen.

Das Problem an der ganzen Sache ist , daß die von dem Bildverarbeitungssystem gelieferten Koordinaten nach der Erkennungsgüte sortiert sind. Das führt dazu, daß die Anlage sehr viele unsinnige Wege zurück legt, bevor der Abfüllvorgang beendet wird.

Das zweite Problem ist, daß die Koordinaten, die von der Anlage angefahren werden, vor dem Start in einem FIFO-Speicher abgelegt werden müssen. Das bedeutet also, daß die Daten vorher sortiert werden müssen bevor sie an den FIFO-Speicher übertragen werden.

Ich hoffe Ihr könnt mir da irgendwie helfen die Daten sinnvoll zu sortiern.
Das Optimum wäre natürlich der kürzeste Weg!!!

Vielen Dank im vorraus!!!

MFG Gregor
 
Gregor schrieb:
Das Problem an der ganzen Sache ist , daß die von dem Bildverarbeitungssystem gelieferten Koordinaten nach der Erkennungsgüte sortiert sind. Das führt dazu, daß die Anlage sehr viele unsinnige Wege zurück legt, bevor der Abfüllvorgang beendet wird.
Wolltest du schreiben "sortiert werden sollen"? Ansonsten verstehe ich nicht, warum du nach Daten sortieren fragst, wenn die doch schon sortiert sind. Mußt du nur die gut erkannten Fässer füllen oder alle? Oder willst du statt nach der Güte nach den Koordinaten sortieren?

Zum sortieren siehe diesen Thread:
http://www.sps-forum.de/phpBB2/viewtopic.php?t=1960&highlight=bubble+sort

Dort findest Du einen fertigen FC, der das nicht sehr effiziente "Bubble Sort"-Verfahren in AWL implementiert. Im selben Thread findet sich ein Link zu einer Web-Seite, die Sortierverfahren grundsätzlich erklärt und mittels JAVA-Applets darstellt.

Das zweite Problem ist, daß die Koordinaten, die von der Anlage angefahren werden, vor dem Start in einem FIFO-Speicher abgelegt werden müssen. Das bedeutet also, daß die Daten vorher sortiert werden müssen bevor sie an den FIFO-Speicher übertragen werden.
Ich hoffe Ihr könnt mir da irgendwie helfen die Daten sinnvoll zu sortiern.
Das Optimum wäre natürlich der kürzeste Weg!!!
Dieses Optimum ist für beliebige Koordinaten sehr schwer zu erreichen. Es müßte auf das Problem des "travelling salesman" hinauslaufen: Ein handlungsreisender soll auf einem möglichst kurzen Rundkurs Städte an gegebenen Koordinaten besuchen. Das wirliche Optimum läßt sich nur finden, indem alle Möglichen Routen probeweise berechnet werden (brute force). Der Aufwand steigt mit n-Fakultät. Unter dem Stichwort "travelling salesman problem" wirst du eine Menge dazu finden.
Ohne die Anordnung deiner Fässer zu kennen, würde ich (ohne gründlich nachzudenken) folgenden Ansatz vorschlagen:
Du teilst das Areal, in dem die Fässer stehen, in eine X-Y Matrix ein, deren Einheit ein Faßdurchmesser ist. Durch Runden der Koordinaten auf den nächsten ganzen Faßdurchmesser findest du den Platz des Fasses in der Matrix. Du sortierst die Fässer z.B. nach der Zeile. In jeder Zeile sortierst du die enthaltenen Fässer in ungeraden Zilen von links nach rechts, in geraden Zeilen von rechts nach links.
Deine Anlage kann nun links oben beginnend die erste Reihe Fässer füllen, wobei zusätzliche Wege zur "Feinpositionierung" von höchstens einem Faßdurchmesser in X und Y gefahren würden. Am Ende der 1.Zeile positioniert sie in die 2., die nun von rechts nach links bearbeitet wird.
 
Zurück
Oben