FB_CSpline - PrepareEqDisX (Methode)
Typ |
Methode |
Verfügbar ab |
V1.0.0.0 |
Versionen: |
Aktuelle Version |
Erzeugung eines CSpline mit äquidistanten X-Werten.
Die Methode erzeugt einen CSpline mit äquidistanten X-Werten anhand der übergebenen Liste i_plrYList, unter Berücksichtigung der X-Werte i_lrXStart und i_lrXEnd sowie den Steigungen i_lrMStart und i_lrMEnd.
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.
Eingang |
Datentyp |
Beschreibung |
---|---|---|
i_etCSplineType |
Zu erzeugender CSpline-Typ. |
|
i_diNumberOfPoints |
DINT |
Anzahl der zu interpolierenden Wertepaare. Wertebereich: 3 .. Gc_diMaxNumberOfSplinePoints |
i_lrXstart |
LREAL |
Anfangswert des X-Bereichs |
i_lrXend |
LREAL |
Endwert des X-Bereichs |
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, damit möglichst keine Speicherzugriffsfehler auftreten. |
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 |
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. |
q_etDiag |
q_etDiagExt |
Aufzählungswert |
Beschreibung |
---|---|---|---|
OK |
0 |
Ok |
|
ExecutionAborted |
59 |
Unzureichender dynamischer Speicher |
|
InputParameterInvalid |
64 |
CSpline Typ ist unbestimmbar. |
|
InputParameterInvalid |
58 |
NumberOfPoints ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
62 |
Der Zeiger auf YList ist ungültig. |
|
InputParameterInvalid |
63 |
Der Spline hat schlechte numerische Werte. |
|
InputParameterInvalid |
65 |
XStart ist größer als XEnd. |
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. |
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. |
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. |
Aufzählungsname: |
Ok |
Aufzählungswert: |
0 |
Beschreibung: |
Ok |
Der CSpline mit äquidistanten X-Werten wurde erfolgreich erzeugt.
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. |
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. |
Aufzählungsname: |
XstartGreaterXend |
Aufzählungswert: |
65 |
Beschreibung: |
XStart ist größer als XEnd. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Der zugewiesene Wert der Variablen stCam.lrXStart ist zu groß. |
Der Wert der Variablen stCam.lrXStart muss kleiner als der Wert der Variablen stCam.lrXEnd sein. |