.

动画彩色显示

.
.

元素的颜色在元素属性的颜色属性中指定。您可以从选择列表中选择预定义的样式颜色,也可以在颜色对话框中选择颜色。

颜色变量元素属性用于元素的颜色动画。如果你将变量传递给属性,那么您可以在应用程序代码中编写颜色更改程序,或者配置导致颜色更改的用户输入代码中的颜色常量或颜色变量具有DWORD数据类型,并根据RGB颜色空间或RGBA扩展进行编码。

.
在RGBA颜色空间的颜色定义

提示!

可视化管理器中提供了激活半透明绘图选项。该选项在默认情况下是启用的,因此透明度属性对所有颜色定义都可用。在编程颜色定义中,前导字节被解释为阿尔法通道,因此用作颜色的透明度值。当清除该选项时,透明度属性不可用,并且在颜色字面量中忽略前导字节。

代码中的颜色信息被指定为DWORD字面量。该值在RGBA颜色空间中,通常以十六进制数字显示。该值用红色、绿色和蓝色的附加部分进行编码。它附加了阿尔法通道,决定了颜色的透明度。

.颜色字面量的字节顺序


16#<TT><RR><GG><BB>

<TT> : 00 - FF     // 透明度 256 级
<RR> : 00 - FF     // 红色 256 级
<GG> : 00 - FF     // 绿色 256 级
<BB> : 00 - FF     // 蓝色 256 级
 

透明度的分度值为不透明的16#FF和透明的16#00。对于每个颜色部分,保留一个字节用于256个颜色渐变16#FF16#0016#FF表示100%颜色部分,16#00表示0%颜色部分。

.

<TT>

字节为透明分度00-FF

<RR>

00-FF的红色部分的字节

<GG>

00-FF的绿色部分的字节

<BB>

00-FF的蓝色部分的字节

.

.示例:

.文字颜色

16#FF0000FF

蓝色,不透明

16#FF00FF00

绿色,不透明

16#FFFFFF00

黄色,不透明

16#88888888

灰色,半透明

16#88000000

黑色半透明

16#FFFF0000

红色,不透明

.

.示例:

.颜色变量的全局声明


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 
 
.
以彩色动画显示可视化元素
.
1.
在CODESYS中创建一个标准工程:
2.
在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
 
3.
设备树中,在PLC_PRG中声明本地颜色变量。


VAR
    dwFillColor: DWORD := GVL.gc_dwGreen;
    dwFrameColor : DWORD := GVL.gc_dwBlack;
    dwAlarmColor : DWORD := GVL.gc_dwRed;
END_VAR
 
4.
声明一个控制变量。


    bChangeColor : BOOL;
 
5.
PLC_PRG中输入一个声明变量。


    bInput : BOOL;
 
6.
使能可视化编辑器。
7.
拖动矩形元素到可视化编辑器。

元素的属性视图打开。

8.
配置矩形的属性如下:
  • 属性颜色变量正常状态填充颜色PLC_PRG.dwFillColor
  • 属性颜色变量正常状态框架颜色PLC_PRG.dwFrameColor
  • 属性颜色变量报警状态填充颜色PLC_PRG.dwAlarmColor
  • 属性颜色变量切换颜色<toggle/tap variable>
  • 属性输入配置切换变量PLC_PRG.bInput
9.
对变量编程如下:

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
 

颜色在Runtime初始化。如果变量bChangeColor被强制赋值为TRUE,矩形的颜色显示会发生变化。在可视化界面中点击该矩形时,矩形显示为报警色。