Variable Positionen ansteuern

  • Hallo Robotercommunity,


    ich bin ganz neu in der Roboterprogrammierung. Bin Student und bearbeite gerade eine Projekt. Dabei soll die spätere Anlage simuliert werden und ein Roboterprogramm geschrieben werden. Habe micht mit den vorhanden Unterlagen in das Thema eingearbeitet. Habe mir bereits eine Station mit Roboter, Roboterwerkzeug, einem Förderband und das zu bearbeitende Objekt erstellt. Der Transport und das anhalten des zu bearbeiteten Objektes an einer von mir einstellbaren Position (Länge) über einen Feld bei den "smarten Komponenten" funktioniert. Jetzt kommt es zu eigentlichen Roboterprogrammierung.


    Wie man Positionen, Pfade und die Orientierung des Roboterst erstellt weiß ich nur soll bei meiner Anlage das Objekt in den Bearbeitungbereich fahren und die zu bearbeitende Stelle auf der Objektoberfläche soll über eine Eingabe Variable sein. Frage ist wie kann ich einen Ablauf programmieren, wo ich über ein Eingabefeld vor dem Start der Simulation sage meine zu Bearbeitende Stelle auf dem Objekt liegt bei X 1200 Y400 Z 200?

    PS. Ist nur eine Simulation und muss nicht direkt an einem Roboter laufen

    MfG Kevin

    hoffe das meine Frage und Erlärung verständlich war und ihr mir ein paar Anregung Ideen geben könnt, dass ich weiter komme oder mich weiter einlesen kann.

  • ANZEIGE
  • Zuerst solltest du klären wie genau die Variable aussieht und was sie bedeutet. Danach kannst du zum Beispiel deine Programme per TEST-CASE - Struktur abfahren lassen.


    Wenn du beispielsweise die 6 Seiten eines Würfels variabel abfahren lassen möchtest, dann lässt du den Bediener die Seite wählen, wodurch als Ergebnis eine Zahl von 1-6 entsteht. Das Ergebnis nimmst du dann als Entscheidungsfindung, welches Bewegungsprogramm als nächstes gefahren wird.


    Wie gesagt es hängt ganz davon ab, was genau variabel sein soll.

  • Als erstes ich benutze ABB RobotStudio 6.08.01.


    Variable soll sozusagen die Startposition sein. Der Benutzer soll die XYZ-Koordinaten eingeben können und dann sind die nachfolgende Abläufe eigentlich immer gleich.

    2 Mal editiert, zuletzt von kmat ()

  • Zitat


    Wie man Positionen, Pfade und die Orientierung des Roboterst erstellt weiß ich nur soll bei meiner Anlage das Objekt in den Bearbeitungbereich fahren und die zu bearbeitende Stelle auf der Objektoberfläche soll über eine Eingabe Variable sein. Frage ist wie kann ich einen Ablauf programmieren, wo ich über ein Eingabefeld vor dem Start der Simulation sage meine zu Bearbeitende Stelle auf dem Objekt liegt bei X 1200 Y400 Z 200?

    Vermute dass du damit den Umgang mit RobotStudio meinst. Mit der wirklichen Roboterporgrammierung hat das noch nicht viel zu tun, das ist nur hilfreich für einfache Untersuchungen in der Simulation. Kennst du dich schon mit RAPID aus?




    Ich denke du willst nicht dass wir dir hier vorkauen wie du das ganze lösen sollst sondern willst selbst darauf kommen?
    Daher meine Empfehlung versuch dich mal in RAPID einzuarbeiten. Das ist die Programmiersprache in welcher die ABB Robis programmiert werden.


    Falls du das doch schon wissen solltest, wirst du weiter kommen wenn du dich mal in folgende Befehle oder Vorgehensweisen einliest:

    Offs - Displaces a robot position

    RelTool - Make a displacement relative to the tool

    Arbeiten mit Werkobjekten


    Zur Einarbeitung in Rapid:


    Mir haben damals als ich von KUKA/Fanuc auf ABB umgestiegen bin die Tutorials auf Youtube sehr geholfen.

    https://www.youtube.com/playli…79ZszMJft_crA0IjDaWRU0dqx


    Ebenfalls ist die interne Hilfe in RobotStudio sehr gut.


  • Hallo hackl90,


    genau ich möchte keine fertige Lösung, sondern nur Tipps oder Anregungen.

    Wenn ich ein Objekt erstellen sollte und das heranfahren lasse und dann bearbeiten müsste wäre das kein Problem. Positionen anlernen, Bewegungpfade erstellen und in die Steuerung laden kein Problem. Nur habe ich den Punkt nicht so ganz verstanden wie das mit den bewegten Objekten ist. Habe zum Beispiel eben getestet, wenn ich das Objektkoordinatensystem auf das Werkobjekt lege und darauf zwei Positionen, dann funktioniert das in der Simulation nicht. Die Smart Komponente erstellt mir ein Kopie meines Werkobjektes aber die zwei Positionen werden nicht mit kopiert und bewegt, obwohl ich doch das Koordinatensystem mit der Option "verbinden" mit der Werkobjekt verknüpft habe.
    Was mache ich da schon falsch um erst einmal diesen Schritt zu lösen.

  • Das ist diese Thematik welche ich gemeint hatte.
    Du kommst an die Grenzen dessen was mit den Simulationstools lösbar ist.

    Du musst nun hingehen und in deiner Virtuellen Steuerung ein wirkliches roboterprogramm erstellen, welchem du Vorgibst wo sich dein Objekt befindet.
    Ich könnte mir das wie folgt vorstellen:

    1. du erstellst einen Sensor welcher als Smart Componente den Positionsoffset deines Objektes feststellst.

    2. Du Übergibst diese werte an die virtuelle Robosteuerung in der Simulation (Reiter Steuerung -> Fenster Steuerung)

    3. In der Steuerung wertest du dies nun aus


    ENDLOSSCHLEIFE:

    -> Roboter in Vorposition fahren

    - Offset der Smartcomponente Prüfen

    - Dein Werkobjekt des Objekts um den Offset Verschieben

    - Punkte Anfahren

    -> Roboter in Vorposition fahren


    ENDLOSSCHLEIFE_END

  • Okay habe jetzt die Variable Ansteuerung hinbekommen. Jetzt eine Frage, die mir das Programmieren der ganzen Schritte/ Positionen erleichtern würde. Gibt es ein Befehl/ Ausdruck für letzte Position? Damit man in der nächsten Zeile nur moveL Offs ("letzte Position", 0,0,30),v500... machen kann?

  • was meinst du mit letzte Position?
    Du kannst dir Punkte in Variablen laden.


    z.B.


    !Deklarationen

    CONST robtarget pPostion1:=...

    CONST robtarget pPostion2:=...

    CONST robtarget pPostion3:=...


    PERS robtarget pPositionTemp:=....


    !Positionen laden

    pPostionTemp:=pPosition1;

  • MoveL Offs (Ursprung_werkobjekt1,xwert,ywert,zwert),v500,fine,Fräsen\WObj:=Workobject_1;

    MoveL Offs (Ursprung_werkobjekt1,xwert,(ywert-500),zwert),v500,fine,Fräsen\WObj:=Workobject_1;


    wenn ich jetzt zum Beispiel von der ersten Position in die Zweite gehe, kann ich das wie oben gezeigt mit "-500" machen. Lieber wäre es mir wenn ich die mir eine Position nach der ersten Bewegung abspeichere und dann die Position verwenden kann.


    Dann wäre die Frage einfach nur wie speichere ich die aktuelle Position vom Roboter ab?


    Ist das richtig wenn ich das mit dem Befehl CRobT mache? Also so:


    P1 := CRobT(\WObj:=Workobject_1);

    MoveL Offs (P1,0,-500,0),v500,fine,Fräsen\WObj:=Workobject_1;

    Einmal editiert, zuletzt von kmat ()

  • Hallo Kmat!


    Wenn du mit Offset fährst wird die Original Position verschoben solange bis du eine PZmain machst dann wird es wieder auf die Original Wert zürückgesetzt.Oben sind schon einige gute beispiele.Wieso willst du diese position speichern?

    Kanns die Positionen auf CONST setzen da brauchst du eine PERS position auch.Wenn du alles richtig ausgemessen hast (Tool,Werkobjekt) dann würde es mit eine eingabefenster auch gehen wo du die Werte eingeben kannst.


    Hoffe könnte ich dir weiterhelfen


    MFG


    Tamas

  • Danke für die schnellen Antworten,


    komme dadurch immer weiter. Habe aber jetzt ein neues Problem. Habe an meinem Werkzeug vier TCPs. mit den ersten zwei Werkzeugen hat die Bearbeitung jetzt geklappt. Aber beim Dritten stimmt die "Ausrichtung nicht". Das Werkzeug müsste um -90° gedreht sein. Wie mache ich das jetzt ohne das Werkzeug noch einmal neu zu erstellen und das ich nicht immer nach jeder Bewegung eine Drehung machen muss.

  • So habe jetzt die Hauptaufgabe erst mal hinbekommen. Mal schauen inwieweit noch Zeit für Verbesserungen und Feinheiten sind. Dann erst mal noch eine letzte Frage und zwar nur um ganz sicher zu gehen. Wie speichere ich alles richtig ab, damit meine Steuerung, mein Rapid Programm, die Simulation und Umgebung und alle angelernten Punkte nicht verloren gehen?

    Kann alles in einer "Datei" gespeichert werden?


    Damit ich mir diese kopieren kann und nur an der Kopie Veränderungen vornehme und wenn ich das etwas ausprobieren und ich verändere etwas ohne das ich es Rückgängig machen, dass ich dann eine Sicherung habe.

  • Hallo


    Steureung>Backup am besten.Diese kannst du über Restore im schlimmsten Fall wiederherstellen.Im Backup bleibt alles so wie am Letzten sicherung war.Das kannst du in ein andere Fenster aufmachen.


    MFG


    Tamas

  • So habe jetzt die Hauptaufgabe erst mal hinbekommen. Mal schauen inwieweit noch Zeit für Verbesserungen und Feinheiten sind. Dann erst mal noch eine letzte Frage und zwar nur um ganz sicher zu gehen. Wie speichere ich alles richtig ab, damit meine Steuerung, mein Rapid Programm, die Simulation und Umgebung und alle angelernten Punkte nicht verloren gehen?

    Kann alles in einer "Datei" gespeichert werden?


    Damit ich mir diese kopieren kann und nur an der Kopie Veränderungen vornehme und wenn ich das etwas ausprobieren und ich verändere etwas ohne das ich es Rückgängig machen, dass ich dann eine Sicherung habe.

    Mach ein Pack and Go
    Das Packt dir deine Station + Virtuellen Steuerung + alle Extern verknüpften rslibs.


    https://www.youtube.com/watch?v=ti_ShnUZkNs

Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

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