Step 7 Kollisionsüberwachnung mit Istpositionen

REAL

Level-1
Beiträge
14
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo an alle,

da dies mein erster Eintrag hier ins Forum ist, möchte ich mich kurz vorstellen. Ich bin 27 Jahre alt und kein Elektriker oder Programmierer von Beruf sondern Maurer.
Ich bin aber ziemlich technisch interessiert und würde gerne in meiner Freizeit ein wenig programmieren und machen.

Ich habe mir in der Bucht ein paar Teile günstig gesichert wie etwa eine CPU 315 2PN/DP und zwei Antriebe. Die Antriebe habe nach langer Zeit des Versuchens und im Internet Suchens zum laufen bekommen . Jetzt würde ich gerne aber noch eine Kollisionsüberwachung programmieren, hier weiß ich aber nicht wie .

Mir stehen lediglich die zwei aktuellen Istpositionen der Antriebe zu Verfügung. Ein bekannter von mir hat mir jetzt noch für meine Antriebe ein Gestell geschweißt mit zwei Spindeln und genau hier komme ich zu meinem Problem. Die beiden Antriebe werden in gleiche Fahrrichtung referenziert mit jeweils einem Referenzschalter. Jetzt ist es aber so, dass die Antriebe bzw. die Spindeln ja im selben Gestell verbaut sind und somit wenn die eine Achse in positive Fahrrichtung verfährt und die eine Achse in negative Fahrrichtung verfährt kollidieren könnten weshalb ich gerne eben eine Kollisionsüberwachung programmieren würde mit Hilfe der zwei Istpositionen.

Kann mir hier vielleicht jemand ein wenig weiterhelfen wie ich das machen könnte? Ich habe mir das so vorgestellt, dass ich einen beliebigen Wert als Abstand der beiden Antriebe zueinander eingeben kann, so das diese dann immer beim verfahren den Abstand zu einander einhalten und nicht kollidieren. Super gut wäre es wenn man die Überwachung anhand der beiden Istposition so gestalten könnte, das man schon gar keinen Wert als Zielposition eingeben kann wenn es dann beim Verfahren zu einer Kollision kommen kann.
Ich hoffe das ist so mach und realisierbar und vielleicht kann mir hier auch der ein oder andere ein wenig weiterhelfen bzw. helfen.

Danke und Grüße

Flo
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Tipps genug, nur mangelt es an Informationen...

Um Deine Frage auf Deinen Beruf umzusetzen...

Hinten bei der Bau-Union steht eine Palette Steine. Welchen Mörtel brauche ich?

Aber zu Deinem Problem bzw. meinem...

Was für Antriebe ( FU? Schützgesteuert? ) Angesteuert WIE? Geber der Istpositionen: Absolut oder Inkrementell? ( Absolut braucht man nicht zu referenzieren )

Was soll das Ding denn machen? Ein Foto wäre glaube ich hilfreich..
 
Warum können die kollidieren, wenn es 2 Antriebe und 2 Spindeln gibt?
Nebeneinander, Hintereinander?
Beide Antriebe nutzen beide Spindeln?
 
Hallo,

es handelt sich um Servoverstärker und die Antriebe haben Inkrementegeber. Angesteuert werden die Antriebe über Profinet, genauer gesagt über ein Telegramm, dass funktioniert auch alles super.
Die Spindeln können kollidieren weil die Schlitten die darauf befestigt sind, hintereinander liegen und nicht nebeneinander aus Platzgründen. So kann ich jetzt z.B. den Antrieb 1 verfahren wobei das Problem auftreten könnte, das es zu einer Kollision mit dem Schlitten der zweiten Spindel kommt, weil dieser in den Fahrweg der ersten Spindel bzw. des ersten Schlitten hinein ragt.
 
Angenommen Antrieb 1 ist links und Antrieb 2 ist rechts.
Dann:
z.B. während der Fahrt:
Freigabe Antrieb1 rechtsfahren := (Antrieb1_Istpos + Sicherheitsabstand) < Antrieb2_Istpos;

Oder vor Start:
Freigabe Antrieb1 rechtsfahren :=
((Antrieb1_Endpos + Sicherheitsabstand) < Antrieb2_Istpos)
AND
((Antrieb1_Endpos + Sicherheitsabstand) < Antrieb2_Endpos);

Selbiges mit Antrieb2 Linksfahren
 
Hallo hub,

