Universal Robots UR10 CB3 - Roboter über S7-1200 Datenbaustein bewegen

Tola-Emma

Level-2
Beiträge
12
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo
kann mir jemand helfen wie ich den Roboter über eine S7-1200 Profinetverbindung ,einen Datenbaustein ( X,Y,Z,rx,ry,rz) in Integer oder Realzahl auf eine bestimmte Position fahren kann.
Ich möchte ein Palettierprogramm erstellen, mit dem man unterschiedlich große Pakete mit einem Greifer aufnimmt und über das Koordinatensystem das im Datenbaustein der S7 ist auf eine Palette abstellt.
Habe versucht über read_input_float_register die einzelnen Werte (z.B. Pos_x, Pos_y...) auf dem Roboter zu übertragen. Das funktioniert auch ganz gut, allerdings wenn ich versuche deine Variable zu erstellen p=(Pos_x,Pos_y;....) bekomme ich nur die Meldung das dieses keine "pose" ist

Gruß Tola-Emma
 
Zuviel Werbung?
-> Hier kostenlos registrieren
in Integer oder Realzahl

Also ich habe keine Ahnung mit UR, kann es evtl. sein das UR alles im INTEL Format interpretiert und die Bytes gedreht werden müssen.
Oder kann man an der GSDML auf Motorola ggf. umstellen?

Geht denn überhaupt schon irgendwas?
 
Was soll "p=(Pos_x,Pos_y;....)" denn bewirken? Ist das eine Schreibweise, die Dein Roboter versteht?
Du willst mehrere Variablen zu einer einzigen (Struktur?) zusammenfassen?

Hatte ich mir so gedacht.
Die Struktur heißt glaube ich POSE (p=0,0,0,0,0,0) und beinhaltet die Koordinaten vom Roboter X,Y,Z und der Kopf rx,ry,rz

Gruß Tola-Emma
 
Die Struktur heißt glaube ich POSE (p=0,0,0,0,0,0) und beinhaltet die Koordinaten vom Roboter X,Y,Z und der Kopf rx,ry,rz
Glauben genügt in solchen Fällen nicht wirklich.
Ich würde es mit
p = POSE(X, Y, Z, rx, ry, rz)
versuchen.
p vorher als entsprechende Struktur deklarieren.
Sind die Kommata als Trennzeichen zwischen den Parametern OK? Evtl Semikolon? Aber nicht - wie in #1 - gemischt.
Gibt's denn in der RoboterDoku keine Info dazu? Wenigstens ein Beispiel?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich kenn jetzt nur Fanuc. Die Positionsdaten werden in einem Pos Register abgelegt. Damit kannst du dann rechnen, zuweisen oder anfahren.
Rx Ry Rz ist üblicherweise die Winkeldrehung bezogen auf's World. Wenn du karthesisch fährst, braucht man es nicht.

PS: Ich würde diese Koordinaten in einem Prog im Roboter speichern und nur durch ein Bitmuster die Koordinate auswählen und anfahren. Es gibt fertige Palettiermodule für Roboter.

Grüße Detlef
 
Zuletzt bearbeitet:
Hallo
die Koordinaten über einen Datenbaustein aus der S7-1200 funktioniert inzwischen, habe nur ein kleines Problem mit der 6.Achse ( Werkzeugflansch drehen).
Wenn ich var_1=p[0.5,0.2,0.1,d2r(180),d2r(0),dr2(0)] fährt der Cobot in die Position X=500mm, Y=200mm, Z=100mm der Kopf ist nach unten und die Drehung ist 0 Grad. wenn ich den letzten Wert der Pose ..,d2r(180) ändere drehen sich alle Achsen vom Kopf und nicht nur die 6. Achse.
Wenn ich auf Achsen bewege gehe und das Koordinatensystem Rotationsvektor[] bewegen sich die Achse wie bei meiner Pose, wenn ich auf RPY[°] stelle kann ich nur die 6. Achse um 180 ° drehen.

Kann man auch RPY in den Variablen der Pose eingeben?


Gruss
Tola-Emma
 
Zuletzt bearbeitet:
Moin,

bei kartesischer Bewegung kann das passieren weil du dem Roboter sagst wo er hin soll X,Y,Z. aber nicht unbedingt wie. Dann sagt du ihm das er in einer Achse 180° anders steht als vorher. dann bewegt sich alles.
Dann sagst du ihm bewege jede Achse einzeln. Dann führt er natürlich eine 180° Drehung einzeln aus.
Ein Tipp: Handbuch lesen. Syntax aneignen, Roboterbewegung verstehen lernen, Bewegungsarten unterscheiden etc.

Grüße Detlef
 
Zurück
Oben