FB_EllipticSpline - CalcFullSpline (Methode)

Überblick

Typ:

Methode

Verfügbar ab:

V1.4.1.0

Dieses Kapitel enthält Informationen zu folgenden Aspekten:

Aufgabe

Berechnen von Kurvenpunkten für eine elliptische Kurve.

Beschreibung

Auf der Grundlage der Eingänge i_stStart, i_stTarget und i_lrAbsHeight und des Werts der Eigenschaft udiNumberOfSplinePoints berechnet diese Methode eine Positionstabelle für eine Kurveninterpolation im dreidimensionalen Raum. Die Verfahrbewegung entlang dieser Positionen kann mit dem Fahrbefehl IF_RobotMotion.MoveS realisiert werden. Eine Positionstabelle wird von der Startposition bis zur Zielposition sowie von der Zielposition bis zur Startposition berechnet. Dazu werden immer zwei ellipsenförmige Halbäste berechnet: von der Startposition bis zum Scheitelpunkt (Apex) und vom Scheitelpunkt bis zur Endposition. Der Scheitelpunkt wird so berechnet, dass die Krümmung der beiden Halbäste dort gleich ist.

Vollständige Kurve von der Startposition bis zur Zielposition:

Schnittstelle

Eingang

Datentyp

Beschreibung

i_stStart

PDL.ST_Vector3D

Startposition in kartesischen Koordinaten

Wertebereich: i_stStart.lrX / lrY <> i_stTarget.lrX / lrY

i_stTarget

PDL.ST_Vector3D

Zielposition in kartesischen Koordinaten

Wertebereich: i_stStart.lrX / lrY <> i_stTarget.lrX / lrY

i_lrAbsHeight

LREAL

Absolute Höhe des Scheitelpunkts (des Apex) der elliptischen Kurve.

Wertebereich: i_lrAbsHeight > i_stStart.lrZ UND i_lrAbsHeight > i_stTarget.lrZ

Ausgang

Datentyp

Beschreibung

q_etDiag

GD.ET_Diag

Allgemeingültige, bibliotheksunabhängige Aussage zur Diagnose.

Ein Wert ungleich ET_Diag.Ok entspricht einer Diagnosemeldung.

q_etDiagExt

ET_DiagExt

POU-spezifischer Ausgang zur Diagnose.

q_etDiag = ET_Diag.Ok -> Statusmeldung

q_etDiag <> ET_Diag.Ok -> Diagnosemeldung

q_sMsg

STRING[80]

Ereignisabhängige Meldung, die zusätzliche Informationen über den Diagnosezustand gibt.

q_stForward

ST_SplineTable

Berechnete Kurventabelle von der Start- bis zur Endposition.

q_stReverse

ST_SplineTable

Berechnete Kurventabelle von der End- bis zur Startposition.

q_udiApexIndex

UDINT

Index des Kurvenpunkts, der den Scheitelpunkt der elliptischen Kurve darstellt.

q_lrApexScalingFactor

LREAL

Skalierungsfaktor des automatisch berechneten Scheitelpunkts der elliptischen Kurve.

Ein positiver Wert zeigt eine Bewegung des Scheitelpunkts in Richtung der Zielposition an, ein negativer Wert in Richtung der Startposition.

q_lrSplineLength

LREAL

Resultierende Länge der linearen Verbindungen zwischen den Kurvenpunkten der elliptischen Kurve.

Diagnosemeldungen

q_etDiag

q_etDiagExt

Enumerationswert

Beschreibung

OK

Ok

0

Ok

InputParameterInvalid

IdenticalPosition

163

Die Positionen sind identisch.

InputParameterInvalid

NumberOfSplinePointsRange

89

Die Anzahl der Kurvenpunkte ist außerhalb des Bereichs.

InputParameterInvalid

StartInvalid

164

Die Start-Position ist ungültig.

InputParameterInvalid

TargetInvalid

91

Das Target ist ungültig.

IdenticalPosition

Enumerationsname:

IdenticalPosition

Enumerationswert:

163

Beschreibung:

Die Positionen sind identisch.

Problem

Ursache

Lösung

Die Berechnung der elliptischen Kurve war nicht erfolgreich.

Die kartesischen Komponenten X und Y der Startposition (i_stStart) und der Zielposition (i_stTarget) sind in einem Bereich von 0,001 identisch.

Darauf achten, dass beide Werte nicht wechselseitig identisch sind.

NumberOfSplinePointsRange

Enumerationsname:

NumberOfSplinePointsRange

Enumerationswert:

89

Beschreibung:

Die Anzahl der Kurvenpunkte ist außerhalb des Bereichs.

Problem

Ursache

Lösung

Die Berechnung der elliptischen Kurve war nicht erfolgreich.

Der bei der Eigenschaft udiNumberOfSplinePoints übergebene Wert liegt außerhalb des gültigen Bereichs.

Darauf achten, dass udiNumberOfSplinePoints größer oder gleich 3 ist.

Darauf achten, dass udiNumberOfSplinePoints kleiner oder gleich 98 ist.

Ok

Enumerationsname:

Ok

Enumerationswert:

0

Beschreibung:

Ok

Die Berechnung der elliptischen Kurve war erfolgreich.

StartInvalid

Enumerationsname:

StartInvalid

Enumerationswert:

164

Beschreibung:

Die Start-Position ist ungültig.

Problem

Ursache

Lösung

Die Berechnung der elliptischen Kurve war nicht erfolgreich.

Die Methode SetWorkingPlane wurde aufgerufen, und die Arbeitsebene XY wird konfiguriert.

Sicherstellen, dass der Eingang i_stStart.lrZ auf 0 gesetzt ist.

Die Methode SetWorkingPlane wurde aufgerufen, und die Arbeitsebene XZ wird konfiguriert.

Sicherstellen, dass der Eingang i_stStart.lrY auf 0 gesetzt ist.

Die Methode SetWorkingPlane wurde aufgerufen, und die Arbeitsebene YZ wird konfiguriert.

Sicherstellen, dass der Eingang i_stStart.lrX auf 0 gesetzt ist.

TargetInvalid

Enumerationsname:

TargetInvalid

Enumerationswert:

91

Beschreibung:

Das Target ist ungültig.

Problem

Ursache

Lösung

Die Berechnung der elliptischen Kurve war nicht erfolgreich.

Die Methode SetWorkingPlane wurde aufgerufen, und die Arbeitsebene XY wird konfiguriert.

Sicherstellen, dass der Eingang i_stTarget.lrZ auf 0 gesetzt ist.

Die Methode SetWorkingPlane wurde aufgerufen, und die Arbeitsebene XZ wird konfiguriert.

Sicherstellen, dass der Eingang i_stTarget.lrY auf 0 gesetzt ist.

Die Methode SetWorkingPlane wurde aufgerufen, und die Arbeitsebene YZ wird konfiguriert.

Sicherstellen, dass der Eingang i_stTarget.lrX auf 0 gesetzt ist.