-> Hier kostenlos registrieren
Hallo,
An einer Kundenanlage erfolgte ein Update des Step 7 von v5.3 auf v5.6.
Im Zuge des Updates anderer Bausteine wurde ich aufgefordert, auch zwei unveränderte Bausteine in SCL neu zu kompilieren.
Bei einem Baustein gelang das problemlos, beim zweiten gibt er zwei Fehlermeldungen, deren Ursache sich mir nicht erschließt.
Die im zweiten Baustein (FB300) angemeckerte Konstante MAX := 45; wurde im zuvor kompilierten Baustein FB301 exakt genau so verwendet und dort anstandslos kompiliert.
FUNCTION_BLOCK FB300
TITLE = 'Datenhandling Typ 1'
VERSION : '1.0'
AUTHOR : PSG_HU
NAME : Typ1
FAMILY : Umfahrg
CONST
MAX := 45; // max. TOW-Anzahl im internen Gleisabbild
END_CONST
...
VAR
Daten : ARRAY[1..MAX] OF TOW_Data; // internes Datenabbild
Loop_Daten : INT; // Schleifenzähler für Datenübernahme/-übergabe
Suchen : INT; // Schleifenzähler für Datensuche
FP_Import_Pos_1 : BOOL; // Flankenmerker Import_Pos_1
FP_Export_Pos_1 : BOOL; // Flankenmerker Export_Pos_1
FP_Import_Pos_n : BOOL; // Flankenmerker Import_Pos_n
FP_Export_Pos_n : BOOL; // Flankenmerker Export_Pos_n
END_VAR
Die Fehlermeldungen lauten
E: L 00020 C 00005: Identifier already exists.
E: L 00064 C 00022: Invalid Constant.
Bei Doppelklick wird einmal auf die Zeile mit MAX := 45; bzw. auf die Verwendung von MAX in der Deklaration des Array gesprungen.
Hat die Konstante auf einemal Gültigkeit über den Baustein FB301 hinaus, dann aber wieder nicht mehr???
Deklaration der Konstante und Verwendung im Array sind in FB300 und FB301 identisch.
Vielen Dank für eure Tips
An einer Kundenanlage erfolgte ein Update des Step 7 von v5.3 auf v5.6.
Im Zuge des Updates anderer Bausteine wurde ich aufgefordert, auch zwei unveränderte Bausteine in SCL neu zu kompilieren.
Bei einem Baustein gelang das problemlos, beim zweiten gibt er zwei Fehlermeldungen, deren Ursache sich mir nicht erschließt.
Die im zweiten Baustein (FB300) angemeckerte Konstante MAX := 45; wurde im zuvor kompilierten Baustein FB301 exakt genau so verwendet und dort anstandslos kompiliert.
FUNCTION_BLOCK FB300
TITLE = 'Datenhandling Typ 1'
VERSION : '1.0'
AUTHOR : PSG_HU
NAME : Typ1
FAMILY : Umfahrg
CONST
MAX := 45; // max. TOW-Anzahl im internen Gleisabbild
END_CONST
...
VAR
Daten : ARRAY[1..MAX] OF TOW_Data; // internes Datenabbild
Loop_Daten : INT; // Schleifenzähler für Datenübernahme/-übergabe
Suchen : INT; // Schleifenzähler für Datensuche
FP_Import_Pos_1 : BOOL; // Flankenmerker Import_Pos_1
FP_Export_Pos_1 : BOOL; // Flankenmerker Export_Pos_1
FP_Import_Pos_n : BOOL; // Flankenmerker Import_Pos_n
FP_Export_Pos_n : BOOL; // Flankenmerker Export_Pos_n
END_VAR
Die Fehlermeldungen lauten
E: L 00020 C 00005: Identifier already exists.
E: L 00064 C 00022: Invalid Constant.
Bei Doppelklick wird einmal auf die Zeile mit MAX := 45; bzw. auf die Verwendung von MAX in der Deklaration des Array gesprungen.
Hat die Konstante auf einemal Gültigkeit über den Baustein FB301 hinaus, dann aber wieder nicht mehr???
Deklaration der Konstante und Verwendung im Array sind in FB300 und FB301 identisch.
Vielen Dank für eure Tips