Base berechnen

  • Hallo,
    ich stehe da gerade vor einem kleinen Problem, bei dem ich nicht weiterkomme: Wir haben Werkstücke, die in der Dicke variabel sind und mittels eines Gestells in der Höhe und im Drehwinkel verändert werden können. Drehwinkel, Höhe und die Dicke werden über die SPS vorgegeben und ich muss den Roboterflansch senkrecht über der Base positionieren.
    Habt ihr eine Idee, wie ich die Base ausrechnen kann? Im Anhang eine Skizze, die die Ausgangssituation hoffentlich etwas erläutert.


    Vielen Dank im Voraus!

  • Schritt für Schritt zum Roboterprofi!
  • Moin,
    warum verwendest Du die BASE? Je nach dem wie der Roboter positioniert ist hast Du dann ein richtiges Rechenproblem.
    Wäre die Verwendung einer Position in einer BASE nicht die bessere Wahl?
    Diesen Punkt kannst Du dann in Abhängigkeit der Daten von der SPS recht einfach in Bezug deines BASE verschieben und drehen.
    Verwendest Du dann auch noch FRAME Variablen als Positionsdaten dann hast Du es auch leichter mit Status und Turn. ;)


    SPS und Roboter müssen sich halt nur auf einen Grundlage des Datenbezuges einigen.


    Gruß


    Sven

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

  • Hallo,
    der Roboter soll nachher auf der Base verschiedene Punkte anfahren und dabei senkrecht auf der Ebene stehen. Das geht relativ einfach wenn die ganze Base gedreht ist und wir dann nur x und y Koordinaten (im Bezug auf die Base) austauschen und der Roboter die dann anfährt.
    Die Base wird nicht so häufig geändert, die Positionen des Roboters auf der Base dann schon.

  • Anhand deiner Zeichnung kann man leider nicht entnehmen welche Daten von der SPS kommen. im Anhang mal ein Lösungsansatz in 4 Schritten. Die Dicke habe ich dabei erstmal nicht berücksichtigt.

    Dateien

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

  • Es gibt sicherlich noch andere Möglichkeiten. Aber das erschien mir die einfachste.


    EDIT: Da ist noch'n Fehler drin. Ersetze MOVE_FRAME in OFFSET. :roll:

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

    Einmal editiert, zuletzt von IrrerPolterer ()

  • kurzes Update dazu: die Berechnung klappt ohne Probleme und die berechneten Werte sehen gut aus.
    Leider fährt der Roboter in dem Moment, in dem ein Winkel ins Spiel kommt, ganz merkwürdige Positionen an.
    Sprich: wenn der Winkel 0 ist stimmt die Base-Definition und die Positionen werden sauber angefahren
    Wenn der Winkel ungleich 0 ist stimmt die Base-Definition und die Positionen werden nicht richtig angefahren


    Hat irgendwer ne Idee woran das liegen könnte?

  • Was heißt denn "nicht richtig"?

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

  • nicht richtig heißt der Roboter versucht zu einer Position zu fahren, die weit entfernt von der Position ist, zu der er soll. Und das in X, Y, Z, A, B und C.
    Wo er wirklich hin will kann ich leider nicht nachvollziehen da die Punkte an Stellen liegen zu denen der Roboter nicht fahren kann (da sie hinter bzw. in dem Werkstück liegen).

  • Ich versuche diese Berechnung heute abend (falls Zeit ist) einmal in Sim Pro 3.0 nachzuvollziehen. Kann's aber noch nicht versprechen.

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

  • Danke schon mal,unten der Code, den ich verwende:


    DEF Go_to_XY_in_base()
    $TOOL = TOOL_DATA[1]
    $BASE = BASE_DATA[1]


    base_versch=$NULLFRAME
    base_versch.y=800
    base_versch.z=-84.1+blockthickness ;Bauteildicke und Offset Schwenkachse einbeziehen
    BASE_B=BASE_data[1]:BASE_VERSCH


    base_versch=$nullframe
    base_versch.c=blockangle ;Drehwinkel einbeziehen
    base_c=base_b:base_versch


    base_versch=$nullframe
    base_versch.y=blocklevel-1200 ;Bauteilhöhe und Versatz einbeziehen
    base_d=base_c:base_versch


    base_versch=$nullframe
    base_versch.z=84.1-blockthickness ;zurückrechnen
    base_versch.y=-800
    base_e=base_d:base_versch


    $base=base_e ;Base setzen


    PUNKT.X=DistanceX ;Koordinaten in X die auf der Base angefahren werden sollen
    PUNKT.Y=DistanceY ;Koordinaten in Y die auf der Base angefahren werden sollen


    $ov_pro=25
    $vel.cp=1


    LIN PUNKT ;Punkt anfahren

  • Also, bei mir funktioniert das ohne Probleme.
    Bist du sicher, dass du den richtigen Winkel drehst - und wenn ja in die richtige Richtung?


    Ohne Verschiebung:


    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Tisch um 300mm angehoben und um 45 Grad geneigt:


    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

    Einmal editiert, zuletzt von IrrerPolterer ()

  • sorry, hat mal wieder länger gedauert, bis ich mich dem Problem wieder widmen konnte. Denke schon, dass ich um die richtigen Winkel und in die richtige Richtung drehe, scheinbar ja aber nicht.
    Könntest Du mir mal dein Projekt aus der Simulation schicken, damit ich das mit meinem vergleichen kann um den Fehler zu finden?


  • Könntest Du mir mal dein Projekt aus der Simulation schicken, damit ich das mit meinem vergleichen kann um den Fehler zu finden?


    Das scheitert an 2 Dingen:
    1. Ich habe die Simu nicht mehr.
    2. Das ist kein KRL-Code, sondern in der Simu gesetzte Base-Verschiebung


    Hast du mal probiert dich langsam heranzutasten? z.B. die Blockhöhe erstmal nicht einzurechnen Punkt.x und Y festzulegen etc.
    Oder an dieser Stelle
    base_versch.c=blockangle
    mal -blockangle oder base_versch.b

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

  • Bin Montag am Roboter und werde mich rantasten - muss an irgendeinem Winkel liegen, wenn ich nur die Y und Z berechne funktioniert es, kommt der Drehwinkel in Spiel passieren merkwürdige Dinge :denk:
    Danke für Deine Hilfe, ich gebe nächste Woche mal den Stand durch.

  • Hallo,
    hast du die Möglichkeit dir eine Referenz-Base in der Schwenkachse zu erstellen?
    Wenn dann die X-Achse entlang der Schwenkachse zeigt könntest du dir eine zweite dynamische base erstellen, die die gleiche Translation wie deine Referenz-Base aber einen anderen Wert bei "C" stehen hat. von deiner dynamischen Base brauchst du dann nur noch das Offset draufrechnen. Am Ende natürlich die dynamische Base schön wieder zurücksetzen.
    Im Prinzip geht das ja auch auf der Oberfläche und durch numerische Eingabe kannst du das ganze dann noch nach unten in die Schwenkachse verschieben.
    Beste Grüße
    Denis

  • so, kurzes Update. Bin am Roboter und probiere ein bißchen rum:
    Wenn ich den Winkel der Base nicht ändere (0°) steht in $Base folgendes:
    X 2169
    Y 1307
    Z 991
    A -90
    B 0
    C 90


    ändere ich den Winkel jetzt auf 10° ändert sich auch $Base:
    X 2316
    Y 1307
    Z 855
    A -90
    B 0
    C 99
    Die Berechnung scheint also soweit richtig zu sein, bei 0° wird auch die richtige Position angefahren. Bei 10° stimmen die Werte von X, Y und Z soweit auch (und werden auch angefahren), nur wird das Werkzeug nicht entsprechend um 10° (hier 9° wegen Rundungsfehler) gekippt.
    Woran kann es liegen, dass der Winkel nicht angefahren wird?

  • Um weiter helfen zu können wäre ein Archiv des Roboters und eine Skizze des Aufbaus hilfreich, um das an der Simulation nachzuvollziehen. Das kann nämlich echt kein Hexenwerk sein. :)

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

  • Hallo IrrerPolterer,
    Im Anhang das Archiv und 2 Fotos: Bild 1 zeigt die Position des Roboters bei 0°, Bild 2 (ist leider nicht ganz aktuell) bei 10° - die Position in X Y und Z stimmt mittlerweile, nur der Winkel nicht.
    Das entsprechende Dat-File heißt Bstnd15.

  • Bitte noch eine Skizze anfügen, wo der Ursprung von Base_Data[1] liegt.

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden