ПИД-регулятор

Общие вопросы по оборудованию и программному обеспечению Компании ДЭП
Аватара пользователя
leon
Сообщения: 2
Зарегистрирован: 03 авг 2005, 07:17
Откуда: Димитровград

Сообщение leon » 28 сен 2005, 14:31

Добрый день! не получается правильно задать вход "СТРУКТУРА ПАРАМЕТРОВ" в блоке ПИД-регулятор в форме приращений. Пробовал воспользоваться блоком создание СТРУКТУРЫ, при проверке выдает ошибку несовпадении типов, подскажите как правильно или вышлете пожалуйста пример блока с ПИД-регулятором на e-mail. спасибо

Тех. поддержка
Сообщения: 465
Зарегистрирован: 18 ноя 2004, 17:45
Откуда: Компания ДЭП
Контактная информация:

Сообщение Тех. поддержка » 29 сен 2005, 13:16

Я Вам выслал пример.
С уважением
Компания ДЭП
Москва, Голубинская ул., 10
+7 (495) 995-00-12

Svale
Сообщения: 62
Зарегистрирован: 23 дек 2004, 11:58
Откуда: Мурманск

Сообщение Svale » 30 сен 2005, 12:31

А как бы и мне пример посмотреть?
Спасибо.

Тех. поддержка
Сообщения: 465
Зарегистрирован: 18 ноя 2004, 17:45
Откуда: Компания ДЭП
Контактная информация:

Сообщение Тех. поддержка » 30 сен 2005, 14:07

Svale писал(а):А как бы и мне пример посмотреть?
Спасибо.


http://www.dep.ru/downloads/pub/examples/PID/PID.rar
С уважением

Компания ДЭП

Москва, Голубинская ул., 10

+7 (495) 995-00-12

Аватара пользователя
leon
Сообщения: 2
Зарегистрирован: 03 авг 2005, 07:17
Откуда: Димитровград

Сообщение leon » 03 окт 2005, 10:53

У меня не заработал пример! проект отрыть не сумел - выдает ошибку, а отдельно блок delta не работает. ПОЧЕМУ? :cry: :?:
Леонид

Тех. поддержка
Сообщения: 465
Зарегистрирован: 18 ноя 2004, 17:45
Откуда: Компания ДЭП
Контактная информация:

Сообщение Тех. поддержка » 04 окт 2005, 11:27

leon писал(а):У меня не заработал пример! проект отрыть не сумел - выдает ошибку, а отдельно блок delta не работает. ПОЧЕМУ? :cry: :?:


Кроме блока необходимо использовать файл глобальных переменных. Структура объявлена как глобальная переменная.
С уважением

Компания ДЭП

Москва, Голубинская ул., 10

+7 (495) 995-00-12

Тех. поддержка
Сообщения: 465
Зарегистрирован: 18 ноя 2004, 17:45
Откуда: Компания ДЭП
Контактная информация:

Сообщение Тех. поддержка » 04 окт 2005, 11:29

Svale писал(а):А как бы и мне пример посмотреть?
Спасибо.


Я обновил компонент. Если у вас тоже были проблемы с открытием проекта, то теперь быть не должно.
С уважением

Компания ДЭП

Москва, Голубинская ул., 10

+7 (495) 995-00-12

Аватара пользователя
Lex
Сообщения: 29
Зарегистрирован: 11 апр 2005, 13:22
Откуда: Электросталь

Сообщение Lex » 15 фев 2006, 11:28

Здравствуйте!
А у меня пример тоже не работает.
То есть компилируется нормально, зашивается в контроллер тоже (WD, D182), а вот управления не выдает.
Почему?

Аватара пользователя
Lex
Сообщения: 29
Зарегистрирован: 11 апр 2005, 13:22
Откуда: Электросталь

Сообщение Lex » 15 фев 2006, 16:41

Добрый день.
С позиционным регулятором тоже непонятно. При сигнале пуск =0 - управление=4, при пуск=1 - управление = 3, от значения никак не зависит.
Может в структуре параметров что-то неправильно задаю?
Заранее благодарю за ответ. :)

ic_ahp
Сообщения: 36
Зарегистрирован: 10 июл 2006, 13:05

Сообщение ic_ahp » 10 июл 2006, 17:45

