跳至主要内容

多条件颜色 Multi-State Color

按顺序检查最多 8 个条件,应用第一个成立条件的填充、边框和显隐设置。适合报警、手动、自动、空闲等有优先级的状态。

颜色文档修订:2026-10-21

颜色: 多条件颜色 Multi-State Color

按顺序检查最多 8 个条件,应用第一个成立条件的填充、边框和显隐设置。适合报警、手动、自动、空闲等有优先级的状态。

功能说明

Multi-State Color 适用于需要按优先级显示多个状态的组件。最多可配置八个布尔条件,运行时从上到下检查,并应用第一个成立条件对应的填充、边框和显隐设置。第 1 行优先级最高;全部不成立时,可使用 Else 设置默认外观。

字段配置

条件从上到下按优先级排列;为每行启用所需输出通道并配置动作。

  • Setup Script(可选):准备区,读标签、定义中间变量;不需要时可留空。
  • Conditions(条件 1~8):每行一句返回真/假的表达式,行号即优先级,第 1 行最高,运行时取第一个为真的行。
  • Use Else(使用默认):勾选后在条件区底部启用一行 Else,所有条件都不成立时用它。
  • Fill(填充,列头勾选开启):为每个状态行各设一个填充色。
  • Border(边框,列头勾选开启):为每个状态行各设一个边框色。
  • Visible(显示,列头勾选开启):为每个状态行各设显示或隐藏。
  • Quality Override:启用 Follow data quality (border / hide),配置 Good、Bad 边框色;需要质量异常时隐藏组件,可启用 Hide when quality is bad。
JavaScriptJavaScript
// Setup Script(准备)
var st = ReadTagInteger("PLC_LINE01.PUMP01.STATE", 0);
var alarm = ReadTagBoolean("PLC_LINE01.PUMP01.ALARM", false);

// 条件 1(最高优先级,报警)
alarm === true
// 条件 2(手动)
st === 2
// 条件 3(自动运行)
st === 1
// Else 默认:空闲

适用场景

当一个组件需要表达三种以上互斥工况、而且这些工况有明确优先级时使用。

  • 泵/设备状态灯:报警优先显示红色,其次手动显示橙色,再次自动运行显示绿色,最后空闲显示灰色。
  • 多档运行状态:停机 / 低速 / 高速 / 故障,用一个图形按优先级切换颜色,而不必叠多个行为。

常见配置问题

检查条件优先级与未命中时的设置:

  • 顺序决定结果:第一个成立的条件就生效,把更重要的工况(如报警)放在前面,否则会被前面成立的条件抢先。
  • 条件写表达式、不是写颜色:条件行只返回真/假,颜色在右侧动作列设置;空条件按不成立处理。
  • 都不成立又没开 Else:组件不会被本行为改色,保持原样;需要默认就勾上 Use Else。
  • 通道要先在列头勾选:没勾 Fill / Border / Visible,那一列对所有行都不生效。
  • 质量是通讯质量:Quality Border 反映的是标签通讯好坏,不是工艺值;质量坏时不应继续按有效值显示。
Multi-State Color 多条件颜色编辑器
图示 1: Multi-State Color 编辑器

按优先级排列最多 8 个条件,从上往下取第一个成立的,套用该行的填充、边框和显隐。

再次点击图片或按 Esc 关闭