Feature: Shared options: Quality Border, Condition / Enabled, Hide
These are shared switches that appear across many behavior editors, not standalone behaviors: Quality Border drives a good/bad border from communication quality; Condition / Active / Enabled decide whether a behavior runs; different hide options cover bad quality, disabled state, or out-of-range input.
What it is and what it is for
This item covers the shared switches that show up again and again across behavior editors. They are not behaviors themselves; they are common options attached to a behavior. Quality Border is about the tag's communication quality (good / bad), not the process value: good quality uses the GOOD color and bad quality uses the BAD color. Condition / Active / Enabled is the main gate for whether a behavior runs: true runs it, false skips it. Hide options depend on the specific editor: interaction behaviors often have Hide when disabled, current Move / Rotate editors have out-of-range hiding, and the current Scale editor does not.
How to use it: the fields you actually fill
In each behavior editor, tick / fill these shared options:
- Quality Border: ticking it shows two color cells, GOOD and BAD, for the border color when quality is good / bad (supported by the color, range, script, discrete, state, multi-state, tag-bit, and text behaviors).
- Hide when quality is BAD: pairs with Quality Border; on bad quality it does not just recolor the border but hides the component.
- Condition (current geometry Move / Rotate / Scale), Active (color / text), or Enabled (interaction): an expression that returns true to run or false to skip; default is true.
- Hide when disabled (interaction): hides the component when Enabled is false; already wired for variable-write, diagnosis, and tag-write behaviors.
- Hide outside range / Hide outside rotation range (geometry Move, Rotate): hide the component when the input value falls outside the configured range; the current Scale editor has no such control.
- The current Move / Rotate / Scale geometry editors are driven by Source Value or Rotation Input plus Condition; they do not expose a separate Post Operations input box.
// Condition / Active / Enabled: return a single true/false result
ReadTagQualityGood("PLC1.PUMP.SPEED")
When to use it
Two concrete field scenarios:
- Quality cue: tick Quality Border on a pointer, status lamp, or value text so the border turns the BAD color the moment the PLC drops or that point's comms go bad; for critical points that should not show a stale value, also tick Hide when quality is BAD to hide it.
- Conditional run and hiding: use Condition / Active / Enabled so a behavior only runs in a specific mode (e.g. manual mode, a given screen state). If a false condition should also hide the component, first check whether that editor has a Hide option; otherwise combine it with a visibility behavior.
Boundaries and common mistakes
A few easy traps:
- Quality is communication quality, not the process value; on bad quality, color behaviors should not keep blinking / animating as if the tag were still valid.
- Condition / Active / Enabled is an output slot that returns true/false, so only put expressions that resolve immediately there; do not paste full scripts with if/for or async fetch.
- This batch of Move / Rotate / Scale geometry editors currently has no Post Operations input box; do not look for that control in the current UI.
- Hide has three distinct sources with different purposes: Hide when quality is BAD, Hide when disabled, and Hide outside range; do not conflate them.