Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 27

Thema: Förderstrecke

  1. #11
    Registriert seit
    25.11.2006
    Beiträge
    13
    Danke
    0
    Erhielt 3 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich habe selbst in einer gelangweilten Minute einen Baustein geschrieben, der den Weg für LHM's durch eine Fördertechnik sucht. Dieser Baustein ist auf dem Dijkstra-Algorithmus aufgebaut.

    http://de.wikipedia.org/wiki/Dijkstra-Algorithmus

    Allerdings ist dieser Baustein sehr allgemein gehalten, weil eine Fördertechnik immer anders aussieht.

    Wenn ich deine Zeichung richtig interpretiere geht es dabei um eine Art Rohrpostanlage.

    Wobei geht es um eine Wegverfolgung? Wer bin ich, wo bin ich und wo muss ich hin.

    Was ich bei der Sache noch nicht ganz verstehe:
    - wird vor jeder Weiche identifiziert und danach die Weiche gestellt
    - werden die LHM's identifiziert auf die Reise geschickt (Barcode, RFID, ...) oder sind sie nicht identifiziert
    - muss bei einem Start die ganze Strecke reserviert werden? Wenn ich ein LHM von S1 nach Z5 schicke, muss ich dann sofort alle Weichen stellen, oder erst dann, wenn ich vor der Weiche stehe?
    - Warum muss ich wissen, woher ich komme, und den gleichen Weg wieder zurückgehen?

    Gruß
    Stipo
    Man sollte sich die Ruhe und Nervenstärke eines Stuhles zulegen.
    Der muss auch mit jedem Arsch klar kommen!

  2. #12
    Registriert seit
    16.04.2011
    Beiträge
    8
    Danke
    1
    Erhielt 3 Danke für 1 Beitrag

    Standard

    Hi,

    ich habe schon einmal auf dieser Art und Weise eine Förderanlage mit ca. 400 Stellgliedern und 400 Motoren realisiert. In der SPS lief eine Art Autorouter die rekursiv aufgerufen wurde. Hierbei musste man lediglich aufpassen, dass die Zykluszeit nicht überschritten wird. Diese Kontrolle wurde durch einen Abbruch der Schleife realisiert. Die Route konnte in einer Excelliste erstellt werden, aus der wiederum ein Strecken-DB kreiert wurde. In diesem, Strecken-DB wurden die Knoten als Vorgänger und Nachfolger gespeichert. Für Anlagen mit vielen Antrieben und Stellgliedern halte ich die Art für sehr gut. Die Funktionalität kann bereits im Büro getestet werden.

  3. #13
    Registriert seit
    12.06.2007
    Beiträge
    20
    Danke
    1
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Morgen miteinander,

    also ich will mal einen anderen Denkansatz in den Raum werfen.
    Wenn ich sowas programmiere, dann versuche ich die Förderstrecke mit den Packeten in einem Schieberegister abzubilden. Voraussetzung dafür ist die Verfolgbarkeit der Packete. Dafür braucht man eine Förderstrecke mit einem Geber und die Packete dürfen nicht verrutschen (ihre Position unkontrolliert verändern).
    Wenn diese Voraussetzung gegeben sind, dann lege ich ein Schieberegister mit folgenden Positionen an:
    1. Aufgabeposition
    2. Position an der Weiche 1
    3. Position nach Weiche 1
    4. Position an der Weiche 2
    5. position nach Weiche 2
    ....

    (je nach Abstand zwischen den Weiche und Größe der Packete muß man noch Zwischenpositionen einfügen)

    Wird nun ein Packet aufgegeben, dann schreibe ich in das Registerfach "Aufgabeposition" : Packet vorhanden, Abwerfen an Weiche x, Position des Packetes
    Das Packet wird befördert (Position wird immer aktualisiert), erreicht es die Position vor der Weiche 1, dann werden im Schieberegister die Daten aus dem Fach "Aufgabeposition" in das Fach "Position an der Weiche 1" verschoben.
    Das Packet wird weiter befördert, erreicht es die Position nach der Weiche 1, dann werden im Schieberegister die Daten aus dem Fach "Position an der Weiche 1" in das Fach "Position nach der Weiche 1" verschoben.
    Vorteil von diesem System: es können mehrere Packete auf der Strecke sein. Jede Weiche muß immer nur ihr eigenes Registerfach kontollieren
    "Position an der Weiche x". Ist nun ein Packet an der Weiche x vorhanden, so wird die Weiche gestellt und die Daten von diesem Packet nach dem ausschleusen gelöscht.
    Wenn ihr eine schnelle Mechanik habt und die Packete sind verfolgbar könnt ihr Packete im Sekundentakt aufgeben, egal wie lange die Strecke ist.

    Gruß
    spskarl

  4. #14
    Registriert seit
    17.07.2009
    Ort
    Am Rande der Ostalb
    Beiträge
    5.538
    Danke
    1.152
    Erhielt 1.253 Danke für 982 Beiträge

    Standard

    Zitat Zitat von spskarl Beitrag anzeigen
    also ich will mal einen anderen Denkansatz in den Raum werfen.
    Wenn ich sowas programmiere, dann versuche ich die Förderstrecke mit den Packeten in einem Schieberegister abzubilden.
    Dein Ansatz hat wenig mit dem hier genannten zu tun. Hier geht es um automatische Zielfindung bzw Wegefindung. Du machst Teileverfolgung. Bei dir muss jede Weiche "wissen", wie sie alle nachfolgende Ziele handeln muss. Beim hier vorgestellten Verfahren, wird ein Weg vom Ziel ausgehend zur aktuellen Weiche gesucht.

    Gruß
    Dieter

  5. #15
    Registriert seit
    17.09.2003
    Ort
    Zell bei Dietfurt a.d. Altmühl
    Beiträge
    358
    Danke
    8
    Erhielt 27 Danke für 25 Beiträge

    Standard

    Zitat Zitat von useroo7 Beitrag anzeigen
    Hi,

    ich habe schon einmal auf dieser Art und Weise eine Förderanlage mit ca. 400 Stellgliedern und 400 Motoren realisiert. In der SPS lief eine Art Autorouter die rekursiv aufgerufen wurde. Hierbei musste man lediglich aufpassen, dass die Zykluszeit nicht überschritten wird. Diese Kontrolle wurde durch einen Abbruch der Schleife realisiert. Die Route konnte in einer Excelliste erstellt werden, aus der wiederum ein Strecken-DB kreiert wurde. In diesem, Strecken-DB wurden die Knoten als Vorgänger und Nachfolger gespeichert. Für Anlagen mit vielen Antrieben und Stellgliedern halte ich die Art für sehr gut. Die Funktionalität kann bereits im Büro getestet werden.
    Hallo user007,
    das sieht aber nach einer mächtigen Anlage aus, die du da nach diesem Prinzip gemacht hast. Hab jetzt über Ostern etwas pausiert und mir nun wieder etwas den Kopf zubrochen. So wie ich das sehe, hast du die mal alle möglichen Wege in Excel zusammengestrickt und daraus eine DB mit den möglich Routen erstellt oder? Was mich aber jetzt noch etwas irritiert, ist die Speicherung der ganzen Informationen und die Dauer der Wegsuche. Du bist also im SPS Programm jeden wegen vom Ziel ab durchgegangen, bis du den Startpunkt erreicht hast? Diesen weg hat du wieder wo anders gespeichert oder? Wenn du den Weg nun gefunden hat, hast du deine Förderkette gestart. Darf man fragen, welche CPU du für diese Sache verwendet hast?

    Wie ich das so sehe wird das noch ein recht interessantes Thema, da es immer wieder Anwendung für sowas gibt.
    MfG

    Hubert

    \"Never change a running system. \"

  6. #16
    Registriert seit
    16.04.2011
    Beiträge
    8
    Danke
    1
    Erhielt 3 Danke für 1 Beitrag

    Standard

    Hallo Hubert,

    ich muss zugeben, dass war bisher unsere größte Anlage. Im Normalfall liegen wir bei ca. 150 Stellgliedern und ca. 150 Antriebe sowie ein paar Waagen. Aber zu Deiner Frage. Wir setzen mindestens eine 412´er ein. In sehr aufwendigen Anlagen kommt eine 416´er zum Einsatz.

    Die Wegsuche hat Ähnlichkeit mit dem Dijkstra-Algorithmus. Der Knoten ist nicht der Antrieb/Stellglied, sonden die Kante (Verbindung von einem Aktor zum nächsten) der gesamte Strang wird wie ein Potential angesehen und wird durchnummeriert. Antriebe und Waagen kennen nur einen Nachfolger, Stellglieder maximal zwei. Sobald ein Stellglied festgestellt wird, wird ein Weg weiter verfolgt, bis ein Ziel erreicht ist. Ist dieses Ziel nicht das richtige, dann wird bis zum letzten Stellglied zurückgegangen und der andere Weg beschritten. Der zuvor beschrittene Weg wird markiert. Dieser Vorgang wird solange durchgeführt, bis das richtige Ziel erreicht ist. Im Fall der größten Anlage die wir bisher damit umgesetzt haben, benötigten wir im ungünstigsten Fall ca. 10 Sekunden mit einer 416´er CPU und 6 Komponenten. Der Anwender wurde über eine Visualisieung (WinCC) darüber informiert, dass der Weg berechnet wird. Zum Zeitpunkt der Umsetzung kannten wir den Dijkstra-Algorithmus noch nicht. Würden wir diesen Standard noch einmal umsetzen, dann würden wir wahrscheinlich den o.g. Algorithmus programmieren. Der Vorteil liegt darin, dass durch eine Parametrierung der Kanten in Abhängigkeit der Situation flexibler auf Anlagenspezifikationen (z.B. Weg sperren bis gereinigt oder bestimmte Materialien dürfen nur über einen bestimmten Weg gefördert werden) eingegangen werden kann.

    In der Exceldatei wird eine Art Landkarte von der Anlage abgebildet und mit einem eigens dafür geschriebenen Programm ein DB generiert. Damit die SPS nicht in die Zyklusüberwachung läuft, unterbrechen wir je nach Anlagenumfang nach 50-100 Schritte die Berechnung. Ein Schritt entspricht ein Sprung von einem Knoten zum nächsten bzw. wieder zurück. Pro Startknoten wird ein Weg berechnet, so dass pro Auftrag (mehrere Komponenten) mehrere Wege berechnet werden müssen. Ein übergeordneter Koordination-FB sorgt für die Synchronisierung (z.B. gleichzeitige Freigabe der ersten Schieber unter den Silos, Anhalten alle Wege bei Störungen usw.) der unterschiedlichen Wege. Schließlich muss sichergestellt werden, dass alle Komponenten in der richtigen Menge gefördert werden.

  7. #17
    Registriert seit
    17.09.2003
    Ort
    Zell bei Dietfurt a.d. Altmühl
    Beiträge
    358
    Danke
    8
    Erhielt 27 Danke für 25 Beiträge

    Standard

    Hallo Leute,

    bin momentan auch drüber, solch eine Förderwegssuche in Anlehnung an den Dijkstra-Algorithmus zu schreiben. Was ich aber bis jetzt ausgeklammert habe, war die Sache mit dem kürzesten Förderweg, da die ja recht komplex sein kann. Das System funktioniert bis jetzt sehr gut, nur bei einer Anlage macht jetzt die Sache ohne kürzesten Förderweg ein kleines Problem. In dieser Anlage sind einige Handschieber drinnen, von denen ich keine Meldung bekommen, in welcher Stellung sie sind. Der Betreibe stellt sie selbst und sucht sich natürlich den kürzesten Förderweg für sein Produkt aus. Was zu einem Problem wird. Er sucht sich halt bis jetzt immer den Fördweg mit den wenigsten Antriebe von der Quelle bis zum Ziel heraus und stellt dann die Handschieber, wie er sie braucht. Und hier ist das Problem, wie kann ich am einfachsten ermitteln, was der Weg von der Quelle über ein paar Zwischenziele bis zum Ziel ist? Bei mit stellt jeder einen Knoten mit teilweise bis zu 3 Abzweigen da (auch folge von Handschiebern). Ich müsste nach momentanen stand von jeden Abzweig das Ziel suche, was die SPS sehr stark beansprucht und somit auch die Förderwegssuche sehr lange dauern würde.
    Ich hoffe ihr könnte mir ein paar tipps geben, wie ihr das Problem lösten könnt, da ich momentan mit meinem Latein, etwas am Ende bin.
    Bin auch euere Vorschläge gespannt.

    Es gibt da ja auch was von Siemens für PCS7 "Route Control", aber das wäre da schon recht heftig. Ich hoffe doch, das es auch eine Lösung gibt (abgespekt) die auch in einer größeren S7-300 bzw. 400er läuft.
    Das wäre die Präsentation zum Siemensprodukt:
    http://www.automation.siemens.com/mc...steuerung.aspx

    Ich weis jetzt nur nicht, ob die bei ihrem System auch den kürzesten Weg berechnen?
    Den so wie ich das auf den Videos gesehen habe, ist da nix von einem Abstand zwischen den einzelnen Punkten angegeben worden
    Geändert von hubert (29.05.2011 um 22:45 Uhr)
    MfG

    Hubert

    \"Never change a running system. \"

  8. #18
    Registriert seit
    17.09.2003
    Ort
    Zell bei Dietfurt a.d. Altmühl
    Beiträge
    358
    Danke
    8
    Erhielt 27 Danke für 25 Beiträge

    Standard

    Hallo,

    scheinbar eine recht harte Nuss. Mit Längenangaben wäre es denk ich einfacher. Aber Siemens hat es auch irgendwie gelöst.
    Bin mal gespannt auf euere Antworten.
    MfG

    Hubert

    \"Never change a running system. \"

  9. #19
    Registriert seit
    17.09.2003
    Ort
    Zell bei Dietfurt a.d. Altmühl
    Beiträge
    358
    Danke
    8
    Erhielt 27 Danke für 25 Beiträge

    Standard

    Hallo Leute,

    hat den keiner für mich eine Tipp, wie ich dieses Problem mit dem kürzesten Weg in den Griff bekomme?
    Hab momentan auch noch das Problem mit dem Besuchtmarkierung der einzelen Knoten. Soll heiß, immer wenn ich zu einem Knoten komme, merk ich mir den als Besucht, so das bei mehreren Abzweigungen in einem Knoten nicht immer der erste besucht wird und die anderen frei bleiben. Hab das Problem nun, wenn ich die wege zurück gehe und über einen andere Knoten auf den Knoten komme, der schon über einen anderen Knoten besucht wurde, so wird abgebrochen, da ich ja nicht ans Ziel gekommen bin bzw. es zu einer Kollision mit einem anderen Förderweg gekommen ist.
    Steh da momentan richtig auf dem Schlauch, wie ich das Problem löse. Ich hoffe die Profis unter euch können mir einen Tipp geben. Die Hauptproblem hab ich eigentlich nur durch die Option Zwischenziel.

    Bin für jeden Tipp von euch sehr Dankbar.
    MfG

    Hubert

    \"Never change a running system. \"

  10. #20
    Registriert seit
    25.11.2006
    Beiträge
    13
    Danke
    0
    Erhielt 3 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Abend!

    Ich habe die Landkarte in einem DB angelegt.

    Die Struktur ist im DB4 zu finden. Darin sind folgende Nodes angelegt:
    - Node 1: Frankfurt
    - Node 3: Würzburg
    - Node 8: Nürnberg

    Jede Kante besteht aus folgenden Informationen:
    k00010002 : STRUCT
    node : DINT := L#1; //Node-ID: Frankfurt - Mannheim
    destination : DINT := L#2; //Destination
    costs : INT := 85; //costs between source and destination
    overhead : INT ; //costs because of traffic
    calcosts : DINT ; //calculated costs of route --> cheapest way
    checked : BOOL ; //node is checked
    END_STRUCT ;

    node, destination, costs und overhead müssen ausgefüllt werden, calcosts und checked wird vom FB bei der Berechnung ausgefüllt.

    Die Kosten würde ich als Zeit hinterlegen, zB in Sekunden. Wie lange braucht ein LHM, um von A nach B zu kommen. Der Weg macht keinen Sinn, weil es einen Unterschied macht, ob man 10m mit 1m/s oder mit 5m/s zurücklegt. Somit ergibt die Wegsuche den schnellsten Weg (die kürzeste Zeit von A nach Z). Der FB arbeitet aus Zykluszeitgründen nur einen Knoten pro Zyklus ab.

    Im ersten Durchgang werden die berechneten Kosten und die checked-Flags zurückgesetzt.

    Im zweiten Durchgang wird die Beziehung geprüft zw. Node und Destination. Ist diese Kante interessant und muss diese berechnet werden. Wenn ja, werden die Kosten aktualisiert, und das checked-Flag gesetzt.

    Sind alle interessanten Kanten geprüft, werden im 3. Durchgang nochmals alle Knoten durchgeprüft, und die Destination abhängig von den günstigsten calcosts wird ausgegeben.

    Im Beispiel von Wikipedia wird von Frankfurt nach München gefahren und der ganze Weg berechnet. Dies ist im angehängten DB4 als Landkarte hinterlegt.
    Angehängte Grafiken Angehängte Grafiken
    Angehängte Dateien Angehängte Dateien
    Man sollte sich die Ruhe und Nervenstärke eines Stuhles zulegen.
    Der muss auch mit jedem Arsch klar kommen!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •