PDA

Просмотр полной версии : ПЛК160 ПИД-регулятор (PID_FUNCTION)



Александр
03.09.2019, 12:13
Добрый день!
ПЛК160, регулирование давления клапаном 4-20 мА. Скрин программы в приложении. Так как на ФБ PID_2POS_IM_ANR нет возможности вручную вводить коэф-ты регулятора, а только в результате автонастройки, и после перезапуска ПЛК они слетают, сделал выбор между двумя ФБ: если есть сигнал на запуск автонастройки то используется PID_2POS_IM_ANR, если нет то PID_FUNCTION. Также выбор между автоматическим регулированием клапаном (используется выход ФБ), либо ручным (используется значение полученное от Скады). Провел автонастройку, до перезапуска ПЛК работал PID_2POS_IM_ANR на полученных при автонастройке параметрах. Регулирует давление весьма точно, при уставке 5,6 атм, разбег +-0,02 атм. Добавил в программу фильтр измеряемой величины (датчика давления ПД100) DIG_FLTR, фильтр тоже не работает, не фильтрует, это отдельный вопрос который тоже нужно прояснять. Загрузил обновленную программу, соответственно PID_2POS_IM_ANR уже сбросил коэффициенты регулятора, (а вручную их ввести нет возможности я так понимаю) что и предполагалось. Выбрал режим в котором работает PID_FUNCTION, ввел параметры ПИД полученные от предыдущей автонастройки, но выход PID_FUNCTION с неопределенным значением, иначе говоря нет выхода с ФБ. На скрине видно что .INTEGRAL1 и dMeas имеют неопределенное (отсутствующее?) значение, и видимо по этой причине и выход ФБ так же не имеет значения. Что может быть причиной, что можно сделать в этой ситуации?
PS: вариант поместить в RETAIN ФБ PID_2POS_IM_ANR непонятный, поэтому передаю значения коэффициентов ПИД из Скады в RETAIN, а они идут на ФБ PID_FUNCTION.

По фильтру DIG_FLTR такая ситуация: непрерывно меняется значение давления (ПД100, 1 МПа), сотые, и чуть реже десятые атм, из-за этого клапан (это предположение) непрерывно отрабатывает, из-за чего возникают другие проблемы по технологической схеме. Задаю полосу PB 0.01 атм, время фильтра 5000 мс. (вроде как если чаще чем в 5 секунд измеренное давление меняется больше чем 0.01 атм, то отсекать эти изменения). Но по факту на выходе с фильтра та же цифра с непрерывно меняющимися сотыми и десятой атм что и на входе. На скрине видно: CurrentGranIn - на вход фильтра, CurrentPfromFltr - выход фильтра. Может чего-то не понимаю, помогите разобраться с фильтром.

krollcbas
03.09.2019, 12:56
Как совет из моего опыта
1. Используйте стандартный блок PID из библиотеки UTIL, без всяких замутов с автонастройкой.
Либо напишите свою функцию автонастройки (http://lapshinvr.ru/articals/avtotyuning.html?sphrase_id=302029), лишь бы Вы именно Вы хорошо понимали как оно работает.
2. Нужно помнить, что в PID присутствует математика, основанная на времени.
Значит вынести надо все ПИДы в отдельную программу с циклом в 100мс, поставить высокий приоритет

https://www.youtube.com/watch?v=FbrZS_4LZdM&feature=youtu.be

Александр
05.09.2019, 04:58
1. Используйте стандартный блок PID из библиотеки UTIL, без всяких замутов с автонастройкой.

В том и вопрос что хотелось бы получить коэффициенты регулятора с помощью автонастройки, ручным подбором результат не слишком хороший получается. Свою функцию автонастройки точно не потяну, по крайней мере нет возможности так углубляться в этот вопрос.
DIG_FLTR после перезапуска ПЛК заработал. PID_FUNCTION тоже, проблема отсутствующих значений видимо была в том что в момент пуска регулятора должны были быть установлены все входные параметры, а у меня они в процессе работы поступали. По поводу совместимости PID_FUNCTION и полученных коэффициентов от PID_2POS_IM_ANR, судя по всему ее нет)
Рассчитывал на комментарии специалистов ОВЕН, так как описание этих ФБ довольно краткое.