danke für deinen Vorschlag.
Eine Frage stellt sich mir jetzt dann aber noch und zwar, geht das System so wenn die Schlitten auf den Spindeln doch versetzt sind? Oder meinst du das so, dass der Schlitten zwei ja Hardware bedingt immer vor Schlitten 1 liegt und demzufolge seine Istposition immer größer sein wird. Wenn ich das dann richtig verstanden habe, muss also die Istposition von Schlitten 1 immer kleiner sein wie die neue Istposition von Schlitten zwei wenn ich diesen ins negative verfahren möchte?
Bleibt ja nachdem ich es jetzt hoffentlich alles verstanden habe nur noch die Frage, wie ich das in FUP programmieren muss.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nach deinen Ausführungen bin ich in meinem Beispiel davon ausgegangen, dass Schlitten 2 immer rechts vom Schlitten ist sein muss.

Wenn deine Positionswerte in Real vorliegen, dann z. B. so:

Antrieb_FUB_001.PNG

Den Rest solltest du dann selber hinbekommen.

Voraussetzung ist natürlich, dass beide Schlitten dasselbe Koordinatensystem verwenden.
Ansonsten müsste noch der/das Offset der Koordinatensysteme zueinander berücksichtigt werden.
 
Zuletzt bearbeitet:
Als erstes mußt du beim Referenzieren sicherstellen dass es keine Kollision gibt. Also nacheinander referenzieren oder einen nach rechts, den anderen nach links. Erst danach kann man ja die Istpositionen überhaupt verwenden.
 
Aufbau

Aufbau.JPG
So sieht der Aufbau aus. Beide Antriebe sind auf der gleichen Seite. So wie man jetzt sehen kann liegt der eine Schlitten immer vor dem anderen. Die Referenzschalter sind demzufolge auch nicht auf gleicher höhe. Wie muss jetzt dann die Kollisionsüberwachnung aussehen wenn der Aufbau so ist? Dann wird ja der Lösungsvorschlag von Hub nicht ganz passen oder? Ich muss doch dann bestimmt noch irgendwie die Differenz der beiden Antriebe einrechnen da doch die Nullpunkte unterschiedlich sind. Das mit dem Referenzieren habe ich schon gelöst das der eine Antrieb immer vor dem anderen referenziert werden muss.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Referenzpunkt heißt nicht automatisch Nullpunkt.
Du kannst beim Referenzieren definieren, dass z.B. Antrieb1 auf Position "0" steht und Antrieb2 auf Position "0+Abstand" steht.
Dies hat den Vorteil, dass du nur ein Koordinatensystem hast.

Aber auch 2 Koordinatensysteme (unterschiedliche Nullpunkte) sind kein Problem.
In beiden Fällen kannst du die Formel verwenden.

Im ersten Fall musst du den Sicherheitsabstand berücksichtigen.
Im zweiten Fall kann der Sicherheitsabstand gegen Null gehen und eventuell entfallen.
 
Hi Hub,

ich habe das jetzt alles mal so programmiert wie du mir das gesagt hast, leider hat das aber nicht geklappt!
Kannst du da mal vielleicht einen Blick darauf werfen was ich falsch gemacht habe :confused:
 

Anhänge

  • FC1.pdf
    25,9 KB · Aufrufe: 24
Schaut doch gut aus.
Was geht denn nicht?
Vielleicht ein paar Istwerte und Zustände mit angeben.


Noch einige Hinweise:

Die Freigaben zum Fahren beziehen sich auf eine Richtung!
- bei Achse_A zum Rechtsfahren
- bei Achse_B zum Linksfahren
Achse_A linksfahren und Achse_B rechtsfahren hat immer Freigabe, weil dadurch keine Kollision entstehen kann.

Netzwerk 5 und 6 könnte man sich sparen, weil das gleiche Ergebnis wie bei Netzwerk 1+2 entsteht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich jetzt an den FC beide Istpositionen der Antriebe anlege + den gewünschten Sicherheitsabstand (alle Werte in REAL) dann bekomme ich keine Out Signale sprich keine Freigaben :cry: und ich weis nicht warum, :confused: vielleicht fehlt mir als Maurer zum programmieren doch ein wenig das Fachwissen :oops:
 
Und welche Werte haben die Istpositionen und der Sicherheitsabstand?

Wird der FC abgearbeitet?
Das heißt, wird er im zyklischen Programm (OB1) aufgerufen?
 
Alle Werte sind Real Werte. Ich rufe den FC für die Kollisionsüberwachnung in einem anderen FC auf, muss ich den dann trotzdem im OB1 aufrufen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich meinte, welche Werte aktuell anstehen, nicht welcher Typ.
Mach mal eine Hardcopy der ersten beiden Netzwerke bei eingeschaltetem Statustest (Beobachten Ein).

Wenn der FC von einem 2. FC aufgerufen wird, muss er nicht im OB1 sein.
Allerdings der 2. FC schon.
 
Zurück
Oben