FB_CSpline - PrepareVarDisX (Methode)

Übersicht

Typ

Methode

Verfügbar ab

V1.0.0.0

Versionen:

Aktuelle Version

Aufgabe

Erzeugung eines CSpline mit beliebigen (streng monoton zunehmenden) X-Werten.

Beschreibung

Die Methode erzeugt anhand der übergebenen Listen i_plrXList und i_plrYList einen CSpline mit beliebigen (streng monoton ansteigenden) X-Werten.

HINWEIS: Zum Erzeugen eines CSpline sind 112 * (i_diNumberofPoints + 1) bytes dynamic memory erforderlich. Deshalb muss der Parameter Programm\DynIecDataSize der Steuerungskonfiguration richtig ausgewählt werden.

Schnittstelle

Eingang

Datentyp

Beschreibung

i_etCSplineType

ET_CSplineType

Typ des zu erzeugenden CSpline.

i_diNumberOfPoints

DINT

Anzahl der zu interpolierenden Wertepaare.

Wertebereich: 3 .. Gc_diMaxNumberOfSplinePoints

i_plrXList

POINTER TO LREAL

Zeiger auf das Array (Feld), das die X-Werte enthält. Das Array muss mindestens i_diNumberOfPoints Elemente enthalten, um Speicherzugriffsfehler zu vermeiden.

i_plrYList

POINTER TO LREAL

Zeiger auf das Array (Feld), das die Y-Werte enthält. Dieses Array (Feld) muss mindestens i_diNumberOfPoints Elemente enthalten, um Speicherzugriffsfehler zu vermeiden.

i_lrMstart

LREAL

Startpunkt der Steigung. Nur relevant für i_etSplineType := ET_CSplineType.Boundary

i_lrMend

LREAL

Endpunkt der Steigung. Nur relevant für i_etSplineType := ET_CSplineType.Boundary

Ausgang

Datentyp

Beschreibung

q_etDiag

GD.ET_Diag

Allgemeingültige, bibliotheksunabhängige Aussage zur Diagnose.

Ein Wert ungleich GD.ET_Diag.Ok entspricht einer Fehlermeldung.

q_etDiagExt

ET_DiagExt

POU-abhängiger Ausgang des Diagnosegeräts.

q_etDiag = GD.ET_Diag.Ok -> Statusmeldung

q_etDiag <> GD.ET_Diag.Ok -> Fehlermeldung

q_sMsg

STRING[80]

Ereignisabhängige Meldung, die detaillierte Informationen zum Diagnosezustand liefert.

Diagnosemeldungen

q_etDiag

q_etDiagExt

Aufzählungswert

Beschreibung

OK

Ok

0

Ok

ExecutionAborted

InsufficientDynamicMemory

59

Unzureichender dynamischer Speicher

InputParameterInvalid

CSplineTypeUnknown

64

CSpline Typ ist unbestimmbar.

InputParameterInvalid

NumberOfPointsRange

58

NumberOfPoints ist außerhalb des gültigen Bereichs.

InputParameterInvalid

PointerXListInvalid

61

Der Zeiger auf XList ist ungültig.

InputParameterInvalid

PointerYListInvalid

62

Der Zeiger auf YList ist ungültig.

InputParameterInvalid

PoorNumericCondition

63

Der Spline hat schlechte numerische Werte.

InputParameterInvalid

XListNotStrictlyMonotonic

60

XList ist nicht streng monoton zunehmend.

CSplineTypeUnknown

Aufzählungsname:

CSplineTypeUnknown

Aufzählungswert:

64

Beschreibung:

CSpline Typ ist unbestimmbar.

Problem

Ursache

Lösung

-

Der Wert am Eingang i_etCSplineType ist ungültig .

i_etCSplineType muss mit einem Element aus ET_CSplineType zugewiesen werden.

InsufficientDynamicMemory

Aufzählungsname:

InsufficientDynamicMemory

Aufzählungswert:

59

Beschreibung:

Unzureichender dynamischer Speicher

Problem

Ursache

Lösung

-

Es steht nicht genügend dynamischer Speicher zu Verfügung.

Der Parameter DynIECDataSize in der Steuerungskonfiguration muss erhöht werden.

NumberOfPointsRange

Aufzählungsname:

NumberOfPointsRange

Aufzählungswert:

58

Beschreibung:

NumberOfPoints ist außerhalb des gültigen Bereichs.

Problem

Ursache

Lösung

-

Dem Eingang i_diNumberOfPoints wurde eine ungültige Anzahl an Splinepunkten übergeben.

Der Eingang i_diNumberOfPoints muss >= 3 und <= Gc_diMaxNumberOfSplinePoints sein.

Ok

Aufzählungsname:

Ok

Aufzählungswert:

0

Beschreibung:

Ok

Der CSpline mit beliebigen X-Werten wurde erfolgreich erzeugt.

PointerXListInvalid

Aufzählungsname:

PointerXListInvalid

Aufzählungswert:

61

Beschreibung:

Der Zeiger auf XList ist ungültig.

Problem

Ursache

Lösung

-

Dem Eingang i_plrXList wurde ein ungültiger Zeiger übergeben.

Überprüfen Sie den Zeiger am Eingang i_plrXList.

PointerYListInvalid

Aufzählungsname:

PointerYListInvalid

Aufzählungswert:

62

Beschreibung:

Der Zeiger auf YList ist ungültig.

Problem

Ursache

Lösung

-

Dem Eingang i_plrYList wurde ein ungültiger Zeiger übergeben.

Überprüfen Sie den Zeiger am Eingang i_plrYList.

PoorNumericCondition

Aufzählungsname:

PoorNumericCondition

Aufzählungswert:

63

Beschreibung:

Der Spline hat schlechte numerische Werte.

Problem

Ursache

Lösung

-

Der Abstand zwischen zwei Splinepunkten ist zu klein.

Überprüfen Sie die Liste der Splinepunkte.

XListNotStrictlyMonotonic

Aufzählungsname:

XListNotStrictlyMonotonic

Aufzählungswert:

60

Beschreibung:

XList ist nicht streng monoton zunehmend.

Problem

Ursache

Lösung

-

Die übergebene Liste der X-Werte ist nicht streng monoton ansteigend.

Sehen Sie sich den Ausgang q_sMsg an, um herauszufinden, um welchen der X-Werte es sich handelt.

Prüfen Sie die Liste der X-Werte.