Как вариант, в моей больной фантазии родилась следующая идея:
Создать дополнительный входной канал, который будет забирать значения из интересующего канала в формулу.
Формула в свою очередь будет подобна этой:
public class PrevValue
{
public double Value {get; set;}
}
PrevValue prevValue = new PrevValue();
public double ChangeValue(double value)
{
if(value < 12 && value != prevValue.Value)
{
prevValue.Value = value;
return value;
}
else
{
return prevValue.Value;
}
}
В модуле автоматического управления создаём триггер на изменение данных канала с формулой и получаем отработку в случае, если значение меньше 12 и отличается от предыдущего.
В случае, если повтор значения является корректным и новым, по которому также нужна отработка, видимо нужно отслеживать ещё и время прихода измерения.