FB_EllipticSpline - CalcSplineExtended (Methode)

Übersicht

Typ:

Methode

Verfügbar ab:

V2.5.0.0

Dieses Kapitel enthält Informationen zu folgenden Aspekten:

oAufgabenstellung

oBeschreibung

oSchnittstelle

oDiagnosemeldungen

Aufgabenstellung

Berechnen von Kurvenpunkten für eine elliptische Kurve.

Beschreibung

Auf der Grundlage der Eingänge i_stStart, i_stTarget und i_lrAbsHeight, der zusätzlichen Parameter in iq_stConfiguration und des Werts der Eigenschaft udiNumber­OfSplinePoints berechnet diese Methode eine Positionstabelle für eine Kurveninterpolation (Spline-Interpolation) im dreidimensionalen Raum. Die Verfahrbewegung entlang dieser Positionen kann mittels des Fahrbefehls IF_RobotMotion.MoveS umgesetzt werden. Eine Positionstabelle wird von der Startposition bis zur Zielposition sowie von der Zielposition bis zur Startposition berechnet.

Siehe auch Kapitel Verhalten der Methode FB_EllipticSpline.CalcSplineExtended.

Schnittstelle

Eingang

Datentyp

Beschreibung

i_stStart

PDL.ST_Vector3D

Startposition in kartesischen Koordinaten.

i_stTarget

PDL.ST_Vector3D

Zielposition in kartesischen Koordinaten.

i_lrAbsHeight

LREAL

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

Eingang/Ausgang

Datentyp

Beschreibung

iq_stConfiguration

ST_CalcSplineExtendedConfiguration

Zusätzliche Konfigurationsparameter für die zu berechnende elliptische Kurve.

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

Bausteinspezifischer 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_stFeedback

ST_CalcSplineExtendedFeedback

Rückmeldungsdaten der erfolgreichen Berechnung einer elliptischen Kurve.

Diagnosemeldungen

q_etDiag

q_etDiagExt

Enumerationswert

Beschreibung

OK

Ok

0

Ok

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.

InputParameterInvalid

ScalingFactorRange

162

Der Skalierungsfaktor ist außerhalb des Bereichs.

ExecutionAborted

NoSolutionFound

137

Es ist keine Lösung verfügbar.

UnexpectedProgramBehavior

UnexpectedFeedback

13

Ein Rückgabewert war ungültig.

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 erfolgreich.

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

Darauf achten, dass udiNumberOfSplinePoints größer oder gleich (3 + iq_stConfiguration. diStartNumberOfVerticalPoints + iq_stConfiguration.diTargetNumberOfVerticalPoints) ist.

Darauf achten, dass der Wert kleiner oder gleich 98 ist.

NoSolutionFound

Enumerationsname:

NoSolutionFound

Enumerationswert:

137

Beschreibung:

Es ist keine Lösung verfügbar.

Problem

Ursache

Lösung

Die Berechnung der elliptischen Kurve war nicht erfolgreich.

Auf der Grundlage der angegebenen Parameter wurde keine Kurve berechnet.

Sicherstellen, dass der Abstand zwischen der Startposition, der Zielposition und der absoluten Höhe der Kurve nicht zu klein ist.

ScalingFactorRange

Enumerationsname:

ScalingFactorRange

Enumerationswert:

162

Beschreibung:

Der Skalierungsfaktor ist außerhalb des Bereichs.

Problem

Ursache

Lösung

Die Berechnung der elliptischen Kurve war nicht erfolgreich.

Der am Eingang iq_stConfiguration.lrApexScalingFactor übergebene Wert liegt außerhalb des gültigen Bereichs.

Sicherstellen, dass der für iq_stConfiguration.lrApexScalingFactor übergebene Wert innerhalb eines Wertebereichs größer oder gleich -1,0 und kleiner oder gleich 1,0 liegt.

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.

Die am Eingang i_stStart übergebene Startposition ist ungültig.

Sicherstellen, dass die Startposition i_stStart.lrZ kleiner ist als i_lrAbsHeight oder auf derselben Höhe liegt.

Das Hindernis an der Startposition liegt außerhalb der Grenzen der Kurve.

Sicherstellen, dass:

oi_stStart.lrZ + iq_stConfiguration. lrStartObstacleHeight kleiner ist als i_lrAbsHeight.

oiq_stConfiguration. lrStartObstacleDistance kleiner ist als der Halbast der Ellipse.

oDer Wert von iq_stConfiguration.lrStartObstacleDistance ist positiv.

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.

Die am Eingang i_stTarget übergebene Startposition ist ungültig.

Sicherstellen, dass die Startposition i_stTarget.lrZ kleiner als i_lrAbsHeight ist oder auf derselben Höhe liegt.

Das Hindernis an der Zielposition liegt außerhalb der Grenzen der Kurve.

Sicherstellen, dass:

oi_stTarget.lrZ + iq_stConfiguration. lrStartObstacleHeight kleiner ist als i_lrAbsHeight.

oiq_stConfiguration. lrTargetObstacleDistance kleiner ist als der Halbast der Ellipse.

oDer Wert von iq_stConfiguration.lrTargetObstacleDistance ist positiv.

Ok

Enumerationsname:

Ok

Enumerationswert:

0

Beschreibung:

Ok

Die Berechnung der elliptischen Kurve war erfolgreich.

UnexpectedFeedback

Enumerationsname:

UnexpectedFeedback

Enumerationswert:

13

Beschreibung:

Ein Rückgabewert war ungültig.

Problem

Ursache

Lösung

Die Berechnung der elliptischen Kurve war nicht erfolgreich.

Ein Rückgabewert war ungültig.

-