Die Farben eines Elements sind in den Elementeigenschaften unter Farben angegeben. Dort können Sie entweder aus der Auswahlliste eine vordefinierte Stilfarbe wählen oder im Farbdialog eine Farbe auswählen.
Die Elementeigenschaft DWORD
und ist gemäß dem RGB-Farbraum oder der RGBA-Erweiterung codiert.
Im Visualisierungsmanager gibt es die Option Semitransparentes Zeichnen aktivieren. Diese Option ist standardmäßig aktiviert, so dass bei allen Farbangaben die Eigenschaft Transparenz zur Verfügung steht. Bei einer programmatischen Farbangabe wird das führende Byte als Alphakanal interpretiert und somit als Transparenzwert der Farbe verwendet. Wenn die Option deaktiviert ist, steht die Eigenschaft Transparenz nicht zur Verfügung und in Farbliteralen wird das führende Byte ignoriert.
Farbinformationen im Code werden als DWORD
-Literale angegeben. Der Wert liegt im RGBA-Farbraum und wird üblicherweise als Hexadezimalzahl dargestellt. Der Wert ist als additiver Rot- Grün- und Blauanteile codiert und wird ergänzt um den Alphakanal, der die Transparenz der Farbe bestimmt.
Bytereihenfolge eines Farbliterals
16#<TT><RR><GG><BB>
<TT> : 00 - FF // Transparency in 256 levels
<RR> : 00 - FF // Red in 256 levels
<GG> : 00 - FF // Green in 256 levels
<BB> : 00 - FF // Blue in 256 levels
Der Abstufungswert für die Transparenz ist 16#FF
für voll deckend und 16#00
für durchsichtig. Für jeden Farbanteil ist ein Byte für 256 Farbabstufungen von 16#FF
bis 16#00
reserviert. 16#FF
bedeutet 100 % Farbanteil, 16#00
bedeutet 0 % Farbanteil.
|
Byte für die Transparenzabstufung von |
|
Byte für den Rotanteil von |
|
Byte für den Grünanteil von |
|
Byte für den Blauanteil von |
Beispiel
Globale Deklaration von Farbkonstanten
VAR_GLOBAL CONSTANT
c_dwBLUE : DWORD := 16#FF0000FF; // Highly opaque
c_dwGREEN : DWORD := 16#FF00FF00; // Highly opaque
c_dwYELLOW : DWORD := 16#FFFFFF00; // Highly opaque
c_dwGREY : DWORD :=16#88888888; // Semitransparent
c_dwBLACK : DWORD := 16#88000000; // Semitransparent
c_dwRED: DWORD := 16#FFFF0000; // Highly opaque
END_VAR
Erstellen Sie in CODESYS ein Standardprojekt
Deklarieren Sie im POUs-Baum globale Farbkonstanten.
⇒
{attribute 'qualified_only'} VAR_GLOBAL CONSTANT gc_dwRed : DWORD := 16#FFFF0000; gc_dwGreen: DWORD := 16#FF00FF00; gc_dwYellow: DWORD := 16#FFFFFF00; gc_dwBlue: DWORD := 16#FF0000FF; // Highly opaque gc_dwBlack : DWORD := 16#88000000; // Semitransparent END_VAR
Deklarieren Sie im Gerätebaum in PLC_PRG
lokale Farbvariablen.
⇒
VAR dwFillColor: DWORD := GVL.gc_dwGreen; dwFrameColor : DWORD := GVL.gc_dwBlack; dwAlarmColor : DWORD := GVL.gc_dwRed; END_VAR
Deklarieren Sie eine Steuervariable.
⇒
bChangeColor : BOOL;
Deklarieren Sie in PLC_PRG
eine Eingabevariable.
⇒
bInput : BOOL;
Aktivieren Sie den Visualisierungseditor.
Ziehen Sie ein Element Rechteck in den Visualisierungseditor.
⇒ Die Ansicht Eigenschaften des Elements öffnet sich.
Konfigurieren Sie die Eigenschaften des Rechtecks folgendermaßen:
Eigenschaft Farbvariablen, Normalzustand, Füllfarbe:
PLC_PRG.dwFillColor
Eigenschaft Farbvariablen, Normalzustand, Rahmenfarbe:
PLC_PRG.dwFrameColor
Eigenschaft Farbvariablen, Alarmzustand, Füllfarbe:
PLC_PRG.dwAlarmColor
Eigenschaft Farbvariablen, Farbumschlag:
<Umschalten-/Tastenvariable>
Eigenschaft Eingabekonfiguration, Umschalten, Variable:
PLC_PRG.bInput
Programmieren Sie die Variablen folgendermaßen.
PROGRAM PLC_PRG VAR dwFillColor: DWORD := GVL.gc_dwGreen; dwFrameColor : DWORD := GVL.gc_dwBlack; dwAlarmColor : DWORD := GVL.gc_dwRed; bChangeColor : BOOL; bInput : BOOL; END_VAR IF bChangeColor = TRUE THEN dwFillColor := GVL.gc_dwYellow; dwFrameColor := GVL.gc_dwBlue; ELSE dwFillColor:= GVL.gc_dwGreen; dwFrameColor := GVL.gc_dwBlack; END_IF
⇒ Zur Laufzeit werden die Farben initialisiert. Wenn dann die Variable bChangeColor
über Forcen auf TRUE
gesetzt wird, ändert sich die Farbdarstellung des Rechtecks. Wenn in der Visualisierung auf das Rechteck geklickt wird, wird das Rechteck in Alarmfarben dargestellt.
Siehe auch