FC_CSplineFromFile - Allgemeine Informationen
Typ |
Funktion |
Verfügbar ab |
SystemInterface_1.32.6.0 |
Versionen: |
Aktuelle Version |
Aus einer Stützpunkttabelle Koeffizienten für eine Kurve berechnen
Die Funktion berechnet aus einer Stützpunkttabelle die Koeffizienten für eine kubische Spline-Interpolation in der Steuerung. Die kubische Spline-Interpolation gewährleistet eine ruckfreie Beschleunigung, unabhängig von der Anzahl der Stützpunkte. Ein Stützpunkt besteht nur aus dem Y-Wert. Die X-Werte werden als äquidistant vorausgesetzt und vom System selbst berechnet.
Die Übergabe der Stützpunkte und einiger Zusatzinfo geschieht über das i_sInFile, das vorher erzeugt werden muss.
Die Ausgabe der Koeffizienten erfolgt durch FC_CSplineFromFile in das i_sOutFile.
Die Datei "InFile.dat" wird mit Hilfe der IEC-Dateidienste erzeugt. Inhalt der Datei:
Bedeutung |
Datentyp |
Bereich |
---|---|---|
Version |
DINT |
0 |
Type |
DINT |
0 ... 2 |
Left boundary slope |
LREAL |
-unendlich bis +unendlich |
Right boundary slope |
LREAL |
-unendlich bis +unendlich |
Cam points (Y values) |
LREAL |
YFactor sollte auf 1,0 normiert sein |
Die zu interpolierenden Daten können wahlweise in einer Binärdatei oder einer ASCII-Datei bereitgestellt werden. Soll die Eingabe aus einer ASCII-Datei erfolgen, muss diese die Erweiterung *.asc haben. Alle anderen Dateien werden als Binärdateien interpretiert.
oVersion
Die Version der Stützpunktdatei muss momentan 0 sein.
oType in der Eingabedatei
Es kann zwischen drei Spline-Typen gewählt werden:
oSpline-Typ = 0
Natürlicher Spline (sekundäre Ableitungen in den Randpunkten = 0)
oSpline-Typ = 1
Vorgabe der Ableitungen in den Randpunkten (wie FC_CSplineFromFile())
oSpline-Typ = 2
Periodische Spline
oLeft boundary slope
Wert der Ableitung im Startpunkt. Dieser Wert wird bei Spline-Typ 0 (natürlicher Spline) und 2 (periodischer Spline) ignoriert.
oRight boundary slope
Wert der Ableitung im Endpunkt. Dieser Wert wird bei Spline-Typ 0 (natürlicher Spline) und 2 (periodischer Spline) ignoriert.
oCam points
Werte müssen auf -1,0 bis +1,0 normalisiert werden. Die Anzahl der CAM-Punkte kann zwischen 3 und 10.000 Werten variieren.
Eingang |
Datentyp |
Beschreibung |
---|---|---|
i_sInFile |
STRING[80] |
Name der Eingabedatei (*.dat oder *.asc) (Höchstanzahl an Zeichen = 8 + Dateinamenerweiterung, z. B. abcdefgh.dat) |
i_sOutFile |
STRING[80] |
Name der Ausgabe(/Koeffizient)datei (*.pp3) (Höchstanzahl an Zeichen = 8 + Dateinamenerweiterung, z. B. abcdefgh.dat) |
Datentyp |
Beschreibung |
---|---|
DINT |
0: OK. -1: Anzahl Stützpunkte >10.000 oder <3. -2: Polstelle in Funktion. -3: Datei konnte nicht geöffnet werden. -4: Ungültiger Typ. -5: Fehler im Header. -6: Parameter überschreitet Grenzwert. -7: Systemfehler erkannt. -8: Dateiname zu lang. -9: Es steht nicht genügend Speicher zur Verfügung |
FC_CSplineFromFile( i_sInFile:='Kurve1', i_sOutFile:='Kurve1' );
FC_CSplineFromFile( i_sInFile:='Kurve1.asc', i_sOutFile:='Kurve1' );