Range Color 范围颜色

Range Color(范围颜色)属于 Visual States 行为,用于把一个数值映射成颜色区间。配置 4 个阈值后,运行时会分成 5 段,数值落在哪一段,组件就用这一段对应的颜色(以及可选的边框、显示/隐藏)。最适合连续的模拟量:温度、压力、负载、设备运行的模拟状态等。如果只是真/假两态,请用 State Color;如果是固定的离散状态列表,用 Discrete Color。编辑器窗口标题为 Color Range Editor。

颜色

颜色: Range Color 范围颜色

把一个模拟量数值映射到颜色区间:用 4 个阈值把取值分成 5 段,每段给一种填充/边框颜色或显示状态。适合温度、压力、负载等连续量的状态着色。

它是什么、用来做什么

Range Color(范围颜色)属于 Visual States 行为,用于把一个数值映射成颜色区间。配置 4 个阈值后,运行时会分成 5 段,数值落在哪一段,组件就用这一段对应的颜色(以及可选的边框、显示/隐藏)。最适合连续的模拟量:温度、压力、负载、设备运行的模拟状态等。如果只是真/假两态,请用 State Color;如果是固定的离散状态列表,用 Discrete Color。编辑器窗口标题为 Color Range Editor。

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

在组件上添加 Range Color 行为后,打开编辑器,按这些字段填写:

  • Behavior Name(行为名):给这个行为起个名字,便于管理。
  • Component Name(组件名):自动带出、只读,确认绑定的是哪个组件。
  • Setup Script(即 Definition / 准备脚本):可选。读标签、定义变量、做中间计算,结果给 Condition 用。
  • Condition(条件):必填,必须返回一个数字,这个数字用来决定落在哪一段。默认是 0;。
  • Range Limits(区间阈值):4 个数字,按从小到大填,构成 <= L1 < L2 < L3 < L4 < Value,把取值分成 5 段。
  • Fill Color(填充颜色):5 个色块,对应 5 段的填充色;默认从绿到红。用左侧勾选框开/关该通道。
  • Border Color(边框颜色):可选,5 个色块,对应 5 段的边框色;勾选后生效。
  • Visibility(显示/隐藏):可选,5 个按钮,分别控制每一段是显示还是隐藏。
  • Quality Override(质量覆盖):可选。开启 Quality Border 后,通信质量好/坏分别用 Good/Bad 颜色描边;勾 Hide When Quality Bad 可在质量坏时直接隐藏。
// Setup Script
var temp = ReadTagDouble("Device.TEMP", 0.0);

// Condition(返回一个数字用于分段)
temp

适用场景

当连续数值需要用颜色直观表达所属档位时使用。两个常见场景:

  • 温度监视:填 60 / 80 / 95 / 110 四个阈值,<=60 绿色(正常)、80~95 黄色(偏高)、>110 红色(超温报警)。
  • 水泵负载/压力:把负载百分比分成低、正常、偏高、高、超限五段,操作员一眼就能看出当前档位,无需读具体数值。

边界与易错点

几个要注意的地方:

  • 4 个阈值对应 5 段,不是 5 个阈值。边界规则固定为:第一段是 值 <= L1,最后一段是 值 > L4,中间用 < 衔接。
  • 阈值要从小到大填。Condition 必须返回数字(不是颜色字符串),返回颜色请改用 Script Color。
  • 阈值框留空或填了非数字会被当成 0,可能让分段错位,保存前确认四个框都填了正确数值。
  • 保存时只校验 Setup Script 与 Condition 的 JS 语法,有语法错误会弹警告、无法点 OK;颜色和阈值本身不做语法校验。
  • Quality 指的是通信质量,不是数值本身;通信坏时不应继续按旧值着色,用 Quality Override 处理。
Range Color 范围颜色编辑器
图示 1: Range Color 编辑器

用 4 个阈值把数值分成 5 段,每段配一种填充/边框颜色或显隐。