CoDeSys2.x und Libs

RobiHerb

Level-2
Beiträge
679
Reaktionspunkte
113
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich in CoDeSys 2.x globale Variablen in LIBs declariere, kommt kein Fehler, wenn ich diese Namen noch einmal in PRG neu declariere (im Gegensatz zu FB oder FUNs).

Ist garantiert, dass die Variable aus dem PRG die aus der Lib überdeckt?
 
Hallo

Wenn du im Programmbaustein "PRG" eine Variable deklariest ist diese nicht Global.

Eine Doppeldeklaration in der Globalen Variablenliste einer Lib und im Projekt ist nicht zulässig und würde zu einer Fehlermeldung führen.

Verschatten von Constanten ist hingegen möglich. Da ist es auch sicher das die Constante im Projekt die aus der Lib Verschattet

mfG Jochen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Constanten

Genau so war es, ich hatte in einer LIB eine const variable

SIMUL : BOOL := TRUE

und im PRG eine gleiche mit FALSE declariert und dann ein bizarres Verhalten in der Anlage.
 
Es ist dann tatsächlich so, dass die Bibliothek die im Projekt deklarierte Konstante verwendet. Das widerspricht natürlich ein wenig der Idee einer Bibliothek als abgeschlossene Einheit, es gibt jedoch einen Anwendungsfall dafür: wenn man ein Array in seiner Bibliothek definiert, und die Grenzen des Arrays durch Konstanten festlegt, dann kann man die Grenzen des Arrays im Projekt überschreiben.
Allerdings wird das mit Version V3 nach einem Umstieg nicht mehr so funktionieren, da kann man dann nur noch bestimmte vom Bibliotheksautor festgelegte Konstanten (Parameter) überschreiben.
 
Zurück
Oben