FB_EllipticSpline - CalcSplineExtended (Method)

Overview

Type:

Method

Available as of:

V2.5.0.0

This chapter provides information on:

Task

Calculating spline points for an elliptic spline.

Description

Based on the inputs i_stStart, i_stTarget, i_lrAbsHeight, the additional parameters in iq_stConfiguration and on the value of the property udiNumberOfSplinePoints, this method calculates a position table for a spline interpolation in three-dimensional space. Traveling along these positions can be realized by using the IF_RobotMotion.MoveS motion command. A position table is calculated from the start position to the target position as well as from the target position to the start position.

Also refer to chapter Behavior of Method FB_EllipticSpline.CalcSplineExtended.

Interface

Input

Data type

Description

i_stStart

PDL.ST_Vector3D

Start position in cartesian coordinates.

Value range: i_stStart.lrX / lrY <> i_stTarget.lrX / lrY

i_stTarget

PDL.ST_Vector3D

Target position in cartesian coordinates.

Value range: i_stStart.lrX / lrY <> i_stTarget.lrX / lrY

i_lrAbsHeight

LREAL

Absolute height of the elliptic spline apex.

Value range: i_lrAbsHeight > i_stStart.lrZ AND i_lrAbsHeight > i_stTarget.lrZ

Input/Output

Data type

Description

iq_stConfiguration

ST_CalcSplineExtendedConfiguration

Additional configuration parameters for the elliptic spline to be calculated.

Output

Data type

Description

q_etDiag

GD.ET_Diag

General library-independent statement on the diagnostic.

A value not equal to ET_Diag.Ok corresponds to a diagnostic message.

q_etDiagExt

ET_DiagExt

POU-specific output on the diagnostic.

q_etDiag = ET_Diag.Ok -> Status message

q_etDiag <> ET_Diag.Ok -> Diagnostic message

q_sMsg

STRING[80]

Event-triggered message that gives additional information on the diagnostic state.

q_stForward

ST_SplineTable

Calculated spline table from start to end position.

q_stReverse

ST_SplineTable

Calculated spline table from end to start position.

q_stFeedback

ST_CalcSplineExtendedFeedback

Feedback data of a successful calculation of an elliptic spline.

Diagnostic Messages

q_etDiag

q_etDiagExt

Enumeration value

Description

OK

Ok

0

Ok

InputParameterInvalid

NumberOfSplinePointsRange

89

The number of spline points is out of range.

InputParameterInvalid

StartInvalid

164

The start position is invalid.

InputParameterInvalid

TargetInvalid

91

The target is invalid.

InputParameterInvalid

ScalingFactorRange

162

The scaling factor is out of range.

ExecutionAborted

NoSolutionFound

137

No available solution.

UnexpectedProgramBehavior

UnexpectedFeedback

13

A feedback value was invalid.

NumberOfSplinePointsRange

Enumeration name:

NumberOfSplinePointsRange

Enumeration value:

89

Description:

The number of spline points is out of range.

Issue

Cause

Solution

Calculating the elliptic spline was not successful.

The value transferred at the property udiNumberOfSplinePoints lies outside the valid range.

Ensure that udiNumberOfSplinePoints is greater than or equal to (3 + iq_stConfiguration. diStartNumberOfVerticalPoints + iq_stConfiguration.diTargetNumberOfVerticalPoints).

Ensure that the value is less than or equal to 98.

NoSolutionFound

Enumeration name:

NoSolutionFound

Enumeration value:

137

Description:

No available solution.

Issue

Cause

Solution

Calculating the elliptic spline was not successful.

Based on the parameters specified, no spline could be calculated.

Ensure that the distance between the start position, the target position, and the absolute height of the spline is not too small.

ScalingFactorRange

Enumeration name:

ScalingFactorRange

Enumeration value:

162

Description:

The scaling factor is out of range.

Issue

Cause

Solution

Calculating the elliptic spline was not successful.

The value transferred at the input iq_stConfiguration.lrApexScalingFactor lies outside the valid range.

Ensure that the transferred value for is in the range of iq_stConfiguration.lrApexScalingFactor is in the range equal to or greater than -1.0 and equal to or smaller than 1.0.

StartInvalid

Enumeration name:

StartInvalid

Enumeration value:

164

Description:

The start position is invalid.

Issue

Cause

Solution

Calculating the elliptic spline was not successful.

The method SetWorkingPlane was called and the working plane XY is configured.

Ensure that the input i_stStart.lrZ is set to 0.

The method SetWorkingPlane was called and the working plane XZ is configured.

Ensure that the input i_stStart.lrY is set to 0.

The method SetWorkingPlane was called and the working plane YZ is configured.

Ensure that the input i_stStart.lrX is set to 0.

The start position transferred at the input i_stStart is invalid.

Ensure that the start position i_stStart.lrZ is smaller than i_lrAbsHeight or at the same height.

The obstacle at the start position lies outside the limits of the spline.

Ensure that:

  • i_stStart.lrZ + iq_stConfiguration. lrStartObstacleHeight is smaller than i_lrAbsHeight.

  • iq_stConfiguration. lrStartObstacleDistance is smaller than the half-branch of the ellipse.

  • The value of iq_stConfiguration.lrStartObstacleDistance is positive.

TargetInvalid

Enumeration name:

TargetInvalid

Enumeration value:

91

Description:

The target is invalid.

Issue

Cause

Solution

Calculating the elliptic spline was not successful.

The method SetWorkingPlane was called and the working plane XY is configured.

Ensure that the input i_stTarget.lrZ is set to 0.

The method SetWorkingPlane was called and the working plane XZ is configured.

Ensure that the input i_stTarget.lrY is set to 0.

The method SetWorkingPlane was called and the working plane YZ is configured.

Ensure that the input i_stTarget.lrX is set to 0.

The start position transferred at the input i_stTarget is invalid.

Ensure that the start position i_stTarget.lrZ is smaller than i_lrAbsHeight or at the same height.

The obstacle at the target position lies outside the limits of the spline.

Ensure that:

  • i_stTarget.lrZ + iq_stConfiguration. lrStartObstacleHeight is smaller than i_lrAbsHeight.

  • iq_stConfiguration. lrTargetObstacleDistance is smaller than the half-branch of the ellipse.

  • The value of iq_stConfiguration.lrTargetObstacleDistance is positive.

Ok

Enumeration name:

Ok

Enumeration value:

0

Description:

Ok

Calculating the elliptic spline was successful.

UnexpectedFeedback

Enumeration name:

UnexpectedFeedback

Enumeration value:

13

Description:

A feedback value was invalid.

Issue

Cause

Solution

Calculating the elliptic spline was not successful.

A feedback value was invalid.

-