Overview Trend

This block detects for each input value whether it rises, stays the same or falls over the configured time (e.g. whether a temperature is rising or falling). The output is set to the value for "rising", "stable" or "falling" (default 1 / 0 / -1). The number of channels is set with the parameter "Number of inputs/outputs"; each input has an associated trend output. The calculated state is stored persistently and is available again after a restart.


Inputs

E1..En
Input
Value whose trend is determined. The number of inputs corresponds to the parameter "Number of inputs/outputs".



Outputs

T1..Tn
Trend
Trend of the associated input: value "rising" when the value increases, "stable" when it stays within the deviation, "falling" when it decreases.



Parameters

Number of inputs/outputs
Number of channels (one trend output per input), 1 to 64.
Trend logic
Defines how the trend is derived from the value over time. For all methods: if the determined change over the time window is ≥ deviation the output is "rising", if it is ≤ −deviation "falling", otherwise "stable".
  • Discrete sampling: at the end of each time window the current value is compared with the reference value (value at the start of the window) and the result is output; the current value then becomes the new reference. The output only changes at the rate of the configured time. Simple and easy to follow, but reacts only at the end of the window.
    Example: Time = 10 min, deviation = 0.5. Reference at the start 21.0 °C, after 10 min 21.8 °C → difference +0.8 ≥ 0.5 → output "rising" (1), and 21.8 °C becomes the new reference. If the value rises only to 21.9 °C over the next 10 min → difference +0.1 < 0.5 → "stable" (0).
  • Gliding reference: the reference continuously follows the input value slowly (each second it approaches by the fraction 1/time window). The trend is determined every second from the difference between the current value and the reference. Reacts continuously – not only at the end of the window. If the value stays constant for a while, the reference catches up and the output goes to "stable".
    Example: Time = 10 min, deviation = 0.5. If the temperature rises steadily, the trailing reference stays below the current value; as soon as the gap exceeds 0.5 °C, "rising" is output immediately and stays so while it keeps rising. If the temperature then stays constant, the reference catches up within about 10 min and the output switches to "stable".
  • Linear regression: evenly spaced samples are collected over the time window (up to 16) and the slope is calculated from them via a best-fit line (least squares). This slope is projected onto the window length and compared with the deviation. Averages over many points and is therefore insensitive to single outliers.
    Example: Time = 10 min, deviation = 0.5. The best-fit line of the last 10 min has a slope of +0.1 °C/min → projected onto 10 min = +1.0 °C ≥ 0.5 → output "rising". A single measurement spike barely shifts the line, so the trend stays stable.
Time
Length of the time window for the trend evaluation (unit see "Time unit").
Time unit
Unit for "Time": seconds, minutes or hours.
Deviation
Threshold (dead band) above which a change is rated as rising or falling. Smaller changes result in "stable".
Deviation type
  • Absolute: the deviation is a fixed value in units of the input.
  • Percent: the deviation is calculated relative in % of the current value.
Value rising
Output value for a rising trend (default 1).
Value stable
Output value for a stable trend (default 0).
Value falling
Output value for a falling trend (default -1).
Smoothing (s)
Smoothing of the input against measurement noise (time constant in seconds). 0 = no smoothing.
Minimum hold time (s)
A newly detected trend is held at least for this time before it may change. Prevents flickering of the output. 0 = off.
Save persistent
Stores the calculation state so the trend continues after a restart of the controller. Saving is performed cyclically at most once per hour and on shutdown.

See also common parameters of all function blocks.