Ich wollte als Initialwert einer Variable ein Element aus einem Datentyp verwenden.
TYPEColor_Type:STRUCT  Black     :DWORD:=16#000000;  Blue      :DWORD:=16#FF0000;  Green     :DWORD:=16#00FF00;END_STRUCTEND_TYPE
VAR_GLOBALCONSTANTÂ Â Color:Color_Type;END_VAR
FUNCTION_BLOCKVisObjButtonVAR_INPUTÂ Â Farbe:DWORD:=Color.Black;(*Hierklemmts*)END_VAR
Die Ãœbersetzungsoption Konstanten ersetzen ist aktiv.
Leider geht das nicht. Gibt es eine andere Möglichkeit Constanten zu Strukturieren? Ich will eben nicht das jede Farbe einzeln in der Auswahl erscheint (das geht ja so) aber leider nicht wenn ich die Farbe als Initialwert verwenden will ;o(
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ich wollte als Initialwert einer Variable ein Element aus einem Datentyp verwenden.
Die Ãœbersetzungsoption Konstanten ersetzen ist aktiv.
Leider geht das nicht. Gibt es eine andere Möglichkeit Constanten zu Strukturieren? Ich will eben nicht das jede Farbe einzeln in der Auswahl erscheint (das geht ja so) aber leider nicht wenn ich die Farbe als Initialwert verwenden will ;o(
Ich hab das Problem mit einer Initialisierungsroutine umgangen. Ist das einfachste.
FUNCTION_BLOCK VisObjButton
VAR_INPUT
Farbe : DWORD;
END_VAR
VAR
init : BOOL;
END_VAR
IF NOT init THEN
Farbe:=Color.Black;
init:=true;
END_IF;
Die Abfrage wird einfach nur einmal ausgeführt (bei der Initialisierung).
Danke!
Ich habe das auch mit einer Initroutine gelöst und denke das es wohl leider auch keine andre Lösung gibt.
Es gefällt mir halt grundsätzlich nicht in einer Funktion schreibend auf eine Inputvariable zu schreiben ;o(