Добрый день.
Есть задача: осуществлять ПИД-регулирование по входному аналогу, управляя выходным дискретом. Какой из функций "Разработчика" лучше воспользоваться? "ПИД-регулятор в форме приращений"? Тогда без дополнительных "костылей", как я понимаю, не обойтись? Второй вопрос отсюда же: параметры регулятора имеют тип данных "структура", можно ли вынести ряд параметров (кп, ти) в отдельные переменные, чтобы их можно было оперативно менять? Отсюда же третий вопрос: в документации я не встретил ничего про ограничения, накладываемые на проект (может плохо искал), будет ли "нормально" работать контроллер D182, если в проекте будет задействовано 120 ПИД регуляторов? Заранее благодарен :)

Тех. поддержка
Сообщения: 465
Зарегистрирован: 18 ноя 2004, 17:45
Откуда: Компания ДЭП
Контактная информация:

Сообщение Тех. поддержка » 10 июл 2006, 18:30

ic_ahp писал(а):Добрый день.
Есть задача: осуществлять ПИД-регулирование по входному аналогу, управляя выходным дискретом. Какой из функций "Разработчика" лучше воспользоваться? "ПИД-регулятор в форме приращений"? Тогда без дополнительных "костылей", как я понимаю, не обойтись?


Скорее всего, именно "ПИД-регулятор в форме приращений". О каких "костылях" идет речь?

ic_ahp писал(а):Второй вопрос отсюда же: параметры регулятора имеют тип данных "структура", можно ли вынести ряд параметров (кп, ти) в отдельные переменные, чтобы их можно было оперативно менять?


В "Разработчике" есть блок "Элементы структуры по имени". Этим блоком можно получить значение элемента структуры. Также есть блок "Создание структуры по имени". Этим блоком можно заменить элемент существующей структуры.

ic_ahp писал(а):Отсюда же третий вопрос: в документации я не встретил ничего про ограничения, накладываемые на проект (может плохо искал), будет ли "нормально" работать контроллер D182, если в проекте будет задействовано 120 ПИД регуляторов? Заранее благодарен :)


На размер библиотеки есть - 8192 байта. На количество библиотек есть ограничение, но скорее кончится доступное ОЗУ, чем оно будет достигнуто.
"Нормальная" работа определяется "параметрами быстродействия". Исходя из этого, цифра в 120 регуляторов кажется неоправданной.
С уважением

Компания ДЭП

Москва, Голубинская ул., 10

+7 (495) 995-00-12

ic_ahp
Сообщения: 36
Зарегистрирован: 10 июл 2006, 13:05

Сообщение ic_ahp » 11 июл 2006, 10:12

Евгений Рублев писал(а):Скорее всего, именно "ПИД-регулятор в форме приращений". О каких "костылях" идет речь?

ПИД-регулятор в форме приращений по документации имеет два выхода: "больше" и "меньше", а управляющий дискрет один. Конечно, же можно привязываться к, например, только "больше", но опять же на выходе регулятора в дискреты записываются значения не "0" и "1", а "какие-то" целые числа (видимо "вычисления величины управления (в секундах"). Под "костылями" я имел ввиду использование дополнительных функций на выходе регулятора для записи в дискрет именно "0" и "1".
Евгений Рублев писал(а):На размер библиотеки есть - 8192 байта. На количество библиотек есть ограничение, но скорее кончится доступное ОЗУ, чем оно будет достигнуто.
"Нормальная" работа определяется "параметрами быстродействия". Исходя из этого, цифра в 120 регуляторов кажется неоправданной.

То есть Вы предполагаете, что контроллер не справится с такими вычислениями?

Тех. поддержка
Сообщения: 465
Зарегистрирован: 18 ноя 2004, 17:45
Откуда: Компания ДЭП
Контактная информация:

Сообщение Тех. поддержка » 13 июл 2006, 11:12

ic_ahp писал(а):
Евгений Рублев писал(а):Скорее всего, именно "ПИД-регулятор в форме приращений". О каких "костылях" идет речь?

ПИД-регулятор в форме приращений по документации имеет два выхода: "больше" и "меньше", а управляющий дискрет один. Конечно, же можно привязываться к, например, только "больше", но опять же на выходе регулятора в дискреты записываются значения не "0" и "1", а "какие-то" целые числа (видимо "вычисления величины управления (в секундах"). Под "костылями" я имел ввиду использование дополнительных функций на выходе регулятора для записи в дискрет именно "0" и "1".


Целые числа это длина импульса на включение. Если в дискрет писать число больше 3 с динамикой, то это длина импульса на включение.

ic_ahp писал(а):
Евгений Рублев писал(а):На размер библиотеки есть - 8192 байта. На количество библиотек есть ограничение, но скорее кончится доступное ОЗУ, чем оно будет достигнуто.
"Нормальная" работа определяется "параметрами быстродействия". Исходя из этого, цифра в 120 регуляторов кажется неоправданной.

