-> Hier kostenlos registrieren
Ich habe vor in ST einen Baustein zur linearen Interpolation von Kennlinien zu bauen (EntwicklungsumgebungTwinCAT 2.11).
Die Deklaration sieht so aus:
Im Hauptprogramm sollen nun diverse Instanzen von Kennlinien deklariert werden und dabei auch gleich die Kennlinie angegeben werden.
Das Problem: ich bekomme nur eines der beiden Arrays initialisiert.
Folgendes klappt:
Die Werte sind im Baustein im Array y auch wirklich enthalten und ersetzen die Defaultwerte im Baustein.
Aber wenn ich X auch noch initialisieren will, meckert der Compiler "Fehler 3760: Fehlerhafter Initialwert".
Folgendes führt zu dem Fehler:
Der Compiler kapiert wohl das Ende der Array-Initialisierung in der y:= Zeile nicht.
Ich habe schon probiert die Werte in der y:=... Zeile irgendwie zu klammern, bekomme aber immer die gleiche Fehlermeldung.
Auch Einzelwertzuweisung in das Array (also y[1]:=1 ) klappte nicht.
Weiß jemand wie man dem Compiler da auf die Sprünge helfen kann?
Die Deklaration sieht so aus:
Code:
[FONT=courier new]FUNCTION_BLOCK FB_Kennlinie
VAR_INPUT
IN : REAL;
y : ARRAY[1..10] OF REAL; (*:= 0, 1000, 8(1000);*)
x : ARRAY[1..10] OF REAL; (*:= 0, 1000, 8(1000);*)
Stuetzstellen : INT:=2;
END_VAR[/FONT]
Im Hauptprogramm sollen nun diverse Instanzen von Kennlinien deklariert werden und dabei auch gleich die Kennlinie angegeben werden.
Das Problem: ich bekomme nur eines der beiden Arrays initialisiert.
Folgendes klappt:
Code:
[FONT=courier new]PROGRAM MAIN
VAR
kennlinie1 : FB_Kennlinie:=(
Stuetzstellen:=5,
y:=1000,2000,3000,4000,5000,6,7,8,9,10
);
[/FONT]
Aber wenn ich X auch noch initialisieren will, meckert der Compiler "Fehler 3760: Fehlerhafter Initialwert".
Folgendes führt zu dem Fehler:
Code:
[FONT=courier new]PROGRAM MAIN
VAR
kennlinie2 : FB_Kennlinie:=(
Stuetzstellen:=5,
[/FONT][FONT=courier new]y:=1,2,3,4,5,6,7,8,9,10,
[/FONT][FONT=courier new]x:=1,2,3,4,5,6,7,8,9,10
[/FONT][FONT=courier new] );
[/FONT]
Ich habe schon probiert die Werte in der y:=... Zeile irgendwie zu klammern, bekomme aber immer die gleiche Fehlermeldung.
Auch Einzelwertzuweisung in das Array (also y[1]:=1 ) klappte nicht.
Weiß jemand wie man dem Compiler da auf die Sprünge helfen kann?
Zuletzt bearbeitet: