FC_CSplineFromArray - Allgemeine Informationen

Übersicht

Typ

Funktion

Verfügbar ab

SystemInterface_1.32.6.0

Versionen:

Aktuelle Version

Aufgabe

Aus einer Stützpunkttabelle Koeffizienten für eine Kurve berechnen

Beschreibung

Die Funktion ist eine Verbesserung der Funktion FC_CSplineFromFile():

  • Sie bezieht ihre Stützpunkte aus Arrays und legt selbst ein Profil an, dessen Profil-ID sie zurückgibt. Die für FC_CSplineFromFile() erforderlichen, zeitaufwändigen Dateivorgänge entfallen komplett, wodurch die Funktion FC_CSplineFromArray() schneller wird.

  • Die Einschränkung auf äquidistante Stützpunkte wurde entfernt.

Schnittstelle

Eingang

Datentyp

Beschreibung

diSplineType

DINT

  • 0 -> Natürlicher Spline.

  • 1 -> Spline mit Vorgabe der Randableitungen.

  • 2 -> Periodischer Spline.

i_diNumOfPoints

DINT

Anzahl der Stützpunkte (>= 3, <= 10000).

i_lrStartSlope

LREAL

Linke Randsteigung (nur bei diSplineType = 1 relevant).

i_lrEndSlope

LREAL

Rechte Randsteigung (nur bei diSplineType = 1 relevant).

i_plrXList

POINTER TO LREAL

Zeiger auf Array der X-Koordinaten. Ist i_plrXList = 0, so wird mit äquidistanten Stützpunkten gerechnet, die gleichmäßig über das Intervall [0,1] verteilt sind.

i_plrYList

POINTER TO LREAL

Zeiger auf Array der Y-Koordinaten

Rückgabewert

Datentyp

Beschreibung

DINT

>0: Profil-ID des Profils.

-1: i_diNumOfPoints liegt außerhalb des zulässigen Bereichs von 3 bis 10000.

-2: CSpline-Gleichungssystem singulär.

-4: Ungültiger Spline-Typ.

-9: Es steht nicht genügend Speicher zur Verfügung

-10: Liste von X-Werten ist nicht aufsteigend sortiert.

-11: Keine gültige Liste von Y-Werten (z. B. Zeiger = NULL).

-12: Profiltabelle ist voll.

Beispiele

 diProfileId := FC_CSplineFromArray(
   i_diSplineType := 1, 
   i_diNumOfPoints := 10, 
   i_lrStartSlope := 0.0, 
   i_lrEndSlope := 0.0, 
   i_plrXList := ADR(X[0]), 
   i_plrYList:=ADR(Y[0]) );