Wird in einer Klasse, z.Bsp. im Hauptprogramm eine Variable mit dem Namen „myVar“„ und in einer seiner Methoden ebenfalls eine Variable mit dem Namen „myVar“ dimensioniert (als Parameter oder lokale Variable), dann wird die Variable der Methode bevorzugt behandelt. D.h. die Variable der Klasse wird innerhalb der Methode ausgeblendet (versteckt).
Mit static werden die Variablen in einer Methode statisch angelegt. D.h. sie sind schon ab Beginn des gesamten Programms im Arbeitsspeicher dimensioniert und werden beim Aufruf einer Methode (im Gegensatz zu temporären Variablen) nicht initialisiert3) (nur beim Start des Controllers) und behalten somit ihre Werte vom letztmaligem Ausführen der Methode. Die Ausführungsgeschwindigkeit ist um Einiges schneller als bei temporären Variablen. Hierbei ist jedoch zu beachten, dass man die Methode dann nicht parallel mehrfach ausführen sollte, da die parallel ausgeführten Methoden dann auf dieselbe Variable zugreifen. Dies kann zu Fehlern führen, die schwer zu finden sind.
Standardmäßig werden die Variablen temporär innerhalb einer Methode angelegt, d.h. sie existieren nur solange die Methode ausgeführt wird.
Implementiert ab Version | 2015.r1 |
---|
InitialValue ist eine Funktionalität, mit der man den numerischen- und string-Variablen bei der Dimensionierung optional einen Startwert zuweisen kann (auch in Methoden). Hierbei werden alle angegebenen Variablen, auch Arrays mit dem Initialwert belegt.
dim a,b(7) as byte = 42 dim s as string = "hallo"
Beispiel Dimensionierung Arbeitsspeicher
dim a,b as byte dim c(19) as integer ' Word-Array mit 20 Elementen dim s1 as string dim s2(4) as string ' String-Array mit 5 Elementen
procedure hallo(a as byte) dim c(19) as static integer ' statisches Word-Array mit 20 Elementen dim s1 as string endproc
Beispiel Dimensionierung Eeprom
eedim a,b as byte eedim c(19) as integer ' Word-Array mit 20 Elementen eedim s1[20] as string ' String mit 20 Zeichen Speicherplatz eedim s2[10](4) as string ' String-Array mit 5 Elementen, jeweils 10 Zeichen Speicherplatz