Ranges & Limits
Define reusable value interpretation sets — alarm threshold zones, state labels, text mappings, and bit decoders — and assign them to any number of tags.
On this page
Imagine configuring alarm thresholds for 30 temperature sensors — then discovering the warning limit needs to shift. Without Ranges, that’s 30 individual edits. Ranges let you define named value interpretation sets once and reuse them across any number of tags. Create a named set here, assign it to tags in the Tag Database, and any future update to the set automatically applies to every tag that uses it.
The Ranges page is split into four sub-types, each with its own list on the left and a detail editor on the right. Each sub-type solves a different interpretation problem; pick the one that matches your signal type.
Limits — Alarm threshold zones
Limits define numeric band zones for alarm monitoring. A Limits set has up to five threshold bands — you set the numeric boundaries, the severity is determined by which band the live value falls into:
Normal — value is within the safe operating range. No alarm is raised.
Warning Low / Warning High — value has crossed a low or high caution boundary but has not yet reached the critical threshold. Triggers a Warning-severity alarm.
Alarm Low / Alarm High — value has reached a critical low or high boundary. Triggers an Alarm-severity alert requiring immediate operator attention.
Assign a Limits set to a tag via the Limits column in the Tag Database. When the tag’s live value enters a non-Normal band, the alarm system activates automatically at the corresponding severity level.
Define a single Limits set for all temperature sensors in the same process area (e.g., Cooling_Temp_Limits). Adjust the thresholds once and every assigned tag updates automatically.
You can use dynamic limits by selecting a tag or equation instead of a static value — the threshold itself becomes a live variable.
You can also use the {tag.label} placeholder in the alarm description. When an alarm fires, it is replaced by the inherited label data of the tag from the Tag Database.
Hysteresis
Hysteresis prevents false alarms caused by values hovering near a threshold boundary.
Value hysteresis defines two threshold values: an activation threshold and a return (deactivation) threshold. The alarm activates only when the monitored value crosses the activation threshold, and it deactivates only when the value returns past the return limit.
Example: High limit = 80, Return limit = 75. The alarm triggers when the value rises above 80. It stays active until the value drops below 75, avoiding repeated toggling if the value fluctuates around 80.
Time hysteresis (delay) prevents the alarm from triggering immediately when a threshold is crossed. The value must remain beyond the threshold for a defined delay period before the alarm activates. Similarly, deactivation requires the value to stay within the return limit for the defined period.
Example: Activation threshold = 80, time delay = 5 seconds. The value must stay above 80 continuously for 5 seconds before the alarm triggers. If it drops below 80 within those 5 seconds, the alarm does not activate.
This mechanism ensures that minor fluctuations do not produce false alarms and that every alarm is meaningful and actionable.
Alarm description and tag drag-and-drop
You can drag and drop tags from the Tag Database into the alarm description field. This inserts the tag’s live value directly into the alarm message. When the alarm is active, the current tag value appears in the online alarm preview. In the alarm history, the value shown corresponds to the reading at the moment the alarm was triggered. This description — including the embedded tag value — is also included in notification messages.
Alarm notifications — custom message body and subject
The Limits section lets you configure custom alarm message body and subject for each alarm. These are sent via connected notification channels (Discord, WhatsApp, email, or other supported platforms).
Use the {alarms} placeholder in the body or subject — it is replaced at send time with the inherited alarm data. If the custom body or subject is left blank, the default notification format is applied automatically.
Interval — Range-to-label mapping
Interval maps numeric ranges to descriptive text labels. Use it when a tag’s numeric value represents an operating mode or zone rather than a measured quantity.
Example for a pump speed signal (0–100%):
0 → "Stopped"
1–30 → "Low speed"
31–80 → "Normal"
81–100 → "Maximum"
The label appears in report tables and alarm descriptions instead of the raw number. Assign an Interval set to a tag via the Format column in the Tag Database.
Value to Text — Discrete value mapping
Value to Text maps exact integer values to text strings. Use it for status registers where each integer corresponds to a distinct machine state.
Example for a drive status register:
0 → "Stopped"
1 → "Running"
2 → "Fault"
3 → "Maintenance mode"
4 → "Awaiting command"
The mapped text appears in report outputs and alarm descriptions. Assign a Value to Text set to a tag via the Format column in the Tag Database.
Binary Mapping — Bit decoder
Binary Mapping decodes individual bits of an integer tag into separate named boolean states. Use it for PLC status words where each bit carries independent meaning.
Example for a 16-bit status word:
Bit 0 → "Motor Running"
Bit 1 → "Fault Active"
Bit 2 → "Ready"
Bit 3 → "Manual Mode"
Each bit becomes a readable boolean state in report outputs and alarms — without needing to create separate tags for each bit in the Tag Database.
Create a Value to Text mapping for a specific drive model once, then assign it to every tag that reads a status register from that drive type. All instances benefit from any future updates to the mapping.