FB_EllipticSpline - CalcSplineExtended (Methode)
Typ: |
Methode |
Verfügbar ab: |
V2.5.0.0 |
Dieses Kapitel enthält Informationen zu folgenden Aspekten:
Berechnen von Kurvenpunkten für eine elliptische Kurve.
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 udiNumberOfSplinePoints 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.
Eingang |
Datentyp |
Beschreibung |
---|---|---|
i_stStart |
Startposition in kartesischen Koordinaten. |
|
i_stTarget |
Zielposition in kartesischen Koordinaten. |
|
i_lrAbsHeight |
LREAL |
Absolute Höhe des Scheitelpunkts (des Apex) der elliptischen Kurve. |
Eingang/Ausgang |
Datentyp |
Beschreibung |
---|---|---|
iq_stConfiguration |
Zusätzliche Konfigurationsparameter für die zu berechnende elliptische Kurve. |
Ausgang |
Datentyp |
Beschreibung |
---|---|---|
q_etDiag |
Allgemeingültige, bibliotheksunabhängige Aussage zur Diagnose. Ein Wert ungleich ET_Diag.Ok entspricht einer Diagnosemeldung. |
|
q_etDiagExt |
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 |
Berechnete Kurventabelle von der Start- bis zur Endposition. |
|
q_stReverse |
Berechnete Kurventabelle von der End- bis zur Startposition. |
|
q_stFeedback |
Rückmeldungsdaten der erfolgreichen Berechnung einer elliptischen Kurve. |
q_etDiag |
q_etDiagExt |
Enumerationswert |
Beschreibung |
---|---|---|---|
OK |
0 |
Ok |
|
InputParameterInvalid |
89 |
Die Anzahl der Kurvenpunkte ist außerhalb des Bereichs. |
|
InputParameterInvalid |
164 |
Die Start-Position ist ungültig. |
|
InputParameterInvalid |
91 |
Das Target ist ungültig. |
|
InputParameterInvalid |
162 |
Der Skalierungsfaktor ist außerhalb des Bereichs. |
|
ExecutionAborted |
137 |
Es ist keine Lösung verfügbar. |
|
UnexpectedProgramBehavior |
13 |
Ein Rückgabewert war ungültig. |
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. |
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. |
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. |
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. |
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. |
Enumerationsname: |
Ok |
Enumerationswert: |
0 |
Beschreibung: |
Ok |
Die Berechnung der elliptischen Kurve war erfolgreich.
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. |
- |