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 Farbvariablen dient der Farbanimation des Elements. Wenn Sie den Eigenschaften Variablen übergeben, können Sie Farbänderungen im Applikationscode programmieren oder eine Benutzereingabe konfigurieren, die zu einer Farbänderung führt. Eine Farbkonstante oder Farbvariable im Code hat den Datentyp DWORD und ist gemäß dem RGB-Farbraum oder der RGBA-Erweiterung codiert.
Hinweis
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.
<TT> |
Byte für die Transparenzabstufung von 00-FF |
<RR> |
Byte für den Rotanteil von 00-FF |
<GG> |
Byte für den Grünanteil von 00-FF |
<BB> |
Byte für den Blauanteil von 00-FF |
Beispiel
16#FF0000FF |
Blau, deckend |
16#FF00FF00 |
Grün, deckend |
16#FFFFFF00 |
Gelb, deckend |
16#88888888 |
Grau, halbtransparent |
16#88000000 |
Schwarz, halbtransparent |
16#FFFF0000 |
Rot, deckend |
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
Visualisierungselement farblich animieren
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.