Nein-geht so leider nicht!
Kannst evt einen CONST-DB anlegen, ist aber nur ne Krücke und nicht wirklich vor veränderungen geschützt.
Oder du machst alles über eine SCL-Quelle.
Hallo miteinander,
ich hätte gerne von euch gewusst ob es bei Step7 möglich ist "globale" Konstanten zu definieren.
Ich hätte auf diese Weise gerne ein paar Fehlermöglichkeiten im Zusammenhang ausgeschlossen.
Beispiel:
ich hätte gerne die Konstante ARRAY_MAX angelegt um dann mithilfe dieser die Größe eines Array zu definieren
xyz:array[0..ARRAY_MAX]OF INT;
und um sie an diversen Stellen im Projekt zum Beispiel hier
for i:=0 to ARRAY_MAX do
a:=a+xyz;
end_for;
Würde doch zum Beispiel Überläufe vermeiden helfen...
Also geht das irgendwie? Über die Symboltabelle vielleicht?
Danke und viele Grüße
Herdi
PS: Bei Codesys kann man alles was zwischen VAR_CONSTANT und END_VAR in den globalen Variablen deklariert ist für solche Sachen verwenden.
Deine Probleme hätte ich gern mal!
nee,nee,nee....:roll:
L meine_Konstante //eine beliebige Konstante
T "konstanten".konstante_1 // in Datenbaustein schreiben
Das mit den Array-Grössen hatte ich in den vorhergehenden Beiträgen überlesen... Da hast Du natürlich recht.....
Fakt ist, du kannst die Array-Grösse nicht mit einer Varaiblen (Konstanten) angeben, NUR durch einen expliziten Zahlenwert.
.....
Dieses Thema scheint sich zu einem Glaubenskampf zu entwickeln, was wir natürlich nicht möchten.
Fakt ist, du kannst die Array-Grösse nicht mit einer Varaiblen (Konstanten) angeben, NUR durch einen expliziten Zahlenwert.
Das Problem hierbei liegt einerseits bei der S7 an sich, da keine dynamische Speicherverwaltung möglich ist.
Eine Definition mittels einer Konstanten aber hat nichts mit dynamischer Speicherverwaltung zu tun, der SCL Compiler unterstützt das nur leider nicht (wie so vieles andere, was nützlich wäre).
DATA_BLOCK "AnalogInParameter"
TITLE =
VERSION : 0.1
STRUCT
Par10B1 : STRUCT //Parameter 10B1
FreigabeGW : BOOL ;
Fehler : BOOL ;
Bipolar : BOOL ;
ScalMax : REAL := 1.500000e+002;
ScalMin : REAL ;
KSteigung : REAL := 1.000000e+000;
KOffset : REAL ;
GW_AlarmH : REAL := 9.500000e+001;
GW_AlarmL : REAL := 5.000000e+001;
GW_WarnH : REAL := 8.000000e+001;
GW_WarnL : REAL := 6.000000e+001;
Hysterese : REAL := 5.000000e-001;
Ersatz : REAL := 2.000000e+001;
END_STRUCT ;
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?