Последний раз редактировалось Сергей0308; 26.10.2025 в 09:17.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Посмотрите
https://owen.ru/forum/showthread.php...l=1#post430251
только берите из двух файлов - второй - с эмулятором, это немного подчищенная от лишнего версия.
Там же и рекомендации по настройке - оценочные диапазоны коэффициентов, чтобы не было удивления от того, что Ти=1000 с, потому, что на самом деле Ти это не время, а коэффициент, зависящий от диапазона измерения давления или температуры.
Сообщения форума Овен несколько менее функциональны в части оформления, поэтому могу привести ссылку на идентичную статью в моём блоге - там всё тоже самое, но несколько нагляднее.
Там тоже, нужно брать архив с эмулятором - с обновлённой версией.
https://www.cyberforum.ru/blogs/534277/8438.html
Связку "Аналоговый ПИД" + RegKZR (или его эквиваленты) настоятельно рекомендую не использовать нигде - ни в Owen Logic ни в CoDeSys (там есть их эквиваленты).
Причина - пресловутая "калибровка", т.е. в какой-то момент обязательно окажется ситуация, когда реальное положение клапана где-то посередине, а расчётное из RegKZR равно 0% или 100% и тогда RegKZR выполнит "калибровку", т.е. начнёт вместо требуемого короткого импульса подавать длинный, который реально переместит клапан в крайнее положение. Т.е. внесёт огромную помеху в регулирование.
Наверное, нужно сделать эмуляцию "Аналоговый ПИД" + RegKZR и показать, как ужасна эта связка.
Последний раз редактировалось FPavel; 26.10.2025 в 14:35.
Моделирование работы связки "Аналоговый ПИД" и RegKZR.
В качестве "аналогового ПИД" взял ПИД из компонентов, но подойдёт и какой-нибудь встроенный, только придётся пересчитать коэффициенты настройки.
В качестве объекта управления взял эмулятор с трёхпозиционным управлением (эмуляция и привода и клапана и самого объекта)
https://owen.ru/forum/showthread.php...l=1#post447749
Представил, что регулирую давление воздуха, поэтому диапазон изменения выхода эмулятора объекта 0...4000 Па.
Test_RegKZR.owle
После включения эмуляции через 3 минуты значение давления стабилизируется возле уставки - 2000 Па.
Теперь можно с дисплея включить периодическую помеху.
Чтобы не ждать излишне долго, подобрал несколько гипертрофированные параметры и клапана и помехи.
Люфт привода при открытии 1 с, при закрытии 2 с.
Помеха это синусоида с периодом 20 с, амплитудой 10% (приведённое к положению клапана эмулятора объекта).
Итак, что наблюдаем и от чего чувствуем беспокойство.
1. через 3 минуты давление стабилизируется возле уставки - это хорошо. А плохо, что расчётное значение положения клапана (это выход ПИД на вход RegKZR) равен 19,13%, а при этом реальное положение клапана равно 19,33%. Вроде бы не очень много, но уже есть
3 м.jpg
2. с дисплея включаем периодическую помеху и видим, что значение выхода ПИД постепенно уменьшается, хотя положение реального клапана находится около 20%. Это из-за неравномерности люфтов при открытии и закрытии. И, наконец, примерно через 1,5 минуты после включения помехи значение выхода ПИД становится равным 0 и RegKZR начинает калибровку - непрерывное закрытие клапана, т.е. подаёт неоправданно длинный импульс закрытия. И начиная с этого момента каждые 1,5 минуты происходит "калибровка".
5 м.jpg
Это, конечно, модель с гипертрофированными параметрами, но она очень жизненна. Я такое наблюдал, когда для регулятора разрежения собрал подобную схему (на ПЛК DirectLogic) - потом пришлось переделывать. Причём, на 4 соседних котлах с идентичным оборудованием на некоторых выход ПИД "полз" вверх, а на некоторых - вниз, т.е. никакой закономерности не было. А период составлял около 20 минут.
В этой модели не очень большая инерция (чтобы быстрее показать проблему), но у меня с разрежением инерция была значительнее и после "калибровки" клапан (направляющий аппарат) успевал перейти почти в крайнее положение, что иногда доходило и до отрыва пламени и до срабатывания защит по высокому давлению (уже не разрежению!) в топке.
Именно поэтому призываю старожилов никогда не рекомендовать эту связку "аналоговый ПИД" и RegKZR!
Макрос Pt1000 из базы (Менеджер компонентов) ругается на циклические связи. Что делать с ними / с этим? И почему нельзя в базе поменять, это же готовый макрос?
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Над таким макросом я сейчас работаю, начало тут http://www.owen.ru/forum/showthread....l=1#post221267
С уважением, Ревака Юрий.
Инженер группы технической поддержки компании "ОВЕН"
e-mail: yu.revaka@owen.ru
Шаблон описания ошибки ПР или OL http://ftp-ow.owen.ru/softupdate/OWE...s/Shablon.docx
Видео уроки по ПР200 и OWEN Logic http://edu.owen.ru/series/pr200_rev/
Другие видеоролики по тематике ПР https://www.youtube.com/channel/UCj4...H5H3d_t6iDlQOQ
Сегодня в онлайн базу макросов добавились следующие макросы:
-arcsin(x)
-arccos(x)
-arctg(x)
-FLOOR
-MXF
-isLEAP
-MXB
Ознакомиться с описанием можно в онлайн базе OWENLogic или перейдя по ссылке в первом сообщении.
С уважением, Ревака Юрий.
Инженер группы технической поддержки компании "ОВЕН"
e-mail: yu.revaka@owen.ru
Шаблон описания ошибки ПР или OL http://ftp-ow.owen.ru/softupdate/OWE...s/Shablon.docx
Видео уроки по ПР200 и OWEN Logic http://edu.owen.ru/series/pr200_rev/
Другие видеоролики по тематике ПР https://www.youtube.com/channel/UCj4...H5H3d_t6iDlQOQ
Так это Вы оперируете временем восхода и заката, а я оперирую тележкой едущей со скоростью 1м/с по цеху - все мы разные. Сейчас там работает немецкий контролер с циклом 6..8мс, но за счет грамотной математики справляется, и одной из перемененных в этой математике является время прошедшее с предыдущего цикла регулятора, причем время это не в "штуках циклов", а в микросекундах, про разницу я уже выше объяснял.
Не сразу дошло про "рассчитывается в самом начале, и не должен меняться, независимо от ветвлений или других процессов", если это так то среднее время цикла за 1с годится, но похоже это не так иначе вообще какой смысл в TIME_CYCLE вбил константу и поехал без всяких расчетов. Если бы можно было получить консультацию по этому вопросу, в смысле гарантию того что время цикла строго фиксировано (это может быть если юзерская программа крутится не раундробином, а строго по прерыванию таймера причем не маскируемого), то это решило бы проблему.