Страница 1 из 1
Добавлено: 28 сен 2005, 14:31
leon
Добрый день! не получается правильно задать вход "СТРУКТУРА ПАРАМЕТРОВ" в блоке ПИД-регулятор в форме приращений. Пробовал воспользоваться блоком создание СТРУКТУРЫ, при проверке выдает ошибку несовпадении типов, подскажите как правильно или вышлете пожалуйста пример блока с ПИД-регулятором на e-mail. спасибо
Добавлено: 29 сен 2005, 13:16
Тех. поддержка
Я Вам выслал пример.
Добавлено: 30 сен 2005, 12:31
Svale
А как бы и мне пример посмотреть?
Спасибо.
Добавлено: 30 сен 2005, 14:07
Тех. поддержка
Svale писал(а):А как бы и мне пример посмотреть?
Спасибо.
http://www.dep.ru/downloads/pub/examples/PID/PID.rar
Добавлено: 03 окт 2005, 10:53
leon
У меня не заработал пример! проект отрыть не сумел - выдает ошибку, а отдельно блок delta не работает. ПОЧЕМУ?

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

Кроме блока необходимо использовать файл глобальных переменных. Структура объявлена как глобальная переменная.
Добавлено: 04 окт 2005, 11:29
Тех. поддержка
Svale писал(а):А как бы и мне пример посмотреть?
Спасибо.
Я обновил компонент. Если у вас тоже были проблемы с открытием проекта, то теперь быть не должно.
Добавлено: 15 фев 2006, 11:28
Lex
Здравствуйте!
А у меня пример тоже не работает.
То есть компилируется нормально, зашивается в контроллер тоже (WD, D182), а вот управления не выдает.
Почему?
Добавлено: 15 фев 2006, 16:41
Lex
Добрый день.
С позиционным регулятором тоже непонятно. При сигнале пуск =0 - управление=4, при пуск=1 - управление = 3, от значения никак не зависит.
Может в структуре параметров что-то неправильно задаю?
Заранее благодарю за ответ.

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

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

На размер библиотеки есть - 8192 байта. На количество библиотек есть ограничение, но скорее кончится доступное ОЗУ, чем оно будет достигнуто.
"Нормальная" работа определяется "параметрами быстродействия". Исходя из этого, цифра в 120 регуляторов кажется неоправданной.
Добавлено: 11 июл 2006, 10:12
ic_ahp
Евгений Рублев писал(а):Скорее всего, именно "ПИД-регулятор в форме приращений". О каких "костылях" идет речь?
ПИД-регулятор в форме приращений по документации имеет два выхода: "больше" и "меньше", а управляющий дискрет один. Конечно, же можно привязываться к, например, только "больше", но опять же на выходе регулятора в дискреты записываются значения не "0" и "1", а "какие-то" целые числа (видимо "вычисления величины управления (в секундах"). Под "костылями" я имел ввиду использование дополнительных функций на выходе регулятора для записи в дискрет именно "0" и "1".
Евгений Рублев писал(а):На размер библиотеки есть - 8192 байта. На количество библиотек есть ограничение, но скорее кончится доступное ОЗУ, чем оно будет достигнуто.
"Нормальная" работа определяется "параметрами быстродействия". Исходя из этого, цифра в 120 регуляторов кажется неоправданной.
То есть Вы предполагаете, что контроллер не справится с такими вычислениями?
Добавлено: 13 июл 2006, 11:12
Тех. поддержка
ic_ahp писал(а):Евгений Рублев писал(а):Скорее всего, именно "ПИД-регулятор в форме приращений". О каких "костылях" идет речь?
ПИД-регулятор в форме приращений по документации имеет два выхода: "больше" и "меньше", а управляющий дискрет один. Конечно, же можно привязываться к, например, только "больше", но опять же на выходе регулятора в дискреты записываются значения не "0" и "1", а "какие-то" целые числа (видимо "вычисления величины управления (в секундах"). Под "костылями" я имел ввиду использование дополнительных функций на выходе регулятора для записи в дискрет именно "0" и "1".
Целые числа это длина импульса на включение. Если в дискрет писать число больше 3 с динамикой, то это длина импульса на включение.
ic_ahp писал(а):Евгений Рублев писал(а):На размер библиотеки есть - 8192 байта. На количество библиотек есть ограничение, но скорее кончится доступное ОЗУ, чем оно будет достигнуто.
"Нормальная" работа определяется "параметрами быстродействия". Исходя из этого, цифра в 120 регуляторов кажется неоправданной.
То есть Вы предполагаете, что контроллер не справится с такими вычислениями?
Возможно справится. Вопрос во времени потраченном на вычисления.
Добавлено: 14 июл 2006, 15:43
Кирилл
А не подскажите каким образом задавать параметры в структуре через конфигуратор?
Добавлено: 14 июл 2006, 16:28
Тех. поддержка
Кирилл писал(а):А не подскажите каким образом задавать параметры в структуре через конфигуратор?
В "Разработчике" есть блок "Создание структуры по имени". Этим блоком можно заменить элемент существующей структуры.
Можно завести глобальные переменные, сказать что они "конфигурационные". Далее из них читать соответствующие значения и менять значения по умолчанию.
Также в "Разработчике" есть блок "Элементы структуры по имени". Этим блоком можно получить значение элемента структуры. Далее полученное значение можно записать в "Базу текущих значений" (в аналог или дискрет). Другим блоком прочитать из "Базы текущих значений" и заменить в структуре (см. выше). При такой реализации надо учитывать, что аналоги и дискреты могут быть "неопределенными" (стоит бит undef). В этом случае переписывать старое значение в структуре нельзя.
Добавлено: 15 июл 2006, 14:28
ic_ahp
Евгений Рублев писал(а):На размер библиотеки есть - 8192 байта. На количество библиотек есть ограничение, но скорее кончится доступное ОЗУ, чем оно будет достигнуто.
Спасибо, разобрался с регулятором, но осталось несколько вопросов: на данный момент сделал 12 регуляторов, и размер библиотеки, который показывается в конфигураторе в секции "файлы для загрузки" - Main 5387 и Ini 3096 (байтов?). Прогрессия роста размера впечатляет, хватит ли 8192 байта на всё....
И второе: я хотел бы ещё несколько упростить блоки в "разработчике" и сделать шаблон на 84 входа и 12 выходов, но таких коннекторов в разработчике нету. Можно ли как-то выйти из этой ситуации?
С "костылями" тоже разобрался: не записывал динамику в переменную, поэтому и не было результата. Спасибо

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

