FB_EllipticSpline - CalcFullSplineUserApex (Methode)

Übersicht

Typ:

Methode

Verfügbar ab:

V1.4.1.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, i_lrAbsHeight und i_lrScal­ingFactor und des Werts der Eigenschaft udiNumberOfSplinePoints berechnet diese Methode eine Positionstabelle für eine Kurveninterpolation (Spline-Interpolation) im dreidimen­sionalen 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 der zwei Halbäste der elliptischen Kurve kann durch den Eingang i_lrScalingFactor gehandhabt werden.

Vollständige Kurve von der Startposition bis zur Zielposition: i_lrScalingFactor := -0.75

G-SE-0064054.1.gif-high.gif

 

 

Vollständige Kurve von der Startposition bis zur Zielposition: i_lrScalingFactor := 0.5

G-SE-0064055.1.gif-high.gif

 

 

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

i_lrScalingFactor

LREAL

Ein Wert ungleich 0,0 bewegt den Apex der elliptischen Kurve entweder in die Startposition oder in die Zielposition, wo 0 die mittlere Position zwischen der Startposition und der Zielposition definiert. Ein positiver Wert bewegt ihn in Richtung der Zielposition an, ein negativer Wert in Richtung der Startposition.

Wertebereich: -1,0 < i_lrScalingFactor < 1,0

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_udiApexIndex

UDINT

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

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

ScalingFactorRange

162

Der Skalierungsfaktor ist außerhalb des Bereichs.

InputParameterInvalid

StartInvalid

164

Die Zirkular-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.

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 i_lrScalingFactor übergebene Wert liegt außerhalb des gültigen Bereichs.

Am Eingang i_lrScalingFactor muss ein Wert größer als 1,0 übergeben werden.

Am Eingang i_lrScalingFactor muss ein Wert kleiner als 1,0 übergeben werden.

StartInvalid

Enumerationsname:

StartInvalid

Enumerationswert:

164

Beschreibung:

Die Zirkular-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.

Der Wert des Eingangs i_lrScalingFactor entspricht nicht 0,0 und der Wert des Eingangs i_stStart.lrZ ist größer als der Wert des Eingangs i_lrAbsHeight.

Darauf achten, dass der Eingang i_stStart.lrZ nicht größer oder gleich dem Eingang i_lrAbsHeight 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.

Der Wert des Eingangs i_lrScalingFactor entspricht nicht 0,0 und der Wert des Eingangs i_stTarget.lrZ ist größer als der Wert des Eingangs i_lrAbsHeight.

Darauf achten, dass der Eingang i_stTarget.lrZ nicht größer oder gleich dem Eingang i_lrAbsHeight ist.