REGA - Регулятор

Enable | Включение регулятора
CurVal | Текущее значение параметра
Grubo1, Tochno1, Tochno2, Grubo2 | Области значений паарметра. Если значение параметра: меньше (строго меньше) чем Grubo1 или больше (строго больше) чем Grubo2, то это зона "Грубо" [Grubo1 ; Tochno1) ИЛИ (Tochno2;Grubo2], то это зона "Точно" [Tochno1 ; Tochno2], это зона в которой все хорошо
InMin, InMax | Входа для датчиков которые срабатывают когда достигли крайнего положения (дальше включать соответствующий выход нельзя)
Sost | Состояние. 0-Нормально, параметр в заданных пределах 1-Зона "Точно" 2-Зона "Грубо"

State

Второе состояние.
0 - Стоп (Enable=0)
1 - Работа. Реуглируем, но возможно еще не вышли на заданное значение.
2 - Авария. Enable=1 И нарушен порядок значений Grubo1 <= Tochno1 <= Tochno2 <= Grubo2. Регулятор работать не может.
3 - Минимум (InMin=1). Далее выставлять OutClose = 1 регулятор не будет.
4 - Максимум (InMax=1). Далее выставлять OutOpen = 1 регулятор не будет.

OutOpen, OutClose | Выходы на увеличение (open) или уменьшение (close) параметра.
Cnt | Счетчик, изменияется когда надо отсчитывать задержку. Используется в зоне "Точно".
Dly | В режиме "Точно" одиночные импульсы подаются через время Dly. Это время которое необходимо для успокоения параметра.

После включения начинает работать алгоритм: Померить значение на входе и сравнить его с границами зон. Если входной сигнал в зоне когда все хорошо, то ничего не делаем. Если сигнал в зоне "Грубо", то включаем соответствующий выход (OutOpen если значние меньше чем Grubo1, или OutClose если значение больше чем Grubo2). В зоне точно импульс на выход (OutOpen ил OutClose) подается на 1 такт, потом выдерживается время Dly, после чего снова проверяем зону, и т.д. Замер параметра в зоне "точно" производится путем усреднения двух последних замеров, если это позволяет Dly.
Направления: Влево = Закрывать = сторона Минимум = меньше Grubo1
Вправо = Открывать = сторона Максимум = больше Grubo2
Датчики положения выдают ошибку в состоянии только тогда, когда она мешает дальнейшему изменению параметра. Например, если значение параметра находится в норме, и есть сработка InMin И/ИЛИ InMax, то никаких ошибок.