Можно. Упростить

Зачем Вам передавать между блоками 96 параметров ? Сделайте блок с меньшим количеством входов/выходов. Неужели Вам для каждого контура регулирования необходимо 96 параметров ?:) Возможно, Вам стоит сделать более универсальный блок и использовать несколько копий этого блока? Ну, или можно попробовать передавать все через массив или структуру.
Добавлено: 17 июл 2006, 16:14
Кирилл
Евгений Рублев писал(а):В "Разработчике" есть блок "Создание структуры по имени". Этим блоком можно заменить элемент существующей структуры.
Можно завести глобальные переменные, сказать что они "конфигурационные". Далее из них читать соответствующие значения и менять значения по умолчанию.
При попытке соорудить такую конструкцию "Разработчик" выдает: "Ошибка : Обнаружен цикл"
В чем может быть причина?
Добавлено: 17 июл 2006, 16:25
Тех. поддержка
Кирилл писал(а):Евгений Рублев писал(а):В "Разработчике" есть блок "Создание структуры по имени". Этим блоком можно заменить элемент существующей структуры.
Можно завести глобальные переменные, сказать что они "конфигурационные". Далее из них читать соответствующие значения и менять значения по умолчанию.
При попытке соорудить такую конструкцию "Разработчик" выдает: "Ошибка : Обнаружен цикл"
В чем может быть причина?
А новое значение переменной берется из самой переменной (созданной на "Панели") или через ссылку ? Ссылка на чтение ?
Добавлено: 17 июл 2006, 18:06
ic_ahp
Евгений Рублев писал(а):В проект "Разработчика" можно добавить библиотек. На названии проекта кликаем правой кнопкой мышки, там есть "добавить библиотеку". Когда необходимо часть блоков переносим в новую библиотеку.
Вот тут собственно и вопрос: я ПИД регулятор сделал диаграммой, в глобальную переменную это не занесёшь, а получить этот блок из другой библиотеки, видимо, нельзя. Мысли: для каждой библиотеки надо "клонировать" блок ПИД регулятора, и затем уж "плодить сущности сверх необходимого"

Есть ли другой выход?
Евгений Рублев писал(а):Можно. Упростить

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

Буду значит разносить объекты по разным библиотекам, о чём писал чуть выше.
Добавлено: 17 июл 2006, 19:09
Тех. поддержка
ic_ahp писал(а):Евгений Рублев писал(а):В проект "Разработчика" можно добавить библиотек. На названии проекта кликаем правой кнопкой мышки, там есть "добавить библиотеку". Когда необходимо часть блоков переносим в новую библиотеку.
Вот тут собственно и вопрос: я ПИД регулятор сделал диаграммой, в глобальную переменную это не занесёшь, а получить этот блок из другой библиотеки, видимо, нельзя. Мысли: для каждой библиотеки надо "клонировать" блок ПИД регулятора, и затем уж "плодить сущности сверх необходимого"

Есть ли другой выход?
Евгений Рублев писал(а):Можно. Упростить

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

Буду значит разносить объекты по разным библиотекам, о чём писал чуть выше.
Давайте я взгляну.
mail@dep.ru. Может чего подскажу

Добавлено: 18 июл 2006, 07:57
Кирилл
Евгений Рублев писал(а):А новое значение переменной берется из самой переменной (созданной на "Панели") или через ссылку ? Ссылка на чтение ?
Вообщем разобрался, правдо не понятно как
Создал новый проект сделал все как в предыдущем и все заработало

Добавлено: 22 дек 2006, 08:18
Svale
ic_ahp, Ваш проект со 120 ПИДами реально работает? какое время выполнения программы Вы получили? (если не секрет, что это за чудо-объект?)
Добавлено: 28 дек 2006, 20:04
ic_ahp
Svale писал(а):ic_ahp, Ваш проект со 120 ПИДами реально работает? какое время выполнения программы Вы получили? (если не секрет, что это за чудо-объект?)
Чисто теоретически он может работать. Теперь может. Но только теоретически, так как очень сильно возрастает цикл работы программы контроллера и загрузка его ЦП. Остановился на позиционном регулировании (ошибка регулирования позволяет). Объект не сложный, просто много однотипного оборудования, в котором есть несколько контуров регулирования.