Roboter mit bis zu 6 Rotationsachsen mit RobotKinematicsV2 animieren (ab Version 1.6)¶
Video: Das Video zeigt einen mit RobotKinematicsV2 animierten Sechsachsroboter, der Werkstücke mit einem Magnet-TCP zwischen mehreren vordefinierten Roboterzielen transportiert.
Mit dem Skill RobotKinematicsV2 können Sie Knickarmroboter mit einer bis sechs Rotationsachsen über SPS-Signale steuern. (Linear- bzw. Translationsachsen werden von diesem Skill nicht unterstützt). Dabei wird das Werkzeug des Roboters an die gewünschte Position im Raum bewegt. Die dafür erforderlichen Winkelstellungen der einzelnen Drehgelenke werden automatisch berechnet.
Was ist ein Knickarmroboter?
Knickarmroboter (auch Gelenkarmroboter) sind Industrieroboter, deren serielle Achsen über Gelenke verbunden sind. Sie ahmen die Bewegungen eines menschlichen Arms nach und bieten durch meist sechs Freiheitsgrade eine hohe Flexibilität, um dreidimensional jeden Punkt im Arbeitsraum zu erreichen. 3 Achsen bestimmen die Position im Raum (X, Y, Z), die anderen 3 Achsen bestimmen die Orientierung des Werkzeugs (Neigung, Drehung, Kippen).
Hinweis zum Einsatzbereich
Der Skill RobotKinematicsV2 ist dafür vorgesehen, einen Sechsachsroboter aus dem SPS-Programm heraus anzusteuern. Die Zielposition kann dabei entweder über eine Programmnummer und/oder über kartesische X-, Y- und Z-Offsets vorgegeben werden. Der Skill ist keine vollständige Robotersimulation und ersetzt keine reale Robotersteuerung oder Inbetriebnahme. Er ist insbesondere nicht dafür geeignet, zu prüfen, ob ein bestimmter Robotertyp an einer vorgegebenen Position exakt die im Herstellerdatenblatt angegebenen Achswinkel einnimmt. Ziel des Skills ist die virtuelle Prüfung des SPS-Programms und des Anlagenablaufs. Damit kann getestet werden, ob der Roboter im Zusammenspiel mit Sensoren, Aktoren und weiteren Anlagenkomponenten die vorgesehenen Positionen anfährt und der programmierte Prozess korrekt abläuft.
Der Skill benötigt:
-
eine feste Roboterbasis,
-
ein bis sechs Drehgelenke in einer eindeutigen Parent-Child-Hierarchie,
-
ein TCP-Objekt am letzten Gelenk,
-
optional mindestens ein Roboterziel mit einer Programmnummer. Ohne definierte Roboterziele kann der Roboter ausgehend von der Home-Position über die Offset-Werte bewegt werden.
Wichtig: PLC-Lab 3D Studio verwendet die Objektursprünge und lokalen Achsen aus Blender. Eine saubere Vorbereitung des Modells ist deshalb entscheidend.
Zusammenfassung für erfahrene Anwender¶
Hinweis: Das Blender Plugin (Abschnitt Robot) von PLC-Lab 3D Studio vereinfacht die Vorbereitung enorm. Infos und Download.
-
Importieren Sie das Robotermodell in Blender, skalieren und positionieren Sie es. Die Pose in Blender wird die Home-Pose des Roboters. Diese Pose muss nicht mit der mechanischen Nullstellung aus dem Herstellerdatenblatt übereinstimmen. Step-Dateien können über diese URL in ein Blender-kompatibles Format konvertiert werden: https://mhj.de/step2blender//
-
Legen Sie für jedes Drehgelenk den Objektursprung auf die mechanische Drehachse und erstellen Sie eine serielle Parent-Child-Hierarchie von der festen Basis bis zum letzten Gelenk. Die Roboterbasis ist das Parent-Objekt. Das 1. Gelenk ist Child der Basis, das 2. Gelenk ist Child des 1. Gelenks usw. Das TCP-Objekt liegt unterhalb des letzten Gelenks. Für die nachfolgenden Achsen ist der Bezug die lokale Achse des Gelenks.
-
Weisen Sie der Basis den Skill
{RobotKinematicsV2}zu. Markieren Sie jedes Gelenk mit genau einem lokalen Achsentag ({x},{y}oder{z}). Eine Richtung ist an dieser Stelle nicht relevant, nur die Achse selbst. -
Erstellen Sie unter dem letzten Gelenk genau ein TCP-Objekt mit
{tcp}und einem lokalen Richtungstag ({x},{y},{z},{x-},{y-},{z-}). -
Erstellen Sie Ziel-Positionen mit 3D-Objekten (z.B. ein 'Cone') als direkte Children der Basis, richten Sie deren lokale Achsen wie das TCP aus und vergeben Sie eindeutige Tags wie
{RobotPos1},{RobotPos2}, ...{RobotPos1}kann über die PrgNr '1' angefahren werden. -
Exportieren Sie das Modell mit dem PLC-Lab-3D-Studio-Plug-in als FBX-Datei. Bei diesem Export werden alle 3D-Objekte automatisch auf '1' skaliert. Prüfen Sie in PLC-Lab 3D Studio die erkannten Achsen, Gelenkgrenzen, Zielpositionen, TCP-Richtung, Home-Pose und Bewegungsparameter. Klicken Sie mit der Maus auf die Basis. Die Eigenschaften öffnen sich. Mit dem Demo-Modus können Sie die Bewegungen testen.
-
Steuern Sie den Roboter aus der SPS entweder über
PrgNr, Offsets und einen Startimpuls oder über vorkonfigurierte Waypoint-Programme. Werten Sie für den Abschluss einer Bewegung die positive Flanke vonReadyaus.
Im Bild ist der TCP (orangenes Objekt) ein Magnet, der die Cubes greifen kann. Die 5 gelben Objekte sind die Roboterziele.
Blender Plugin verwenden¶
| Plugin | Info |
|---|---|
![]() |
Wir haben neue Funktionen in das Blender Plugin von PLC-Lab 3D Studio integriert. Damit können Sie die Achsen, Drehpunkte, TCP und Targets ohne viel Aufwand festlegen. Bitte installieren Sie das Plugin in Blender. Infos und Download. |
Nützliche Blender-Hotkeys¶
| Aufgabe | Bedienung |
|---|---|
| Objekt auswählen | Linke Maustaste |
| Mehrere Objekte auswählen | Shift + linke Maustaste |
| Alles auswählen | A |
| Verschieben | G, danach optional X, Y oder Z |
| Drehen | R, danach optional X, Y oder Z |
| Um eine lokale Achse drehen | Transform Orientation auf Local stellen oder Achse zweimal drücken, z. B. R, X, X |
| Skalieren | S |
| Exakten Wert eingeben | Bedienung starten, Wert eingeben, Enter, z. B. S, 1000, Enter |
| Duplizieren | Shift + D |
| Parent festlegen | Zuerst Child, dann mit Shift den Parent auswählen, anschließend Ctrl + P → Object (Keep Transform) |
| Parent entfernen | Alt + P → Clear Parent (Keep Transform) |
| Transformation anwenden | Ctrl + A → Rotation & Scale oder nur Rotation |
| Seitenleiste mit Position und Rotation | N |
| Objekt hinzufügen | Shift + A |
| Befehl suchen | F3 |
| Objektursprung zum 3D-Cursor setzen | F3 → Origin to 3D Cursor |
Die Transform Orientation finden Sie oben im 3D-Fenster. Für die Gelenke muss Local verwendet werden.
Diese Seite als YouTube Video¶
Video: 40 Minuten Schulungsvideo. 6-Achs-Roboter importieren, konfigurieren und simulieren.
Schauen Sie sich das Video an
Die nachfolgenden Abschnitte sind eine Zusammenfassung des Videos. Wir empfehlen Ihnen, das Video anzusehen, da dort die einzelnen Schritte ausführlich demonstriert werden.
Abschnitte aus dem Video:
CAD-Datei eines KUKA-Roboters importieren¶
Ziehen Sie das 3D-Modell im Blender-kompatiblen Format per Drag-and-Drop in die Software und bestätigen Sie den Importdialog. Meist ist das Modell anfänglich in einer falschen Größe oder Lage. Wählen Sie den Roboter aus, drücken Sie im PLC-Lab 3D Studio Plugin auf Scale Robot 1m, um die Größe anzupassen. Falls der Roboter liegt, richten Sie ihn mit den Hotkeys R, X und Eingabe von -90 auf.
Nicht benötigte 3D-Objekte des Roboters entfernen¶
Wählen Sie alle Objekte, Abdeckungen oder Kabel, die für die Simulation nicht sichtbar sein sollen, aus und löschen Sie diese mit Entf. Um die verbleibenden Komponenten farblich anzupassen, markieren Sie die entsprechenden Teile, wählen zuletzt die Roboterbasis an (die das gewünschte Material trägt) und übertragen die Farbe mit Strg + L → Link Materials.
Mesh vereinfachen¶
Herstellermodelle enthalten häufig sehr viele Polygone und kleine Details. Wenn Sie das Mesh vereinfachen, erhöht das die Performance in PLC-Lab 3D Studio und das Laden der Szene beschleunigt sich.
Mögliche Optimierungen des Roboters:
- Entfernen Sie Schläuche, Halterungen, unsichtbare Innenteile, wenn sie für die Darstellung nicht wichtig sind.
- Löschen Sie Geometrie innerhalb geschlossener Gehäuse.
- Verwenden Sie den Modifier Limited Dissolve und reduzieren Sie die Anzahl der Kanten.
- Verwenden Sie den Modifier Decimate (Mesh-Details reduzieren) und reduzieren Sie den Wert vorsichtig.
- Verwenden Sie im Edit Mode Merge by Distance, um doppelte Punkte zu entfernen.
- Reduzieren Sie unnötig viele Materialien (Farben).
- Entfernen Sie nicht verwendete Objekte und Materialien.
Farben festlegen¶
Die Materialfarben können über das PLC-Lab-3D-Studio-Plug-in eingestellt werden. Vorhandene Bildtexturen des Herstellermodells werden aus Geschwindigkeitsgründen nicht übernommen. Verwenden Sie deshalb einfache Materialfarben aus den PLC-Lab-3D-Studio-Assets.
Skill „RobotKinematicsV2“ an der Roboterbasis einfügen¶
Wählen Sie die Hauptbasis des Roboters aus. Klicken Sie im PLC-Lab 3D Studio Plugin unter der Rubrik Skill Actuators auf Robot Kinematics V2. Der Name des Basisobjekts wird dadurch automatisch um den Tag {RobotKinematicsV2} ergänzt.
Roboterachsen konfigurieren und lokale Drehachse festlegen¶
Jedes Drehgelenk muss individuell vorbereitet werden. Isolieren Sie das jeweilige Gelenk in der lokalen Ansicht (Taste /). Ändern Sie in Blender die Ausrichtung (Transformation orientation) zu Local. Vergrößern Sie die Ansicht, dass die Achse möglichst den ganzen Bildschirm umfasst. Klicken Sie im Plugin auf Try find Origin of Axis (Plugin-Abschnitt Robot). Der Algorithmus sucht nach der Kreisgeometrie des Gelenks in der aktuellen Ansicht, setzt den Objektursprung präzise in das Drehzentrum und fügt den korrekten lokalen Achsentag (z.B. {y} oder {z}) in den Objektnamen ein. Wiederholen Sie diesen Vorgang für alle sechs Achsen. Nach diesem Vorgang sind alle Achsen - danach muss noch die richtige Hierarchie der Achsen festgelegt werden. Siehe nächsten Abschnitt.
Der Skill erkennt die Reihenfolge der Gelenke über die Hierarchie, nicht über Namen wie „Achse 1“ oder „Achse 2“. Im nächsten Abschnitt wird die Hierarchie festgelegt.
Achsenhierarchie festlegen (Parent-Child-Beziehungen)¶
Damit der Roboter Bewegungen korrekt weitergibt, muss eine Parent-Child-Struktur aufgebaut werden: Die Basis ist das Haupt-Parent (root) und Parent von Gelenk 1, Gelenk 1 ist Parent von Gelenk 2 usw.
Markieren Sie alle untergeordneten Komponenten, wählen Sie zuletzt das übergeordnete Gelenk aus und verknüpfen Sie diese mit Strg + P → Object (Keep Transform). Prüfen Sie abschließend mit Drehungen (R + lokale Achse), ob alle angehängten Bauteile korrekt mitgeführt werden.
Basis
└── Gelenk 1
└── Gelenk 2
└── Gelenk 3
└── Gelenk 4
└── Gelenk 5
└── Gelenk 6
└── TCP (Greifer, Magnet oder Werkzeugmittelpunkt)
TCP-Objekt einfügen¶
Wählen Sie das letzte Gelenk an. Klicken Sie im Plugin auf die Funktion zum Einfügen eines TCP-Objekts. Ein Würfel wird generiert und dem letzten Gelenk untergeordnet. Passen Sie dessen Form und Skalierung nach Bedarf an. Dieses TCP definiert den Werkzeugmittelpunkt, an dem später ein Greifer oder Magnet montiert wird.
TCP bedeutet Tool Center Point. Das ist der Werkzeugmittelpunkt, der später zu den Roboterzielen bewegt wird.
Beispiele:
- Mittelpunkt eines Sauggreifers,
- Greifpunkt eines mechanischen Greifers,
- Mittelpunkt eines Magneten,
- Werkzeugspitze.
Das TCP-Objekt muss Child des letzten Gelenks sein und genau einmal vorhanden sein. Das TCP-Objekt muss mit {tcp} getaggt werden. Den zugehörigen Richtungstag (z.B. {z}) finden Sie im Blender-Plug-in unter Skill Modifiers → Reference Axis.
Beispiele:
Beim TCP ist die Richtungstag wichtig. Sie wird unter anderem für das Zurückziehen vor einem Ziel verwendet.
TCP-Ursprung und Rotation:
Der Ursprung des TCP-Objekts ist die genaue Zielposition des Roboters. Sie können auch zusätzlich einen kleinen Cube als TCP-Objekt einfügen und es als Child unterhalb des letzten Gelenks platzieren. Mit {Hide} kann er in der Simulation unsichtbar geschaltet werden.
- Platzieren Sie den Ursprung am tatsächlichen Greifpunkt.
- Rotieren Sie das TCP-Objekt so, dass die Arbeitsrichtung in die gewünschte Richtung zeigt.
- Wenden Sie die Rotation an:
Ctrl+A→ Rotation. - Die Rotation des TCP-Objekts sollte danach in Blender
0, 0, 0anzeigen.
Beispiel für die vollständige Hierarchie¶
Beispielhaftes Ergebnis:
Basis {RobotKinematicsV2}
└── Gelenk 1 {y}
└── Gelenk 2 {z}
└── Gelenk 3 {y}
└── Gelenk 4 {z}
└── Gelenk 5 {x}
└── Gelenk 6 {z}
└── TCP {tcp} {z-}
Bild: Die Hierarchie des Roboters in Blender.
Home-Position und Nullstellung festlegen¶
Die Pose, die in Blender exportiert wird, ist gleichzeitig die Home-Position des Roboters. Wählen Sie keine zufällige oder vollständig gestreckte Pose. Eine vollständig gestreckte Haltung (eine sogenannte Singularität) führt dazu, dass es für die inverse Kinematik keine eindeutige mathematische Lösung gibt. Dies kann bei der Berechnung der Zielpositionen zu unkontrollierbaren oder unerwarteten Ausgleichsbewegungen der Gelenke führen.
In PLC-Lab 3D Studio entspricht der Gelenkwinkel 0° der beim Export in Blender eingestellten Pose. Diese Pose muss nicht mit der mechanischen Nullstellung aus dem Herstellerdatenblatt übereinstimmen.
Empfohlen ist eine Pose, die in der Nähe eines RoboterPos-Ziels liegt. Zum Beispiel:
- eine erhöhte Position eines Targets,
- eine Position in der Nähe von
{RobotPos?},
Diese Ausgangspose hilft dem Berechnungsalgorithmus. Für dieselbe TCP-Position gibt es immer mehrere mögliche Gelenkstellungen. Eine sinnvolle Home-Pose reduziert unschöne Gelenkrotationen.
Wenn die Simulation in den Stop-Modus wechselt, fährt der Roboter innerhalb einer Sekunde zurück in diese Home-Position.
Roboterziele definieren und damit Teach-Punkte "RobotPos" festlegen¶
Wählen Sie das TCP-Objekt an und klicken Sie im Plugin auf Insert Robot Pos Cone. Ein Kegel wird erzeugt, der die erste Zielposition ({RobotPos1}) repräsentiert. Erstellen Sie mit Umschalt + D beliebig viele Kopien (z.B. {RobotPos2}, {RobotPos3}) und positionieren Sie diese im virtuellen Raum (z.B. über einem Transportband). Stellen Sie sicher, dass alle "RobotPos"-Objekte direkte Children der Roboterbasis sind.
Jeder Cone erhält eine eindeutige Programmnummer:
Beispiele mit zusätzlichem Text, damit Sie die Ziele in der Blender-Szene besser unterscheiden können:
Regeln:
- Jede Nummer darf nur einmal vorkommen. Die Nummer ist später über
PrgNrin der SPS auswählbar. - Jeder RobotPos-Cone muss direkter Child der Roboterbasis sein.
- RobotPos-Objekte dürfen nicht unter einem beweglichen Gelenk liegen.
- Alle RobotPos-Objekte bewegen sich dadurch gemeinsam mit einer bewegten Roboterbasis.
Bild: Die gelben Objekte sind die Roboterziele. Jedes Ziel hat im Namen {RobotPos[Nr]}.
Beispielhierarchie:
Basis {RobotKinematicsV2}
├── Gelenk 1 {z}
│ └── ...
├── Aufnahme {RobotPos1}
├── Ablage links {RobotPos2}
└── Ablage rechts {RobotPos3}
Projektordner erstellen, Blender-Datei speichern und FBX exportieren¶
Wenn Hierarchie, Achsen, TCP, Ziele und Home-Pose geprüft wurden:
- Drücken Sie
Strg + Sund erstellen Sie einen neuen Projektordner auf Ihrer Festplatte. Speichern Sie dort Ihre Blender-Datei (.blend). - Starten Sie die Exportfunktion des PLC-Lab 3D Studio Plugins. Das Modell mitsamt Hierarchie, Tags und Zielpositionen wird als FBX-Datei in den Projektordner exportiert. Bei diesem Vorgang werden alle 3D-Objekte automatisch auf '1' skaliert.
Jetzt kann die FBX-Datei in PLC-Lab 3D Studio geöffnet werden.
Projekt in PLC-Lab 3D Studio öffnen und RobotKinematicsV2 prüfen¶
- Öffnen Sie die exportierte FBX-Datei in PLC-Lab 3D Studio.
- Navigieren Sie zu einer übersichtlichen Ansicht, in der der gesamte Roboter sowie alle Ziel-Kegel gut sichtbar sind. Speichern Sie diese Standardansicht mit
Shift+1als Kameraposition 1. - Klicken Sie auf die Roboterbasis. Im Eigenschaftenfenster sollten nun die Einstellungen von
RobotKinematicsV2erscheinen.
Wenn keine Einstellungen erscheinen, prüfen Sie den Tag {RobotKinematicsV2} an der Basis.
Bild: Einstellungen des RobotKinematicsV2-Skills in PLC-Lab 3D Studio. Sind die Einstellungen geöffnet werden die Gelenke in verschiedenen Farben angezeigt.
Erkannte Achsen prüfen¶
NumberOfAxes
Hier wird die Anzahl der erkannten Gelenke angezeigt. Für einen Sechsachsroboter muss dort normalerweise 6 stehen. Eine falsche Anzahl deutet meist auf eines dieser Probleme hin:
- Ein Gelenk besitzt keinen Achsentag (
{x},{y}oder{z}). - Ein Gelenk liegt nicht in der Hierarchie.
- Mehrere markierte Gelenke befinden sich auf derselben Hierarchiestufe.
- Das TCP wurde versehentlich als Gelenk markiert.
Gelenke mit Abschnitt Joints prüfen¶
Für jedes erkannte Gelenk werden Einstellungen angezeigt.
Fahren Sie jedes Gelenk mit den Buttons in die Min- und Max-Position. Stellen Sie sinnvolle Grenzen ein, die den mechanischen Grenzen des Roboters entsprechen. Die Winkel werden in Grad angegeben. Aktivieren Sie UseLimits, damit die eingestellten Grenzen berücksichtigt werden.
Einstellungen:
-
JointAxis: festgelegte lokale Drehachse. -
UseLimits: aktiviert die Winkelbegrenzung. -
MinAngleDeg: kleinster erlaubter Winkel in Grad. -
MaxAngleDeg: größter erlaubter Winkel in Grad.
Prüfen Sie:
-
Dreht sich die richtige Achse?
-
Dreht sie sich um den richtigen Ursprung?
-
Bewegen sich alle nachfolgenden Gelenke mit?
-
Sind Minimum und Maximum sinnvoll?
Zielpositionen im Abschnitt RobotTargets prüfen¶
Hier werden die in Blender definierten RobotPos-Ziele aufgelistet, wenn diese erkannt wurden.
Prüfen Sie, ob alle Targets, die Sie in Blender erstellt haben, hier erscheinen.
Mit dem Button können Sie im Simulations-Stopp-Modus den Roboter direkt zu diesem Ziel fahren. Wenn das Ziel außerhalb der Reichweite liegt, färben sich alle Achsen rot ein. Skalieren Sie in diesem Fall den Roboter in Blender größer oder passen Sie die Zielposition an.
So skalieren Sie den Roboter in Blender, ohne die Zielpositionen mitzuskalieren:
Blenden Sie alle Objekte außer dem Roboter mit H aus. Aktivieren Sie im N-Panel unter Tool die Option Parents. Wählen Sie anschließend alle Roboterobjekte aus, indem Sie mit der Maus ein Auswahlrechteck aufziehen, und skalieren Sie diese mit S. Blenden Sie danach die zuvor ausgeblendeten Objekte mit Alt + H wieder ein und deaktivieren Sie die Option Parents.
Allgemeine Einstellungen im Skill RobotKinematicsV2¶
FollowTargetRotation¶
Aktivieren Sie diese Einstellung, wenn der Roboter neben der Position auch die Rotation des RobotPos-Cones übernehmen soll. Für Greif- und Ablageaufgaben sollte diese Einstellung normalerweise eingeschaltet sein.
Visuelle Hilfen¶
-
ShowTargets: zeigt die Roboterziele an. -
ShowTrail: zeigt die gefahrene Bahn an. -
ShowOperatingRange: zeigt den geschätzten Arbeitsbereich des Roboters an. -
ShowPretargets: zeigt die Vorpositionen für das Zurückziehen an. -
ShowWorkingHeight: zeigt die eingestellte Arbeitshöhe an. -
ColorRobotAxisObjects: färbt die Objekte der einzelnen Achsen unterschiedlich ein.
Wenn ein Ziel nicht erreichbar ist, färben sich alle Achsen des Roboters rot ein.
Abschnitt Movement¶
DefaultDurationInSeconds¶
Dieser Wert bestimmt die normale Fahrzeit zu einem Ziel und damit die Geschwindigkeit des Roboters. Die Zeit wird in Sekunden angegeben. Der Wert gibt die Dauer der vollständigen Bewegung an. Die daraus resultierende Geschwindigkeit hängt von der Entfernung zum Ziel und von den erforderlichen Gelenkbewegungen ab.
Empfohlener Startwert: 2 bis 3 Sekunden.
UseCircularTrack¶
Aktivieren Sie diese Einstellung, damit die Bewegung von der aktuellen zur nächsten Zielposition auf einer Kreisbahn erfolgt. Die Kreisbahn wird anhand der beiden Positionen (aktuelle Position und Zielposition) und des Mittelpunkts der Roboterbasis interpoliert. (Empfohlen)
PreMoveRetractionDistance¶
Dieser Wert legt fest, wie weit sich der TCP vor dem Wechsel zu einem anderen Ziel zunächst entlang seiner Arbeitsrichtung zurückzieht.
Beispiel: 0.10 = 10 cm
Der Wert ist besonders für Greifer oder Magnete sinnvoll. Dadurch wird ein Werkstück zuerst senkrecht vom Aufnahme- oder Ablagepunkt wegbewegt. Diese Option erspart die Definition von zusätzlichen RobotPos-Zielen, die nur für das Zurückziehen verwendet werden.
WorkingHeight¶
Die Arbeitshöhe (m) wird als globale Y-Höhe über dem Ursprung der Roboterbasis verwendet.
Ist eine Arbeitshöhe eingestellt, fährt der Roboter zunächst auf diese Höhe, bewegt sich dort zum nächsten Zielbereich und fährt anschließend zum Ziel.
Wählen Sie eine Höhe, bei der der Greifer über Transportbändern, Kisten und anderen Hindernissen liegt.
Empfehlung: Verwenden Sie entweder WorkingHeight oder PreMoveRetractionDistance, nicht beide gleichzeitig.
DemoMode¶
DemoMode kann nur im Simulations-Stop-Zustand verwendet werden.
Wenn Sie den Schalter aktivieren, fährt der Roboter die definierten RobotTargets nacheinander in einer Schleife an.
Prüfen Sie dabei, ob alle Ziele innerhalb des berechneten Arbeitsbereichs und der gesetzten Gelenkwinkel erreichbar sind. Ist ein Ziel nicht erreichbar, färben sich die Achsen des Roboters rot.
Damit prüfen Sie schnell:
- Zielpositionen,
- Zielrotationen,
- Geschwindigkeit,
- Gelenkgrenzen,
- Arbeitshöhe,
- Rückzugsbewegungen,
- Kreisbahnen.
Beim Ausschalten des Demo-Modus fährt der Roboter zurück in die in Blender festgelegte Home-Position.
Roboter aus dem SPS-Programm steuern¶
Variante 1: Ziel über Programmnummer (PrgNr) anfahren¶
Diese Variante verwendet eine Programmnummer (PrgNr) und optionale kartesische Offsets.
Befehle an den Roboter (Ausgänge der SPS)¶
| Eigenschaft | Typ | Funktion |
|---|---|---|
Enable |
BOOL | Gibt den Roboter frei. |
Start |
BOOL | Eine positive Flanke startet die Bewegung. |
Stop |
BOOL | Bricht eine laufende Bewegung ab. |
PrgNr |
Ganzzahl | Nummer des RobotPos-Ziels, zum Beispiel 2 für {RobotPos2}. |
TargetOfsX |
Gleitkommazahl | Offset in globaler X-Richtung in Metern. Hinweis: Bezieht sich auf das starre Weltkoordinatensystem der 3D-Szene. |
TargetOfsY |
Gleitkommazahl | Offset in globaler Y-Richtung in Metern. Bezieht sich auf das Weltkoordinatensystem. |
TargetOfsZ |
Gleitkommazahl | Offset in globaler Z-Richtung in Metern. Bezieht sich auf das Weltkoordinatensystem. |
Sensoren des Roboters (Eingänge der SPS)¶
| Eigenschaft | Typ | Funktion |
|---|---|---|
Ready |
BOOL | Der Roboter ist bereit für einen neuen Auftrag. |
IsMoving |
BOOL | Der Roboter führt gerade eine Bewegung aus. |
TargetOutOfRange |
BOOL | Die gewünschte Position konnte nicht erreicht werden. |
Ablauf im SPS-Programm¶
- Setzen Sie
Enableauf TRUE. (Kann dauerhaft TRUE bleiben, indem im Eigenschaftenfenster1angegeben wird.) - Schreiben Sie die gewünschte Zielnummer in
PrgNr. - Schreiben Sie bei Bedarf Werte in
TargetOfsX,TargetOfsYundTargetOfsZ, wenn Sie den TCP zusätzlich in Weltkoordinaten verschieben möchten. - Erzeugen Sie an
Starteine positive Flanke. - Eine positive Flanke von
IsMovingbedeutet, dass sich der Roboter in Richtung Ziel bewegt. - Eine positive Flanke von
Readybedeutet, dass der Roboter das Ziel erreicht hat.
Wichtig: Prüfen Sie nach dem Start nicht nur den Zustand von
Ready. Das Signal kann von der vorherigen Bewegung noch TRUE sein. Da SPS-Programm und Robotersimulation asynchron laufen, wirdReadyerst nach dem Start der neuen Bewegung FALSE und nach dem Erreichen des Ziels wieder TRUE. Werten Sie deshalb die positive Flanke vonReadyaus.
Typischer Einsatz von Offsets¶
Offsets sind sinnvoll, wenn viele Positionen regelmäßig angeordnet sind, zum Beispiel:
- Fächer einer Kiste,
- Positionen auf einer Palette,
- mehrere Ablageplätze mit gleichem Abstand.
Dann genügt ein RobotPos-Grundziel. Die genaue Fachposition wird über X-, Y- und Z-Offset berechnet.
Variante 2: Ziele über Waypoints anfahren¶
Mit Waypoints können Sie eine feste Folge aus einem oder mehreren RobotTargets definieren.
Diese Variante eignet sich für eine einfachere SPS-Programmierung des Roboters, da keine Analogwertverarbeitung notwendig ist.
Das SPS-Programm arbeitet nur mit einem BOOL-Startimpuls und einem BOOL Ready-Signal; eine Verarbeitung von Programmnummern ist nicht erforderlich. Jedes Waypoint-Programm kann mit einem BOOL-Operanden verknüpft werden.
Eigenschaften eines Waypoint-Programms¶
| Eigenschaft | Funktion |
|---|---|
Start |
BOOL-Operand. Eine positive Flanke startet das Waypoint-Programm. |
PrgNr |
Optionale Programmnummer. Damit kann die Folge auch über den allgemeinen Eingang PrgNr und Start aufgerufen werden. |
StartForEveryTarget |
Ist diese Option aus, startet ein Impuls die komplette Folge. Ist sie ein, benötigt jeder nächste Wegpunkt einen weiteren Startimpuls. |
UseLevelTriggeredStart |
Ist UseLevelTriggeredStart deaktiviert, wird nur auf eine positive Flanke des Startsignals reagiert. Ist die Option aktiviert, wird ein anliegendes TRUE-Signal als Startanforderung ausgewertet. |
Targets |
Liste der anzufahrenden RobotPos-Ziele. |
Verwenden Sie für PrgNr eine Nummer, die nicht bereits von einem direkten RobotPos-Ziel verwendet wird.
Eigenschaften eines einzelnen Waypoint¶
| Eigenschaft | Funktion |
|---|---|
TargetNr |
Nummer eines vorhandenen RobotPos-Ziels. |
DurationToTargetInSeconds |
Fahrzeit zu diesem Ziel. |
PauseInSecondsAfterMovement |
Wartezeit nach dem Erreichen des Ziels. |
PreMoveRetractionDistance |
Individueller Rückzugsweg für diesen Wegpunkt. |
Bild: Einstellungen eines Waypoint-Programms in PLC-Lab 3D Studio. Die Bezeichnungen „Waypoints 0“ und „Targets 0“ sind nullbasierte Listenindizes der Benutzeroberfläche. Sie sind nicht mit PrgNr oder TargetNr identisch.
Hinweise zu Waypoints¶
TargetNrverweist immer auf ein vorhandenes{RobotPos...}-Objekt.- Die Reihenfolge in der Liste ist die Fahrreihenfolge.
- Jeder Wegpunkt kann eine eigene Fahrzeit und Pause besitzen.
- Jeder Wegpunkt kann eine eigene
PreMoveRetractionDistancebesitzen. - Die globalen X-, Y- und Z-Offsets werden für die feste Waypoint-Folge normalerweise nicht benötigt.
- Die globale
WorkingHeightwird bei Waypoint-Folgen nicht verwendet. Verwenden Sie stattdessen geeignete Zwischenziele. UseCircularTrackwird für geeignete Waypoint-Bewegungen berücksichtigt.
Zwischenziele verwenden¶
Wenn der Roboter Hindernisse umfahren soll, erstellen Sie zusätzliche RobotPos-Ziele, zum Beispiel:
{RobotPos10} = sichere Position über der Aufnahme
{RobotPos11} = Aufnahme
{RobotPos12} = sichere Position über der Ablage
{RobotPos13} = Ablage
Diese Ziele werden anschließend in der gewünschten Reihenfolge in die Waypoint-Liste eingetragen.
Die Koordinatensysteme¶
| Einstellung | Koordinatensystem |
|---|---|
Gelenktag {x}, {y}, {z} |
Lokales Koordinatensystem des Gelenks |
| TCP-Richtung | Lokales Koordinatensystem des TCP |
| RobotPos-Position | Weltkoordinatensystem der 3D-Szene. Relativ zur Roboterbasis gespeichert |
TargetOfsX/Y/Z |
Weltkoordinatensystem der 3D-Szene |
WorkingHeight |
Bezogen auf die Roboterbasis. |
Der Skill RobotKinematicsV2¶
Hier finden Sie alle Einstellungen des Skills im Überblick..
Fehlerprüfung¶
Ziel/Rotation wird nicht erreicht¶
Prüfen Sie:
- Ist
TargetOutOfRangeTRUE? - Liegt das Ziel innerhalb der tatsächlichen Reichweite? Roboter evtl. größer skalieren oder Ziel näher an den Roboter setzen.
- Ist die geforderte Zielrotation erreichbar?
- Sind die Gelenkgrenzen zu eng eingestellt?
- Ist
FollowTargetRotationeingeschaltet? - Ist die Home-Pose sinnvoll gewählt?
- Ist der Roboter vollständig gestreckt und damit in einer ungünstigen Stellung?
TCP zeigt in die falsche Richtung¶
Prüfen Sie:
- Ist genau ein TCP vorhanden?
- Liegt das TCP unter Gelenk 6?
- Ist der Ursprung am tatsächlichen Greifpunkt?
- Ist der Richtungstag korrekt?
- Muss
{x}gegen{x-}oder ein anderer Richtungstag getauscht werden? - Wurde die TCP-Rotation in Blender angewendet?
Falsche Anzahl von Achsen¶
Prüfen Sie:
- Besitzt jedes der sechs Gelenke genau einen Achsentag?
- Sind alle Gelenke seriell miteinander verbunden?
- Gibt es versehentlich zwei getaggte Gelenke auf derselben Hierarchiestufe?
- Wurde das TCP irrtümlich als Gelenk erkannt?
