元素的颜色在元素属性的“Colors” 属性中指定。在这里,您可以从选择列表中选择预定义的样式颜色,也可以从颜色对话框中选择颜色。
“颜色变量” 元素属性用于元素的颜色动画。如果将变量传递给属性,就可以在应用程序代码中对颜色变化进行编程,或者配置用户输入,从而实现颜色变化。代码中的颜色常量或颜色变量的数据类型为DWORD
,并根据 RGB 颜色空间或 RGBA 扩展进行编码。
RGBA 色彩空间中的色彩定义




注意

可视化管理器中提供了“激活半透明绘图” 选项。该选项默认为启用,因此“Transparency” 属性可用于所有颜色定义。在程序化颜色定义中,前导字节被解释为 alpha 通道,因此被用作颜色的透明度值。清除该选项后,“Transparency” 属性将不可用,颜色字面量中的前导字节将被忽略。
代码中的颜色信息以DWORD
字面形式指定。该值采用 RGBA 色彩空间,通常显示为十六进制数。数值由红色、绿色和蓝色的加法部分编码。附加的 alpha 通道决定了颜色的透明度。
颜色文字的字节序
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
透明度的渐变值为16#FF
表示不透明,16#00
表示透明。每个颜色部分保留一个字节,用于 256 个颜色刻度16#FF
至16#00
。16#FF
表示 100% 颜色部分,16#00
表示 0% 颜色部分。
|
字节的透明渐变 |
|
红色部分的字节 |
|
绿色部分的字节 |
|
蓝色部分的字节 |
示例
|
蓝色,不透明 |
|
绿色,不透明 |
|
黄色。不透明 |
|
灰色,半透明 |
|
黑色,半透明 |
|
红色,不透明 |
示例
颜色常量的全局声明
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
用彩色动画显示可视化元素
-
在CODESYS 中创建一个标准项目。
-
在 POU 树中声明全局颜色常量。
{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
-
在设备树中,在
PLC_PRG
中声明本地颜色变量。VAR dwFillColor: DWORD := GVL.gc_dwGreen; dwFrameColor : DWORD := GVL.gc_dwBlack; dwAlarmColor : DWORD := GVL.gc_dwRed; END_VAR
-
声明一个控制变量。
bChangeColor : BOOL;
-
在
PLC_PRG
中声明一个输入变量。bInput : BOOL;
-
启用可视化编辑器。
-
拖动“矩形” 元素到可视化编辑器。
打开元素的“Properties” 视图。
-
配置矩形的属性如下:
-
属性“颜色变量”,“正常状态”,“填充颜色” :
PLC_PRG.dwFillColor
-
属性“颜色变量”,“正常状态”,“框架颜色” :
PLC_PRG.dwFrameColor
-
属性“颜色变量”,“报警状态”,“填充颜色” :
PLC_PRG.dwAlarmColor
-
属性“颜色变量”,“切换颜色” :
<toggle/tap variable>
-
属性“输入配置”,“切换”,“变量” :
PLC_PRG.bInput
-
-
变量编程如下
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
颜色在运行时初始化。如果将变量
bChangeColor
强制设为TRUE
,矩形的颜色显示就会改变。在可视化界面中点击矩形时,矩形会以报警颜色显示。