State Color 状态颜色

State Color(状态颜色)是 Visual States 中用于两态显示的颜色行为。配置一个条件后,条件成立时组件使用 True State 样式(填充、边框、是否显示),条件不成立时使用 False State 样式。它不处理数值区间或多状态优先级;这些场景应使用 Range Color、Discrete Color 或 Multi-State Color。当一个图形只表达“是/否、开/关”时,State Color 是更清晰的配置方式。

颜色

颜色: State Color 状态颜色

用于真/假两态的视觉行为:一个条件成立给“真”样式,不成立给“假”样式,分别可控制填充、边框、显隐。最适合 运行/停止、开/关、自动/手动 这类只有两种状态的组件。

它是什么、用来做什么

State Color(状态颜色)是 Visual States 中用于两态显示的颜色行为。配置一个条件后,条件成立时组件使用 True State 样式(填充、边框、是否显示),条件不成立时使用 False State 样式。它不处理数值区间或多状态优先级;这些场景应使用 Range Color、Discrete Color 或 Multi-State Color。当一个图形只表达“是/否、开/关”时,State Color 是更清晰的配置方式。

使用方法:编辑器里要填的字段

把 State Color 从右侧拖到左侧组件节点上完成绑定,双击打开编辑器。先在 Definition 里读标签、做准备,再让 Condition 返回一个布尔值,然后分别配置“真状态”和“假状态”两套样式。

  • Definition:准备区,读标签、定义变量。例:var running = ReadTagInteger("PLC1.PUMP.RUN", 0);
  • Condition:返回 true/false 的最终条件。例:running === 1;
  • Apply When True / Apply When False:是否在条件为真 / 为假时套用对应那套样式(False 默认关闭,需要时才打开)
  • True State / False State:两套独立样式块,各自含下面的开关
  • Enabled:该状态块是否生效
  • Fill:勾选 FillEnabled 后设置 FillColor 填充色
  • Stroke:勾选 StrokeEnabled 后设置 StrokeColor 边框色
  • Visibility:勾选 VisibilityEnabled 后用 visible / hidden 切换该状态下组件显示或隐藏
// Definition
var running = ReadTagInteger("PLC1.PUMP.RUN", 0);

// Condition
running === 1;
// True 状态: 填充 #00FF00(绿) → 运行
// False 状态: 填充 #FF8800(橙) → 停止

适用场景

凡是组件只有两种明确状态、需要靠颜色或显隐一眼区分时就用它。

  • 泵/电机运行指示灯:运行=绿,停止=灰/橙
  • 阀门开关状态:开=绿,关=红
  • 自动/手动、就地/远程等两态标记
  • 某个布尔报警块:报警时显示并变红,正常时隐藏

边界与易错点

两个常见配置误区:一是只配置“真”状态样式,条件不成立时组件没有任何变化,因为 False State 的 Enabled 和 Apply When False 默认关闭,需要显示假状态时必须手动打开。二是 State Color 没有 Quality Border(通信质量边框)选项,不会因为标签质量变坏而提示;如果现场需要在断线时给出异常提示,请改用带 Quality Border 的行为(如 Script Color、Discrete Color)。另外 Condition 要返回布尔值,不要返回数字区间(那是 Range Color / Discrete Color)。

State Color 状态颜色编辑器
图示 1: State Color 编辑器

在编辑器里写条件,分别配置真/假两套填充、边框和显隐。