Hallo Fortgeschrittene Roboterprogrammier,
ich bin ganz neu in diesem Bereich. Meine Aufgabe besteht darin, einen ABB IRB 2400 so zu programmieren, dass er eine Spiralbahnbeschreibt.
Dazu würde ich MoveC benutzen, aber wie ich die Punkte danach verschiebe, ist mir nicht ganz klar. Brauche ich dazu einen Vektor?
Wichtig ist mir, dass ihr mir helft, mein Verständnis für das Programmieren zu schärfen.
Das Programm soll benutzerfreundlich sein und daher mit vielen Eingaben gefüttert werden.
Ich habe dazu begonnen, die Dokumentation durchzuarbeite. Ich denke, dass die Abfrage so stimmt.
1) Habe ich die Werte, die ich abfrage, richtig weiter verwendet?
2) Berechne ich die Punkte richtig, vorallem die Kreispunkte?
Meine Angst liegt darin, dass ich einfach von einer Verschiebung in eine Richtung ausgehe, aber was ist, wenn diese nicht auf einer Koordinatenachse liegt?
3) wie würde die Verschiebung der Kreispunkte aussehen, um eine Spiralbahn zu beschreiben? Muss ich dazu die Punkte mit dem Richtungsvektor addieren, also so
p.neu= p1+p.richtung?
Bisher habe ich folgendes verfasst. Stimmt mein Quelltext bisher?
programm SPIRALE
;;int = linear
;---------------------------------------------
; 16.03.2011
;---------------------------------------------
;---------------------------------------------
; Variabeln erfragen
;---------------------------------------------
! Rapidhandbuch S 391ff
TPReadNum breite, "Wie breit ist das Werkstück (in mm)?";
TPReadNum laenge, "Wie lang ist das Werkstück (in mm)?";
r:= breite/2
n1:= laenge / breite ! n sind die Anzahl der Kreise
n:=Round(n1);
TPWrite "Benötigte Anzahl der Kreisbögen ohne Überlappung="\Num:=n;
TPReadNum reg1, "Wie viele Kreise sollen gefahren werden?";
FOR i From 1 TO reg1 DO
PROC_Kreis;
ENDFOR
TPReadFK reg2, "Bitte fahren Sie die gewünschte Position (Werkstückbeginn, Mittelpunkt) an. Fertig?","","","","Ja!","Nein!";
! Befehl Cpos Rapidhandbuch S 463 für x,y,z-Werte von P1
VAR pos pos1
pos1:=CPos(\Tool:=tool1\WObj:=wobj0);
TPReadNum hoehe, "In welchen Abstand soll die Bearbeitung erfolgen (in mm)?";
! Definition der Arbeitshöhe
pa.x:=pos1.x
pa.y:=pos1.y
pa.z:=pos1.z + hoehe
;---------------------------------------------
;Berechnung der Punkte
:---------------------------------------------
!Berechnung des Endpunktes
p2.x:=pa.x
p2.y:=pa.x+laenge
p2.z:=pa.z
! Ermittlung der Kreispunkte
k1.x:=pa.x
k1.y:=pa.y
k1.z:=pa.z
k3.x:=k1.x
k3.y:=k1.y+breite
k3.z:=k1.z
k2.x:=k1.x+r
k2.y:=k1.y+r
k2.z:=k1.z
k4.x:=k1.x-r
k4.y:=k1.y+r
k4.z:=k1.z
;---------------------------------------------
;Bewegungsstart
;---------------------------------------------
PROC Kreis
MoveL k1, v100, fine, tool1; ! Bewegung auf Arbeitshöhe
MoveC k2, k3, v500, z20, tool1; ! Kreisbewegung
MoveC k4, k1, v500, fine, tool1;
! Kreisbewegung wurde abgeschlossen, Verschiebung muss beginnen (Offset S 500)
ENDPROC
Ich bin für jede Antwort dankbar
Lg Georg