Mingcedar

所属产品: Mingcedar Studio DESIGNER

多条件颜色 Multi-State Color | Mingcedar Studio

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

首次发布 最近更新

<div class="manual-doc-article manual-doc-article-section"><h2 id="multi-state-color">颜色: 多条件颜色 Multi-State Color</h2>

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

<div class="doc-card-list">

<article class="doc-card doc-card-tip">

<h3 id="multi-state-color-item-1">功能说明</h3>

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

</article>

<article class="doc-card doc-card-tip">

<h3 id="multi-state-color-item-2">字段配置</h3>

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

<ul>

<li>Setup Script(可选):准备区,读标签、定义中间变量;不需要时可留空。</li>

<li>Conditions(条件 1~8):每行一句返回真/假的表达式,行号即优先级,第 1 行最高,运行时取第一个为真的行。</li>

<li>Use Else(使用默认):勾选后在条件区底部启用一行 Else,所有条件都不成立时用它。</li>

<li>Fill(填充,列头勾选开启):为每个状态行各设一个填充色。</li>

<li>Border(边框,列头勾选开启):为每个状态行各设一个边框色。</li>

<li>Visible(显示,列头勾选开启):为每个状态行各设显示或隐藏。</li>

<li>Quality Override:启用 Follow data quality (border / hide),配置 Good、Bad 边框色;需要质量异常时隐藏组件,可启用 Hide when quality is bad。</li>

</ul>

<div class="manual-code" data-code-language="javascript"><div class="manual-code-toolbar"><span>JavaScript</span><span class="manual-code-tools"><small>JavaScript</small><button type="button" data-copy-code data-copied="已复制" data-failed="请选中代码后复制" aria-label="复制代码: JavaScript">复制代码</button><span class="manual-code-status" role="status"></span></span></div><pre tabindex="0" class="docs-code-block shiki github-light" style="background-color:#fff;color:#24292e" tabindex="0"><code><span class="line"><span style="color:#6A737D">// Setup Script(准备)</span></span>

<span class="line"><span style="color:#D73A49">var</span><span style="color:#24292E"> st </span><span style="color:#D73A49">=</span><span style="color:#6F42C1"> ReadTagInteger</span><span style="color:#24292E">(</span><span style="color:#032F62">"PLC_LINE01.PUMP01.STATE"</span><span style="color:#24292E">, </span><span style="color:#005CC5">0</span><span style="color:#24292E">);</span></span>

<span class="line"><span style="color:#D73A49">var</span><span style="color:#24292E"> alarm </span><span style="color:#D73A49">=</span><span style="color:#6F42C1"> ReadTagBoolean</span><span style="color:#24292E">(</span><span style="color:#032F62">"PLC_LINE01.PUMP01.ALARM"</span><span style="color:#24292E">, </span><span style="color:#005CC5">false</span><span style="color:#24292E">);</span></span>

<span class="line"></span>

<span class="line"><span style="color:#6A737D">// 条件 1(最高优先级,报警)</span></span>

<span class="line"><span style="color:#24292E">alarm </span><span style="color:#D73A49">===</span><span style="color:#005CC5"> true</span></span>

<span class="line"><span style="color:#6A737D">// 条件 2(手动)</span></span>

<span class="line"><span style="color:#24292E">st </span><span style="color:#D73A49">===</span><span style="color:#005CC5"> 2</span></span>

<span class="line"><span style="color:#6A737D">// 条件 3(自动运行)</span></span>

<span class="line"><span style="color:#24292E">st </span><span style="color:#D73A49">===</span><span style="color:#005CC5"> 1</span></span>

<span class="line"><span style="color:#6A737D">// Else 默认:空闲</span></span></code></pre></div>

</article>

<article class="doc-card doc-card-tip">

<h3 id="multi-state-color-item-3">适用场景</h3>

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

<ul>

<li>泵/设备状态灯:报警优先显示红色,其次手动显示橙色,再次自动运行显示绿色,最后空闲显示灰色。</li>

<li>多档运行状态:停机 / 低速 / 高速 / 故障,用一个图形按优先级切换颜色,而不必叠多个行为。</li>

</ul>

</article>

<article class="doc-card doc-card-tip">

<h3 id="multi-state-color-item-4">常见配置问题</h3>

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

<ul>

<li>顺序决定结果:第一个成立的条件就生效,把更重要的工况(如报警)放在前面,否则会被前面成立的条件抢先。</li>

<li>条件写表达式、不是写颜色:条件行只返回真/假,颜色在右侧动作列设置;空条件按不成立处理。</li>

<li>都不成立又没开 Else:组件不会被本行为改色,保持原样;需要默认就勾上 Use Else。</li>

<li>通道要先在列头勾选:没勾 Fill / Border / Visible,那一列对所有行都不生效。</li>

<li>质量是通讯质量:Quality Border 反映的是标签通讯好坏,不是工艺值;质量坏时不应继续按有效值显示。</li>

</ul>

</article>

</div>

<div class="docs-note-grid manual-doc-image-grid">

<figure class="docs-note-card manual-doc-image-card" id="multi-state-color-image-1">

<img src="/WEB_img/HQPPT/current/color/multi-state.png" alt="Multi-State Color 多条件颜色编辑器" loading="lazy" decoding="async" />

<figcaption>

<strong>图示 1: Multi-State Color 编辑器</strong>

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

</figcaption>

</figure>

</div>

</div>