То есть Вы предполагаете, что контроллер не справится с такими вычислениями?


Возможно справится. Вопрос во времени потраченном на вычисления.
С уважением

Компания ДЭП

Москва, Голубинская ул., 10

+7 (495) 995-00-12

Кирилл
Сообщения: 6
Зарегистрирован: 14 июл 2006, 15:33

Сообщение Кирилл » 14 июл 2006, 15:43

А не подскажите каким образом задавать параметры в структуре через конфигуратор?

Тех. поддержка
Сообщения: 465
Зарегистрирован: 18 ноя 2004, 17:45
Откуда: Компания ДЭП
Контактная информация:

Сообщение Тех. поддержка » 14 июл 2006, 16:28

Кирилл писал(а):А не подскажите каким образом задавать параметры в структуре через конфигуратор?


В "Разработчике" есть блок "Создание структуры по имени". Этим блоком можно заменить элемент существующей структуры.
Можно завести глобальные переменные, сказать что они "конфигурационные". Далее из них читать соответствующие значения и менять значения по умолчанию.

Также в "Разработчике" есть блок "Элементы структуры по имени". Этим блоком можно получить значение элемента структуры. Далее полученное значение можно записать в "Базу текущих значений" (в аналог или дискрет). Другим блоком прочитать из "Базы текущих значений" и заменить в структуре (см. выше). При такой реализации надо учитывать, что аналоги и дискреты могут быть "неопределенными" (стоит бит undef). В этом случае переписывать старое значение в структуре нельзя.
С уважением

Компания ДЭП

Москва, Голубинская ул., 10

+7 (495) 995-00-12

ic_ahp
Сообщения: 36
Зарегистрирован: 10 июл 2006, 13:05

Сообщение ic_ahp » 15 июл 2006, 14:28

Евгений Рублев писал(а):На размер библиотеки есть - 8192 байта. На количество библиотек есть ограничение, но скорее кончится доступное ОЗУ, чем оно будет достигнуто.

Спасибо, разобрался с регулятором, но осталось несколько вопросов: на данный момент сделал 12 регуляторов, и размер библиотеки, который показывается в конфигураторе в секции "файлы для загрузки" - Main 5387 и Ini 3096 (байтов?). Прогрессия роста размера впечатляет, хватит ли 8192 байта на всё....
И второе: я хотел бы ещё несколько упростить блоки в "разработчике" и сделать шаблон на 84 входа и 12 выходов, но таких коннекторов в разработчике нету. Можно ли как-то выйти из этой ситуации?
С "костылями" тоже разобрался: не записывал динамику в переменную, поэтому и не было результата. Спасибо :)

Тех. поддержка
Сообщения: 465
Зарегистрирован: 18 ноя 2004, 17:45
Откуда: Компания ДЭП
Контактная информация:

Сообщение Тех. поддержка » 17 июл 2006, 11:35

ic_ahp писал(а):
Евгений Рублев писал(а):На размер библиотеки есть - 8192 байта. На количество библиотек есть ограничение, но скорее кончится доступное ОЗУ, чем оно будет достигнуто.

Спасибо, разобрался с регулятором, но осталось несколько вопросов: на данный момент сделал 12 регуляторов, и размер библиотеки, который показывается в конфигураторе в секции "файлы для загрузки" - Main 5387 и Ini 3096 (байтов?). Прогрессия роста размера впечатляет, хватит ли 8192 байта на всё....


В проект "Разработчика" можно добавить библиотек. На названии проекта кликаем правой кнопкой мышки, там есть "добавить библиотеку". Когда необходимо часть блоков переносим в новую библиотеку.

ic_ahp писал(а):И второе: я хотел бы ещё несколько упростить блоки в "разработчике" и сделать шаблон на 84 входа и 12 выходов, но таких коннекторов в разработчике нету. Можно ли как-то выйти из этой ситуации?
С "костылями" тоже разобрался: не записывал динамику в переменную, поэтому и не было результата. Спасибо :)

Можно. Упростить :) Зачем Вам передавать между блоками 96 параметров ? Сделайте блок с меньшим количеством входов/выходов. Неужели Вам для каждого контура регулирования необходимо 96 параметров ?:) Возможно, Вам стоит сделать более универсальный блок и использовать несколько копий этого блока? Ну, или можно попробовать передавать все через массив или структуру.
С уважением

Компания ДЭП

Москва, Голубинская ул., 10

+7 (495) 995-00-12

Кирилл
Сообщения: 6
Зарегистрирован: 14 июл 2006, 15:33

Сообщение Кирилл » 17 июл 2006, 16:14

