Здравствуйте, мне нужно сделать управление трехпозиционной задвижкой в зависимости от темепературы, на контроллере ПЛК150, естественно в CodeSys. Значение температуры поступает на аналоговый вход, его я подаю на вход цифрового фильтра (DIG_FLTR). Далее полученное значение подается на вход ПИД-регулятора с автонастройкой (PID_3POS_IM_ANR), ну и конечно остальные входные параметры. Здесь возникает первый непонятный мне момент: после запуска программы выход STATE_ANR функционального блока PID_3POS_IM_ANR всегда равен 0, т.е. автонастройка идет постоянно, хотя на входе SATRT_ANR тоже 0. Потом выходное значение с ПИД-регулятора подаю на вход функционального блока VALVE_REG_NO_POS (т.к. задвижка без датчика положения заслонки), отсекая перед этим все отрицательные значения. После запуска программы на вход поступает значение равное начальной мощности, заданной в ПИД-регуляторе. На выходе VALVE_REG_NO_POS я получаю сигнал MORE (втечение 60 секунд), т.е. все верно, заслонка должна открыться и, учитывая полное время хода, она должна "открываться" втечение 60 с. Далее ничего не происходит. На форуме я нашел пример программы, у меня сделано в общем-то все точно также. НО почему-то не работает. Прошу вса помочь мне разобраться с этой проблемрй. Читал форум, но не нашел решения.
Программа прилагается. Там кроме задвижки ведется управление насосами (ФБ nasosi). Нужный ФБ: zadvigka. Тип датчика температуры в CodeSys - RTD, r428-50(ДТС125-50М.В2.60). Версия CodeSys 2.3
1) TI на цифровом фильтре меняется в миллисекундах (ошибка в документации)
2) Запуск АНР при старте всегда идет из-за того что данных о к-тах регулятора нет. Как вариант используйте retain, но обновитесь хотя бы 2.05 прошивки, иначе возможны проблемы.
3) Строки
vrem_hod: REAL := 150; (*Время полного хода задвижки, устанавливается пользователем. (Я поставил 60)*)
обозначают время полного хода =150 секунд - в этом проблема.
4) Огромная просьба - установите параметры задвижки из документации, регулировать намного лучше будет.