n
n
kVA
kVA
Compiler - Programmierung
14
f
f
#undef
i
i
P
Hz
Hz
P
14.6 #undef
180
Ebenso können mit der Direktive '#define' konstanten Werten symbolische Namen zu-
geordnet werden. Die Zeile '#define MAXDREHZAHL 1500' ermöglicht es nun statt
1500 explizit 'MAXDREHZAHL' im Quelltext zu schreiben. Der Quelltext wird dadurch
lesbarer.
Das folgende Beispiel soll dies verdeutlichen.
#define setpoint H123
#define maximum
2000
setpoint = maximum;// in this line the macro def. "setpoint" and "maximum"
// are replaced, meaning: H123 = 2000;
Nach jeder erzeugten Makroerweiterung wird der erzeugte Text nochmals durchsucht.
Dies erlaubt den Einsatz von geschachtelten Makros.
#define setpoint H10
#define variable1 setpoint
#define minimum
20+H11
variable1 = minimum;// in this line the macro definition "variable1" is
// replaced by "setpoint", then "setpoint" is replaced by
// "H10", meaning: H10=20+H11;
HINWEIS
Stellen Sie sicher, dass eine mit #define bezeichnete Variable nicht unbeabsichtigt
mit einer Systemvariable doppelt belegt ist.
HINWEIS
Wird eine Variable mit dem selben Namen wie eine Struktur angelegt, so wird das
beim Compilieren nicht erkannt. Der Umrichter generiert Fehler 10 IPOS-ILLOP.
Beispiel:
#define Position H2VARINT Position;
Mit dieser Direktive kann ein zuvor mit '#define ...' erzeugtes Makro außer Kraft gesetzt
werden:
Syntax: #undef MakroBezeichner
Ein kleines Beispiel soll die Anwendung verdeutlichen:
#define position 1000// "position" is valid
H12=position;
// meaning: H12=1000;
#undef position
// "position" is not valid
H13=position;
// macro definition "position" is not replaced,
// compiler error occurs
Handbuch – IPOSplus®