Förderstrecke

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Schmiedi,

fängst du bei deiner Wegsuche auch schon Störungen usw. ab? So, das du Altanativrouten berechnest.

Habe es nun endlich geschaut, die kürzesten Wege usw. zu finden. Kann auf einer alten 315-2DP (315-2AG10-0AB0) bis zu 40 Knoten pro Zyklus berechnen und bin dann bei ca. 80ms.

Danke an Euch allen für die Tipps, die ihr mir soweit geben konntet.
 
Hi,

ich hab mich mit dem Thema auch mal auseinander gesetzt. Aber braucht man auf einer SPS überhaupt die Angabe wie lange der Weg ist.
Meiner Meinung nach wäre es einfacher das ganze über eine Adjazenzmatrix zu lösen und die Kanten nur als binäre Information zu speichern.

Beispiel Graph:
graph.jpg

Hierzu würde die Adjazenzmatrix (Nachbarschaftsmatrix) wie folgt aussehen.
[FONT=&quot]
[/FONT]
matrix.jpg

Für jede Kante ist eine 1 (TRUE) einzutragen der Rest wird mit 0 (FALSE) gefüllt.
Somit lässt sich recht einfach ein Weg suchen und bei richtiger Anordnung der Knoten auch der kürzeste bzw. der mit den wenigsten Kanten.

Gruss Daniel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Auch kein schlechter Ansatz, aber wie würdest du 2 Routen bewerten, wobei eine aus einer Kante besteht, aber der Transport von A nach B dauert 15 min., weil diese Strecke einfach so lange ist, die zweite Route besteht aus 3 Kanten aber der Transport würde nur 4 min. dauern.
 
Hi,

durch die Anordnung in der Matrix (Nummer Knoten) das diese einfach als erste genommen wird und als zweites die längere Route.

Gruss Daniel
 
Das ich durch ein Labyrith von Knoten und Kanten komme, reicht diese Matrix. Allerdings muss ich mir selbst als Programmierer mit der Matrix auseinandersetzen, wie ich diese gestalte. Wenn ich es richtig verstanden habe, sucht dieser Algorithmus den erst besten Weg, mit dem er durch das Labyrinth kommt, und nicht den günstigsten. So weit, so gut. Aber es ist ein starres System. Wie gesagt, ich muss mir Gedanken mache, wie ich dies Matrix anlege, und kann sie nicht zur Laufzeit ändern. Anders der Ansatz von Dijkstra. Um beim Beispiel von Wikipedia zu bleiben, ist der kürzeste Weg Frankfurt-Würzburg-Nürnberg-München. Mal angenommen, es ist ein Unfall auf der Strecke zwischen Würzburg-Nürnberg. Dann würde ich nach dem Ansatz der Adjazenzmatrix im Stau stehen. Nach dem Dijkstra-Algorithmus könnte ich zusätzliche Kosten auf den Kanten addieren, und könnte zur Laufzeit eine andere Route wählen. Natürlich nur, wenn ich noch nicht auf der Strecke unterwegs bin, sondern vor der Kreuzung stehe.

mfg
Stipo
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

ne, einfach in die entsprechende Verbindung eine 0 schreiben und einen anderen Weg suchen. So ähnlich musst du das ja bei Dijkstra auch machen nur das halt hier wahrscheinlich eine Structur für eine Kante genommen wird.

Gruss Daniel
 
Hi,
auch ich beschäftige mich im Moment mit der Wegfindung und in diesem Zusammenhang mit dem Dijkstra-Algorithmus. Beim Lesen der Beiträge hier hat sich folgende Frage ergeben:
Wenn ich die Berechnung ohne Beachtung der Kantengewichte/Kosten oder mit dem Wert 1 bei allen Kanten durchführe erhalte ich ja trotzdem Routen. Ob diese die Kürzeste ist kann ich ja auch errechnen. Wie realisiere ich jetzt aber die Berechnung, wenn ich bestimmte Knoten definitv benutzen will oder definitiv nicht benutzen will? Im Moment lösche ich die Kanten einfach aus der Route bei Nichtbenutzung, aber das erscheint mir als nicht sehr praktikabel.

Gruß Kalle
 
Zuletzt bearbeitet:
Zurück
Oben