-> Hier kostenlos registrieren
Hallo allerseits,
ich habe eine eigene Bibliothek, die einen FB enthält, dem ein POINTER TO ARRAY [0..i_myLength] OF ST_myType übergeben wird, wobei die array-Größe erst im Projekt bekannt ist, welches die Bibliothek nutzt.
Für CodeSys scheint folgendes möglich zu sein:
Beim Kompilieren des Projekts unter TC3 Build 4024.10 in VS2017 bekomme ich folgenden Fehler:
Kann mir jemand einen Tipp geben, wie ich das unter TC3 umsetzen könnte?
VAR_IN_OUT CONSTANT unter TC3
VAR_IN_OUT CONSTANT unter CodeSys
Tipp in Codesys-Forge Forum zu der Thematik
Ich befürchte __NEW fällt weg, da ST_myType eine nutzerdefinierter Typ ist...
Danke!
Beste Grüße
LeFish
ich habe eine eigene Bibliothek, die einen FB enthält, dem ein POINTER TO ARRAY [0..i_myLength] OF ST_myType übergeben wird, wobei die array-Größe erst im Projekt bekannt ist, welches die Bibliothek nutzt.
Für CodeSys scheint folgendes möglich zu sein:
Code:
//myLib.library:
FUNCTION_BLOCK PUBLIC FB_myFB
VAR_INPUT
p_myPointer : POINTER TO ARRAY[0..i_myLength] OF ST_myType;
END_VAR
VAR_IN_OUT CONSTANT
i_myLength : INT;
END_VAR
Code:
//Projektcode:
PROGRAM MAIN
VAR
myArray : ARRAY [0..i_myLength] OF ST_myType // war ST_Sensor - zur besseren Lesbarkeit nachträglich korrigiert. (LeFish 23.11.2022 um 23:28)
myFB : FB_myFB;
END_VAR
VAR CONSTANT
i_thisLength : INT := 3;
END_VAR
myFB(p_myPointer := ADR(myArray), i_myLength := i_thisLength);
Beim Kompilieren des Projekts unter TC3 Build 4024.10 in VS2017 bekomme ich folgenden Fehler:
Code:
Severity Code Description Project File Line Suppression State
Error Array Border i_myLength does not evaluate to a valid signed integer constant [myLib] FB_myFB
Kann mir jemand einen Tipp geben, wie ich das unter TC3 umsetzen könnte?
VAR_IN_OUT CONSTANT unter TC3
VAR_IN_OUT CONSTANT unter CodeSys
Tipp in Codesys-Forge Forum zu der Thematik
Ich befürchte __NEW fällt weg, da ST_myType eine nutzerdefinierter Typ ist...
Danke!
Beste Grüße
LeFish
Zuletzt bearbeitet: