ПИД-регулятор
Добрый день! не получается правильно задать вход "СТРУКТУРА ПАРАМЕТРОВ" в блоке ПИД-регулятор в форме приращений. Пробовал воспользоваться блоком создание СТРУКТУРЫ, при проверке выдает ошибку несовпадении типов, подскажите как правильно или вышлете пожалуйста пример блока с ПИД-регулятором на e-mail. спасибо
-
- Сообщения: 465
- Зарегистрирован: 18 ноя 2004, 17:45
- Откуда: Компания ДЭП
- Контактная информация:
-
- Сообщения: 465
- Зарегистрирован: 18 ноя 2004, 17:45
- Откуда: Компания ДЭП
- Контактная информация:
Svale писал(а):А как бы и мне пример посмотреть?
Спасибо.
http://www.dep.ru/downloads/pub/examples/PID/PID.rar
С уважением
Компания ДЭП
Москва, Голубинская ул., 10
+7 (495) 995-00-12
Компания ДЭП
Москва, Голубинская ул., 10
+7 (495) 995-00-12
-
- Сообщения: 465
- Зарегистрирован: 18 ноя 2004, 17:45
- Откуда: Компания ДЭП
- Контактная информация:
leon писал(а):У меня не заработал пример! проект отрыть не сумел - выдает ошибку, а отдельно блок delta не работает. ПОЧЕМУ?![]()
Кроме блока необходимо использовать файл глобальных переменных. Структура объявлена как глобальная переменная.
С уважением
Компания ДЭП
Москва, Голубинская ул., 10
+7 (495) 995-00-12
Компания ДЭП
Москва, Голубинская ул., 10
+7 (495) 995-00-12
-
- Сообщения: 465
- Зарегистрирован: 18 ноя 2004, 17:45
- Откуда: Компания ДЭП
- Контактная информация:
Добрый день.
Есть задача: осуществлять ПИД-регулирование по входному аналогу, управляя выходным дискретом. Какой из функций "Разработчика" лучше воспользоваться? "ПИД-регулятор в форме приращений"? Тогда без дополнительных "костылей", как я понимаю, не обойтись? Второй вопрос отсюда же: параметры регулятора имеют тип данных "структура", можно ли вынести ряд параметров (кп, ти) в отдельные переменные, чтобы их можно было оперативно менять? Отсюда же третий вопрос: в документации я не встретил ничего про ограничения, накладываемые на проект (может плохо искал), будет ли "нормально" работать контроллер D182, если в проекте будет задействовано 120 ПИД регуляторов? Заранее благодарен
Есть задача: осуществлять ПИД-регулирование по входному аналогу, управляя выходным дискретом. Какой из функций "Разработчика" лучше воспользоваться? "ПИД-регулятор в форме приращений"? Тогда без дополнительных "костылей", как я понимаю, не обойтись? Второй вопрос отсюда же: параметры регулятора имеют тип данных "структура", можно ли вынести ряд параметров (кп, ти) в отдельные переменные, чтобы их можно было оперативно менять? Отсюда же третий вопрос: в документации я не встретил ничего про ограничения, накладываемые на проект (может плохо искал), будет ли "нормально" работать контроллер D182, если в проекте будет задействовано 120 ПИД регуляторов? Заранее благодарен

-
- Сообщения: 465
- Зарегистрирован: 18 ноя 2004, 17:45
- Откуда: Компания ДЭП
- Контактная информация:
ic_ahp писал(а):Добрый день.
Есть задача: осуществлять ПИД-регулирование по входному аналогу, управляя выходным дискретом. Какой из функций "Разработчика" лучше воспользоваться? "ПИД-регулятор в форме приращений"? Тогда без дополнительных "костылей", как я понимаю, не обойтись?
Скорее всего, именно "ПИД-регулятор в форме приращений". О каких "костылях" идет речь?
ic_ahp писал(а):Второй вопрос отсюда же: параметры регулятора имеют тип данных "структура", можно ли вынести ряд параметров (кп, ти) в отдельные переменные, чтобы их можно было оперативно менять?
В "Разработчике" есть блок "Элементы структуры по имени". Этим блоком можно получить значение элемента структуры. Также есть блок "Создание структуры по имени". Этим блоком можно заменить элемент существующей структуры.
ic_ahp писал(а):Отсюда же третий вопрос: в документации я не встретил ничего про ограничения, накладываемые на проект (может плохо искал), будет ли "нормально" работать контроллер D182, если в проекте будет задействовано 120 ПИД регуляторов? Заранее благодарен
На размер библиотеки есть - 8192 байта. На количество библиотек есть ограничение, но скорее кончится доступное ОЗУ, чем оно будет достигнуто.
"Нормальная" работа определяется "параметрами быстродействия". Исходя из этого, цифра в 120 регуляторов кажется неоправданной.
С уважением
Компания ДЭП
Москва, Голубинская ул., 10
+7 (495) 995-00-12
Компания ДЭП
Москва, Голубинская ул., 10
+7 (495) 995-00-12
Евгений Рублев писал(а):Скорее всего, именно "ПИД-регулятор в форме приращений". О каких "костылях" идет речь?
ПИД-регулятор в форме приращений по документации имеет два выхода: "больше" и "меньше", а управляющий дискрет один. Конечно, же можно привязываться к, например, только "больше", но опять же на выходе регулятора в дискреты записываются значения не "0" и "1", а "какие-то" целые числа (видимо "вычисления величины управления (в секундах"). Под "костылями" я имел ввиду использование дополнительных функций на выходе регулятора для записи в дискрет именно "0" и "1".
Евгений Рублев писал(а):На размер библиотеки есть - 8192 байта. На количество библиотек есть ограничение, но скорее кончится доступное ОЗУ, чем оно будет достигнуто.
"Нормальная" работа определяется "параметрами быстродействия". Исходя из этого, цифра в 120 регуляторов кажется неоправданной.
То есть Вы предполагаете, что контроллер не справится с такими вычислениями?
-
- Сообщения: 465
- Зарегистрирован: 18 ноя 2004, 17:45
- Откуда: Компания ДЭП
- Контактная информация:
ic_ahp писал(а):Евгений Рублев писал(а):Скорее всего, именно "ПИД-регулятор в форме приращений". О каких "костылях" идет речь?
ПИД-регулятор в форме приращений по документации имеет два выхода: "больше" и "меньше", а управляющий дискрет один. Конечно, же можно привязываться к, например, только "больше", но опять же на выходе регулятора в дискреты записываются значения не "0" и "1", а "какие-то" целые числа (видимо "вычисления величины управления (в секундах"). Под "костылями" я имел ввиду использование дополнительных функций на выходе регулятора для записи в дискрет именно "0" и "1".
Целые числа это длина импульса на включение. Если в дискрет писать число больше 3 с динамикой, то это длина импульса на включение.
ic_ahp писал(а):Евгений Рублев писал(а):На размер библиотеки есть - 8192 байта. На количество библиотек есть ограничение, но скорее кончится доступное ОЗУ, чем оно будет достигнуто.
"Нормальная" работа определяется "параметрами быстродействия". Исходя из этого, цифра в 120 регуляторов кажется неоправданной.
То есть Вы предполагаете, что контроллер не справится с такими вычислениями?
Возможно справится. Вопрос во времени потраченном на вычисления.
С уважением
Компания ДЭП
Москва, Голубинская ул., 10
+7 (495) 995-00-12
Компания ДЭП
Москва, Голубинская ул., 10
+7 (495) 995-00-12
-
- Сообщения: 465
- Зарегистрирован: 18 ноя 2004, 17:45
- Откуда: Компания ДЭП
- Контактная информация:
Кирилл писал(а):А не подскажите каким образом задавать параметры в структуре через конфигуратор?
В "Разработчике" есть блок "Создание структуры по имени". Этим блоком можно заменить элемент существующей структуры.
Можно завести глобальные переменные, сказать что они "конфигурационные". Далее из них читать соответствующие значения и менять значения по умолчанию.
Также в "Разработчике" есть блок "Элементы структуры по имени". Этим блоком можно получить значение элемента структуры. Далее полученное значение можно записать в "Базу текущих значений" (в аналог или дискрет). Другим блоком прочитать из "Базы текущих значений" и заменить в структуре (см. выше). При такой реализации надо учитывать, что аналоги и дискреты могут быть "неопределенными" (стоит бит undef). В этом случае переписывать старое значение в структуре нельзя.
С уважением
Компания ДЭП
Москва, Голубинская ул., 10
+7 (495) 995-00-12
Компания ДЭП
Москва, Голубинская ул., 10
+7 (495) 995-00-12
Евгений Рублев писал(а):На размер библиотеки есть - 8192 байта. На количество библиотек есть ограничение, но скорее кончится доступное ОЗУ, чем оно будет достигнуто.
Спасибо, разобрался с регулятором, но осталось несколько вопросов: на данный момент сделал 12 регуляторов, и размер библиотеки, который показывается в конфигураторе в секции "файлы для загрузки" - Main 5387 и Ini 3096 (байтов?). Прогрессия роста размера впечатляет, хватит ли 8192 байта на всё....
И второе: я хотел бы ещё несколько упростить блоки в "разработчике" и сделать шаблон на 84 входа и 12 выходов, но таких коннекторов в разработчике нету. Можно ли как-то выйти из этой ситуации?
С "костылями" тоже разобрался: не записывал динамику в переменную, поэтому и не было результата. Спасибо

-
- Сообщения: 465
- Зарегистрирован: 18 ноя 2004, 17:45
- Откуда: Компания ДЭП
- Контактная информация:
ic_ahp писал(а):Евгений Рублев писал(а):На размер библиотеки есть - 8192 байта. На количество библиотек есть ограничение, но скорее кончится доступное ОЗУ, чем оно будет достигнуто.
Спасибо, разобрался с регулятором, но осталось несколько вопросов: на данный момент сделал 12 регуляторов, и размер библиотеки, который показывается в конфигураторе в секции "файлы для загрузки" - Main 5387 и Ini 3096 (байтов?). Прогрессия роста размера впечатляет, хватит ли 8192 байта на всё....
В проект "Разработчика" можно добавить библиотек. На названии проекта кликаем правой кнопкой мышки, там есть "добавить библиотеку". Когда необходимо часть блоков переносим в новую библиотеку.
ic_ahp писал(а):И второе: я хотел бы ещё несколько упростить блоки в "разработчике" и сделать шаблон на 84 входа и 12 выходов, но таких коннекторов в разработчике нету. Можно ли как-то выйти из этой ситуации?
С "костылями" тоже разобрался: не записывал динамику в переменную, поэтому и не было результата. Спасибо
Можно. Упростить

С уважением
Компания ДЭП
Москва, Голубинская ул., 10
+7 (495) 995-00-12
Компания ДЭП
Москва, Голубинская ул., 10
+7 (495) 995-00-12
Евгений Рублев писал(а):В "Разработчике" есть блок "Создание структуры по имени". Этим блоком можно заменить элемент существующей структуры.
Можно завести глобальные переменные, сказать что они "конфигурационные". Далее из них читать соответствующие значения и менять значения по умолчанию.
При попытке соорудить такую конструкцию "Разработчик" выдает: "Ошибка : Обнаружен цикл"
В чем может быть причина?
-
- Сообщения: 465
- Зарегистрирован: 18 ноя 2004, 17:45
- Откуда: Компания ДЭП
- Контактная информация:
Кирилл писал(а):Евгений Рублев писал(а):В "Разработчике" есть блок "Создание структуры по имени". Этим блоком можно заменить элемент существующей структуры.
Можно завести глобальные переменные, сказать что они "конфигурационные". Далее из них читать соответствующие значения и менять значения по умолчанию.
При попытке соорудить такую конструкцию "Разработчик" выдает: "Ошибка : Обнаружен цикл"
В чем может быть причина?
А новое значение переменной берется из самой переменной (созданной на "Панели") или через ссылку ? Ссылка на чтение ?
С уважением
Компания ДЭП
Москва, Голубинская ул., 10
+7 (495) 995-00-12
Компания ДЭП
Москва, Голубинская ул., 10
+7 (495) 995-00-12
Евгений Рублев писал(а):В проект "Разработчика" можно добавить библиотек. На названии проекта кликаем правой кнопкой мышки, там есть "добавить библиотеку". Когда необходимо часть блоков переносим в новую библиотеку.
Вот тут собственно и вопрос: я ПИД регулятор сделал диаграммой, в глобальную переменную это не занесёшь, а получить этот блок из другой библиотеки, видимо, нельзя. Мысли: для каждой библиотеки надо "клонировать" блок ПИД регулятора, и затем уж "плодить сущности сверх необходимого"

Евгений Рублев писал(а):Можно. УпроститьЗачем Вам передавать между блоками 96 параметров ? Сделайте блок с меньшим количеством входов/выходов. Неужели Вам для каждого контура регулирования необходимо 96 параметров ?:) Возможно, Вам стоит сделать более универсальный блок и использовать несколько копий этого блока? Ну, или можно попробовать передавать все через массив или структуру.
Да собственно у меня и так всё просто: на каждый регулятор по 6 входов (входной параметр, пуск, задание, точность, и кп с ти) и 2 выхода (управляющий дискрет и динамика). Один технологический объект имеет 12 контуров, поэтому и хотел сделать 10 крупных блоков по 12 контуров в каждом

-
- Сообщения: 465
- Зарегистрирован: 18 ноя 2004, 17:45
- Откуда: Компания ДЭП
- Контактная информация:
ic_ahp писал(а):Евгений Рублев писал(а):В проект "Разработчика" можно добавить библиотек. На названии проекта кликаем правой кнопкой мышки, там есть "добавить библиотеку". Когда необходимо часть блоков переносим в новую библиотеку.
Вот тут собственно и вопрос: я ПИД регулятор сделал диаграммой, в глобальную переменную это не занесёшь, а получить этот блок из другой библиотеки, видимо, нельзя. Мысли: для каждой библиотеки надо "клонировать" блок ПИД регулятора, и затем уж "плодить сущности сверх необходимого"Есть ли другой выход?
Евгений Рублев писал(а):Можно. УпроститьЗачем Вам передавать между блоками 96 параметров ? Сделайте блок с меньшим количеством входов/выходов. Неужели Вам для каждого контура регулирования необходимо 96 параметров ?:) Возможно, Вам стоит сделать более универсальный блок и использовать несколько копий этого блока? Ну, или можно попробовать передавать все через массив или структуру.
Да собственно у меня и так всё просто: на каждый регулятор по 6 входов (входной параметр, пуск, задание, точность, и кп с ти) и 2 выхода (управляющий дискрет и динамика). Один технологический объект имеет 12 контуров, поэтому и хотел сделать 10 крупных блоков по 12 контуров в каждомБуду значит разносить объекты по разным библиотекам, о чём писал чуть выше.
Давайте я взгляну. mail@dep.ru. Может чего подскажу

С уважением
Компания ДЭП
Москва, Голубинская ул., 10
+7 (495) 995-00-12
Компания ДЭП
Москва, Голубинская ул., 10
+7 (495) 995-00-12
Svale писал(а):ic_ahp, Ваш проект со 120 ПИДами реально работает? какое время выполнения программы Вы получили? (если не секрет, что это за чудо-объект?)
Чисто теоретически он может работать. Теперь может. Но только теоретически, так как очень сильно возрастает цикл работы программы контроллера и загрузка его ЦП. Остановился на позиционном регулировании (ошибка регулирования позволяет). Объект не сложный, просто много однотипного оборудования, в котором есть несколько контуров регулирования.