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

Ergebnis 1 bis 10 von 10

Thema: Kontrolle der Verfahrbereiches 2er Achsen auf einer Bahn

  1. #1
    Registriert seit
    19.08.2008
    Ort
    Kreis Höxter
    Beiträge
    4
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    bin ganz neu hier im Forum und habe auch gleich mal eine Frage...

    Die Aufgabe:
    2 Achsen teilen sich eine Schiene. Der Verfahrbereich ist für beide gleich von 0-10000mm. Beide Achsen bekommen unabhängig von einander Befehle zu verfahren immer von A nach B (wobei a und B irgendein Wert innerhalb des Verfahrbereiches ist). Ziel ist es nun in einem SPS Baustein / Programm die einzelnen Verfahraufträge aufzunehmen, überprüfen, ob eine Überschneidung stattfindet und ihn dann ausführt. Findet eine Überschneidung statt, soll die eine Achse erst einmal in die Nähe der zweiten gefahren werden....usw usw
    Verschiedene Möglichkeiten kommen noch hinzu.

    Bis jetzt kenne ich das nur mit NC-Achsen und dieses mal werden die Achsen von der SPS angesteuert (das funktioniert auch )

    Die Frage:
    Hat sich zufällig hier schon mal jemand mit einer Überprüfung des Verfahrweges zweier Antriebe beschäftigt???
    und könnte mal ein paar Tipps geben was die beste Strategie ist, oder evtl. gibt es schon Lösungsvorschläge einiger Hersteller??

    Vielen Dank schon mal im Voraus..


    PS: es handelt sich um eine Boschsteuerung L40 und Boschantriebe (IntraDrive). Programmiert wird in CodeSys/IndraLogic
    Geändert von dborn (19.08.2008 um 10:26 Uhr) Grund: Nachtrag:
    Zitieren Zitieren Kontrolle der Verfahrbereiches 2er Achsen auf einer Bahn  

  2. #2
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Daumen hoch

    Wenn du nen fertigen Baustein willst, würde ich so vorgehen:

    Code:
    VAR_IN
       Start1, Ziel1 : real;
       Start2, Ziel2 : real;
       Abstand : real;
    END_VAR
    
    VAR_OUT
       ZielX1 : REAL; // Geprüft und geg. modifziert;
       ZielX2 : REAL; // Geprüft und geg. modifziert;
    END_VAR
    
    Temp
       v1, v2 : BOOL; // positiv/negative Geschwind.
    END_VAR;
    
       v1 := (Ziel1 > Start1);
       v2 := (Ziel2 > Start2);
      IF v1 THEN
          IF v2 THEN
              ....
    So in diese Richtung mal alle Fälle durchspielen
    "Das Leben ist viel zu kurz, um schlecht zu essen !"
    (Johann Lafer zur SWR3 Grillparty)

  3. #3
    dborn ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    19.08.2008
    Ort
    Kreis Höxter
    Beiträge
    4
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo kiestumpe,
    vielen Dank für deine Antwort, aber ich denke ganz so einfach wird es leider nicht gehen.
    Die 2 Achsen fahren unabhängig von einander und vor allem immer zur gleichen Zeit. D.h.: auch, ich muss während der jeweiligen Aktion auch die aktuelle Position der Gegenachse prüfen.
    Zitieren Zitieren Re: Kontrolle der Verfahrbereiches 2er Achsen auf einer Bahn  

  4. #4
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Standard

    ja, fertig ist der Baustein nicht, aber mit den Start und Zielpositionen der beiden Antrieb müsst das doch herauszufinden sein, oder?
    "Das Leben ist viel zu kurz, um schlecht zu essen !"
    (Johann Lafer zur SWR3 Grillparty)

  5. #5
    Registriert seit
    10.05.2005
    Beiträge
    1.996
    Danke
    220
    Erhielt 233 Danke für 204 Beiträge

    Standard

    Hi

    Wie verfährt du die Achsen ?

    Punktsteuerung ?
    Wie werden die Verfahrbefehle ausgegeben und von "wem" (1 CPU, 2CPUs)

    611 mit Profibus ?
    611 mit 840D + Positionier-FC ?
    Selbst verfahren (Eigener Positionierbaustein)?


    >Ziel ist es nun in einem SPS Baustein
    >Programm die einzelnen Verfahraufträge aufzunehmen, überprüfen, ob >eine Überschneidung stattfindet und ihn dann ausführt.
    Wieviel CPUs / Steuerungen ?

    Welche Anwendung ?
    Möglicherweise 2 CNC-Maschinen mit Palettenwechsler ?


    >Findet eine Überschneidung statt, soll die eine Achse erst einmal in die >Nähe der zweiten gefahren werden....usw usw
    In der nähe der 2.Achse gefahren.
    Was ist wenn die 1.Achse weiter fahren will. Steht dann alles ?


    Ist es sinnvoll, jeder Achse eine Parkposition zu geben.

    Die 1.Achse vergewissert sich, das die 2.Achse nicht in den Kollisionsbebreich fahren will. 2.Achse gibt Bestätigung darüber ab.
    Nach der Bestätigung der 2.Achse fährt die 1.Achse los.


    Will jetzt die 1.Achse fahren, frägt diese die Position der 2.Achse nach einer Freigabebestätigung ab.

    u.s.w.

    Will die 2. Achse in den Kollisionsbereich der 1.Achse fahren -->
    1.Achse fährt z.b. auf Parkposition und gibt der 2.Achse eine Fahrfreigabe.
    Karl

  6. #6
    Registriert seit
    19.11.2006
    Beiträge
    1.346
    Danke
    6
    Erhielt 254 Danke für 231 Beiträge

    Standard

    Ich würde es so machen:

    Die Achsen werden jeweils über einen FB gesteuert, der für beide Achsen identisch ist. Beide FBs "kennen" sich nicht, verfahren die Achsen völlig autark, hören nur auch ihre Fahraufträge.

    Die gesamte möglich Verfahrstrecke würde ich absolut einteilen, z.B. von Anfang bis Ende => 0 ... 10000mm.
    Jede Achse bekommt ihre Verfahrbefehle als Absolutwerte (z.B. fahre von 4500 nach 1000).
    Das übergelagerte Programm vergibt die Fahraufträge.
    Vor der Übergabe des Fahrauftrags muss kontrolliert werden, ob die Istposition der stehenden Achse sich innerhalb des angeforderten Verfahrwegs der anderen Achse befindet.

    Hat eine Achse ihren Verfahrauftrag erhalten, wird ein entsprechendes Flag gesetzt (z.B. "Achse hat Fahrauftrag). Nach Beendigung des Fahrauftrags wieder gelöscht.
    Sobald dieses Flag bei einer der Achsen gesetzt ist, wird vor Erteilung des Fahrauftrags an die nicht-fahrende Achse geprüft, ob folgende Bedingung erfüllt ist:

    Wenn...
    Startposition A < Zielposition A (A fährt positiv), muss Zielposition B > Zielposition A sein.
    Wenn...
    Startposition A > Zielposition A (A fährt negativ), muss Zielposition B < Zielposition A sein
    (natürlich mit entsprechenden Sicherheitsabständen)

    Als nächstes kann die aktuelle Position einer Achse herangezogen werden. Falls beide Achsen gleich schnell fahren, genügt u.U. die Kontrolle der Zielpositionen, da ein "Auffahren" nicht möglich ist. Falls nicht, muss die übergeordnete Instanz die Istpositionen fortlaufend vergleichen und bei unterschreiten eines Sicherheitsabstands die nacheilende Achse stoppen.

    Grundlegendes Prinzip ist die absolute Fahrwegeinteilung und die Kontrolle der Fahraufträge durch eine überlagerte Instanz. Die Achsen an sich verfahren selbstständig und müssen sich nicht einmal "kennen".
    Dann benötigst du auch keine spezielle NC-Hardware.

  7. Folgender Benutzer sagt Danke zu trinitaucher für den nützlichen Beitrag:

    dborn (24.08.2008)

  8. #7
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Standard

    Zitat Zitat von trinitaucher Beitrag anzeigen
    Ich würde es so machen:


    Grundlegendes Prinzip ist die absolute Fahrwegeinteilung und die Kontrolle der Fahraufträge durch eine überlagerte Instanz. Die Achsen an sich verfahren selbstständig und müssen sich nicht einmal "kennen".
    Dann benötigst du auch keine spezielle NC-Hardware.
    So dacht ich auch, im wesentlichen bleiben die obigen Schnittstellen des "Verwaltungs-FBs", evt kann man sie noch mit den beiden Istwerden der Position füttern.
    Viel Erfolg beim ausprogrammieren!
    "Das Leben ist viel zu kurz, um schlecht zu essen !"
    (Johann Lafer zur SWR3 Grillparty)

  9. #8
    dborn ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    19.08.2008
    Ort
    Kreis Höxter
    Beiträge
    4
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo zusammen,
    erstmal vielen Dank für Eure Anregungen.

    Als erstes zu GRAVIEREN:
    >Wie verfährt du die Achsen ?
    ein FB (aus dem erstellt in Zusammenarbeit mit Bosch) aufgerufen in 2 Instanzen.
    >Wie werden die Verfahrbefehle ausgegeben und von "wem" (1 CPU, 2CPUs)
    - 1 CPU mit absoluter Zielvorgabe.

    >611 mit Profibus ?
    >611 mit 840D + Positionier-FC ?
    >Selbst verfahren (Eigener Positionierbaustein)?
    ein FB (aus dem erstellt in Zusammenarbeit mit Bosch) aufgerufen in 2 Instanzen. Kommunikation über Profibus.

    >Wieviel CPUs / Steuerungen ?
    - 1 CPU (L40.2)

    >Welche Anwendung ?
    >Möglicherweise 2 CNC-Maschinen mit Palettenwechsler ?
    - keine CNC Maschine, dann hätte ich auch eine NC-Achse(n).
    Es handelt sich um Transportshuttles auf einer Schienenbahn mit überschneidetem Arbeitsbereich.

    >In der nähe der 2.Achse gefahren.
    >Was ist wenn die 1.Achse weiter fahren will. Steht dann alles ?
    - Nein. Es werden anhand beider möglichen Positionen ermittelt (ein Auftrag hat 2 mögliche Achspositionen / Start- und Zielposition), welche die am nächsten liegende ist. An diese wird heranpositioniert.

    >Ist es sinnvoll, jeder Achse eine Parkposition zu geben?
    - Ja. Jede Achse hat eine sogn. Parkposition am jeweiles gegenüberliegende Ende der Schiene.

    >Die 1.Achse vergewissert sich, das die 2.Achse nicht in den >Kollisionsbebreich fahren will. 2.Achse gibt Bestätigung darüber ab.
    >Nach der Bestätigung der 2.Achse fährt die 1.Achse los.
    Genau das sind meine Grundgedanken...

  10. #9
    dborn ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    19.08.2008
    Ort
    Kreis Höxter
    Beiträge
    4
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    zu trinitaucher:

    fast genauso habe ich meine Gedanken aufgebaut.
    Mein Baustein sieht nun soweit aus:
    Jeder Auftrag einer Achse hat 2 Verfahr-Positionen (Start- und Ziel).
    Bei jedem ! Verfahrauftrag (entweder fahre zum Start ODER fahre zum Ziel), wird die Gegenüberachse geprüft, ob diese einen Auftrag hat. Wenn nicht, dann wird geschaut, ob sich diese im Weg befindet. Nein-> alles OK, Ja -> Gegenüberachse kurz blockieren und auf Parkposition fahren.
    Hat der Partner einen Auftrag, wird ermittelt welche der beiden möglichen Positionen die am nächsten zur eigenen Position ist. Dann wird dort in die Nähe positioniert (mit Sicherheitsabstand) und gewartet bis die Gegenachse aus dem Bereich wieder raus ist.
    Dies ganze ist einem FB (aufgerufen in 2 Instanzen) als Kontrolle übergelagert.
    Die ersten Test sind momentan im Gange und sehen soweit erstmal gut aus......
    Was allerdings nun geschieht, wenn sich der Verfahrbereich permanent überschneidet, muss ich dann noch mal schauen.

  11. #10
    Registriert seit
    28.10.2005
    Ort
    Ottweiler, Saar
    Beiträge
    940
    Danke
    259
    Erhielt 124 Danke für 109 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von dborn Beitrag anzeigen
    ...
    Was allerdings nun geschieht, wenn sich der Verfahrbereich permanent überschneidet, muss ich dann noch mal schauen.
    Wie wäre es mit einem Prioritätsbit?
    Wer priorisiert ist, darf im Überschneidungsfall fahren. Danach wechselt die Priorität.

Ähnliche Themen

  1. Bahn berechnen - Sollposition
    Von Markus im Forum Programmierstrategien
    Antworten: 41
    Letzter Beitrag: 01.04.2010, 12:29
  2. S7 Ethernet LOG für Kontrolle
    Von Johannes F im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 10.12.2009, 11:46
  3. 2-Achsen-Steuerung
    Von Yogixxx im Forum Programmierstrategien
    Antworten: 19
    Letzter Beitrag: 21.09.2009, 13:19
  4. Baustein Kontrolle
    Von Farinin im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 03.09.2007, 14:26
  5. Kontrolle der Benzinpreise
    Von Markus im Forum Stammtisch
    Antworten: 8
    Letzter Beitrag: 14.07.2004, 23:29

Stichworte

Lesezeichen

Berechtigungen

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