Advanced (virtual) tags compute new values from existing tags. They live under Extensions › Virtual tags, appear in OPC UA under _AdvancedTags, and can be logged, alarmed and shown on screens like any other tag.

Types
| Type | Purpose | Notes |
|---|---|---|
| Expression (Derived) | any formula over input tags | evaluated on change or at a fixed period; math, logic, comparison, string and time functions |
| Average | rolling or window average | run-gated: only accumulates while a run tag is true |
| Minimum / Maximum | min/max over a window | resettable, run-gated |
| Totalizer | integrates a rate over time (m³/h → m³) | units per hour/minute/second, persistent across restarts, reset tag |
| Cumulative (Oracle-style) | difference-based counters | handles rollover |
| Link | copies a tag to another (write-back) | for mapping between devices or protocols |
| Trigger | raises a boolean pulse on conditions | for screens and Data Bridge |
Expression language
IF(Plant.PLC1.Flow > 100 AND Plant.PLC1.Pump1_Run, Plant.PLC1.Flow * 1.05, 0)
ROUND(AVG(Tank1.Level, Tank2.Level), 1)
CLAMP((Raw - 4) / 16 * 100, 0, 100) // 4–20 mA to percent
LERP(0, 100, Raw / 65535) // linear interpolation
POLY(Raw, 0.0012, -0.3, 12.5) // polynomial
MAP(Raw, 0, 1023, 0, 10) // range mapping
Available functions include arithmetic, ABS ROUND FLOOR CEIL MIN MAX AVG SUM, trigonometry, IF AND OR NOT, comparisons, string functions, NOW() HOUR() MINUTE(), PREV(tag) (previous value), AGE(tag) (seconds since last update), QUALITY(tag), RANDOM(). The editor has Validate which checks syntax and shows a live evaluation.
Quality propagation
If any input is Bad, the result is Bad unless the expression handles it explicitly with QUALITY(). Missing inputs are reported in the tag's status column and in the event log.
Persistence
Totalizers and cumulative tags save their state to disk every 30 s and on shutdown, so a restart or power loss does not reset accumulated volumes.
Performance
Virtual tags evaluate in the core process on their own schedule; thousands of them are fine. Prefer on change evaluation for expressions that depend on slowly changing tags.
MergenHub