Евгений Рублев писал(а):В "Разработчике" есть блок "Создание структуры по имени". Этим блоком можно заменить элемент существующей структуры.
Можно завести глобальные переменные, сказать что они "конфигурационные". Далее из них читать соответствующие значения и менять значения по умолчанию.

При попытке соорудить такую конструкцию "Разработчик" выдает: "Ошибка : Обнаружен цикл"

В чем может быть причина?

Тех. поддержка
Сообщения: 465
Зарегистрирован: 18 ноя 2004, 17:45
Откуда: Компания ДЭП
Контактная информация:

Сообщение Тех. поддержка » 17 июл 2006, 16:25

Кирилл писал(а):
Евгений Рублев писал(а):В "Разработчике" есть блок "Создание структуры по имени". Этим блоком можно заменить элемент существующей структуры.
Можно завести глобальные переменные, сказать что они "конфигурационные". Далее из них читать соответствующие значения и менять значения по умолчанию.

При попытке соорудить такую конструкцию "Разработчик" выдает: "Ошибка : Обнаружен цикл"

В чем может быть причина?


А новое значение переменной берется из самой переменной (созданной на "Панели") или через ссылку ? Ссылка на чтение ?
С уважением

Компания ДЭП

Москва, Голубинская ул., 10

+7 (495) 995-00-12

ic_ahp
Сообщения: 36
Зарегистрирован: 10 июл 2006, 13:05

Сообщение ic_ahp » 17 июл 2006, 18:06

Евгений Рублев писал(а):В проект "Разработчика" можно добавить библиотек. На названии проекта кликаем правой кнопкой мышки, там есть "добавить библиотеку". Когда необходимо часть блоков переносим в новую библиотеку.

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

Да собственно у меня и так всё просто: на каждый регулятор по 6 входов (входной параметр, пуск, задание, точность, и кп с ти) и 2 выхода (управляющий дискрет и динамика). Один технологический объект имеет 12 контуров, поэтому и хотел сделать 10 крупных блоков по 12 контуров в каждом :) Буду значит разносить объекты по разным библиотекам, о чём писал чуть выше.

Тех. поддержка
Сообщения: 465
Зарегистрирован: 18 ноя 2004, 17:45
Откуда: Компания ДЭП
Контактная информация:

Сообщение Тех. поддержка » 17 июл 2006, 19:09

ic_ahp писал(а):
Евгений Рублев писал(а):В проект "Разработчика" можно добавить библиотек. На названии проекта кликаем правой кнопкой мышки, там есть "добавить библиотеку". Когда необходимо часть блоков переносим в новую библиотеку.

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

Да собственно у меня и так всё просто: на каждый регулятор по 6 входов (входной параметр, пуск, задание, точность, и кп с ти) и 2 выхода (управляющий дискрет и динамика). Один технологический объект имеет 12 контуров, поэтому и хотел сделать 10 крупных блоков по 12 контуров в каждом :) Буду значит разносить объекты по разным библиотекам, о чём писал чуть выше.


Давайте я взгляну. mail@dep.ru. Может чего подскажу :)
С уважением

Компания ДЭП

Москва, Голубинская ул., 10

+7 (495) 995-00-12

Кирилл
Сообщения: 6
Зарегистрирован: 14 июл 2006, 15:33

Сообщение Кирилл » 18 июл 2006, 07:57

Евгений Рублев писал(а):А новое значение переменной берется из самой переменной (созданной на "Панели") или через ссылку ? Ссылка на чтение ?


Вообщем разобрался, правдо не понятно как :)
Создал новый проект сделал все как в предыдущем и все заработало :D

Svale
Сообщения: 62
Зарегистрирован: 23 дек 2004, 11:58
Откуда: Мурманск

Сообщение Svale » 22 дек 2006, 08:18

ic_ahp, Ваш проект со 120 ПИДами реально работает? какое время выполнения программы Вы получили? (если не секрет, что это за чудо-объект?)

ic_ahp
Сообщения: 36
Зарегистрирован: 10 июл 2006, 13:05

Сообщение ic_ahp » 28 дек 2006, 20:04

Svale писал(а):ic_ahp, Ваш проект со 120 ПИДами реально работает? какое время выполнения программы Вы получили? (если не секрет, что это за чудо-объект?)

Чисто теоретически он может работать. Теперь может. Но только теоретически, так как очень сильно возрастает цикл работы программы контроллера и загрузка его ЦП. Остановился на позиционном регулировании (ошибка регулирования позволяет). Объект не сложный, просто много однотипного оборудования, в котором есть несколько контуров регулирования.