Request: пример с стандартным ПИД-регулятором
-
- Posts: 202
- Joined: Wed Mar 19, 2008 1:12 pm
- Location: Ukraine
Request: пример с стандартным ПИД-регулятором
Кинте ссылку на пример с стандартным ПИД-регулятором, плз)
Искал, и на форуме толком нет ничего, а некоторые ссылки вообще не работают ((
Искал, и на форуме толком нет ничего, а некоторые ссылки вообще не работают ((
-
- Posts: 797
- Joined: Tue Aug 21, 2007 7:05 am
Re: Request: пример с стандартным ПИД-регулятором
viewtopic.php?f=9&t=10321 , viewtopic.php?f=9&t=11293 , viewtopic.php?f=9&t=8169
это тока в этой ветке.если искать в других по ветках на английском еще можно найти тока надо захотеть.
а так проще всего не упираясь написать и сидеть ждать -пусть другие ищут.
тех кто пишет тебе после моих ответов и не находящих ничего пересылай мне .ткну носом ленивый народец.опять же есть сайт и ссылки с примерами он там смотрел ли думаю нет.
это тока в этой ветке.если искать в других по ветках на английском еще можно найти тока надо захотеть.
а так проще всего не упираясь написать и сидеть ждать -пусть другие ищут.
тех кто пишет тебе после моих ответов и не находящих ничего пересылай мне .ткну носом ленивый народец.опять же есть сайт и ссылки с примерами он там смотрел ли думаю нет.
-
- Posts: 202
- Joined: Wed Mar 19, 2008 1:12 pm
- Location: Ukraine
Re: Request: пример с стандартным ПИД-регулятором
Эти все ссылки находил и раньше, но там теория, а мну интересует стандартный пид регулятор - там масса параметров, многие понятны так как с теорией регулирования знаком. Интерисует минимальный набор параметров которые нужны для работы регулятора. Понял, что блок регулятора надо вызывать в ОВ85 напр. или в друм в зависимости от необходимомого периода опроса - а дальше??
Какую входную величину лучше подавать - реал или в формате переферии и т.д.
Какую входную величину лучше подавать - реал или в формате переферии и т.д.
-
- Posts: 797
- Joined: Tue Aug 21, 2007 7:05 am
Re: Request: пример с стандартным ПИД-регулятором
там на одной из ссылок есть линк на сайт komatic http://www.plc4good.org.ua/view_post.php?id=97 (это как пример).если поизучаешь сайт то и пример найдешь.ну и последнее пробуй сам писать и пытайся настраивать ПИД .ну все же есть на сайте достаточно включить мозги и напрячься.сходи на форум официальный сименса там при прочтении постов многому можно научится.есть еще такой сайт http://s7-facility.blogspot.com/ на нем тоже можно подчерпнуть много всего.ну ленишься же.скажи что я не прав.меня еще и поимели админы.кто хочет развиваться найдет способ.другое дело если б было видно что делал усилия и ничего не получается а так лень твоя виновата.звиняйте если слишком резко но на правду не обижаются.
-
- Posts: 501
- Joined: Tue Jun 27, 2006 5:52 am
- Location: Russia
Re: Request: пример с стандартным ПИД-регулятором
1) Регулятор надо вызывать в двух организационных блоках:a_gricaj wrote:Интересует минимальный набор параметров которые нужны для работы регулятора. Понял, что блок регулятора надо вызывать в ОВ85 напр. или в друм в зависимости от необходимомого периода опроса - а дальше??
Какую входную величину лучше подавать - реал или в формате переферии и т.д.
а) в ОВ100 вызвать со своим экземплярным блоком данных, можно не задавать входы/выходы только параметр "COM_RST" установить в единичку. Это нужно чтобы сбросить промежуточные расчеты в DB, после запуска ЦПУ, чтобы регулятор начал работать с начальными параметрами.
б) в ОВ35, которому можно задать время периодичности вызова в HWConfig, в настройках ЦПУ, в ОВ35 и выполняется конфигурирование всех входов/выходов.
2) Минимальные данные? А какой регулятор ты выбрал для работы? В общем случае:
Входа:
а) "COM_RST" в ноль
б) "MAN_ON" включить ручной режим управления
в) "MAN" задать величину открытия/закрытия в ручном режиме управления
г)"CYCLE" период расчет данных в функциональном блоке
д)"CYCLE_P" период вызова FB, обычно равный вызову ОВ35
е) "SP_INT" величина уставки
ж)"PV_IN" или "PV_PER",тут уж выбирай как удобней. Я обычно конвертирую в контроллере все датчики сразу и работаю REALовской величиной, соответственно вход "PV_IN"
Далее, я не знаю какой тип регулятора у тебя
Выхода:
"LMN" либо "LMN_PER" опять же дело вкуса. Для "LMN" реаловскую величину нужно будет конвертнуть через FC106
Обычно вся сименсовская документация по ПИДам подкреплена примерами с моделью, т.е. можно "вживую" погонять на симуляторе. В доке написано, как называется пример, обычно он ставится вместе со Step7.
P.S. "Старый", хорош бурдеть! В отпуск надо иногда ходить!
-
- Posts: 797
- Joined: Tue Aug 21, 2007 7:05 am
Re: Request: пример с стандартным ПИД-регулятором
все что CHANT объяснил, есть тут с примерами http://old.automation-drives.ru/as/prod ... %CE&l3=doc надо тока сделать над собой усилие ну или захотеть в чем либо разобраться.сименс наверное одна из лучших контор, если не самая лучшая по техподдержке.официальных доков по базовым вещам море в том числе на русском .читай не хочу.смотреть тут страничку что привел надо Internet Explorer а не другими модными браузерами.
P.S.за советы спасибо
P.S.за советы спасибо
-
- Posts: 202
- Joined: Wed Mar 19, 2008 1:12 pm
- Location: Ukraine
Re: Request: пример с стандартным ПИД-регулятором
Спасибо Вам CHANt за помощь - всегда помогаете.
Но пока не получается:
Создал я в контроллере FB41-CONT_C (ПИД регулятор) и его экземплярный блок DB41, есть также ОВ1, ОВ35, ОВ86, ОВ88, ОВ100, ОВ120 и ОВ121
В ОВ1 вставляю FB41 (без задания параметров) - заливаю в контроллер ошибки нет, открываю ОВ35 и прописываю вызов FB41 на STL:
И появляется вот такая ошибка в диагностическом буфере:
Что я неправильно делаю??????
Но пока не получается:
Создал я в контроллере FB41-CONT_C (ПИД регулятор) и его экземплярный блок DB41, есть также ОВ1, ОВ35, ОВ86, ОВ88, ОВ100, ОВ120 и ОВ121
В ОВ1 вставляю FB41 (без задания параметров) - заливаю в контроллер ошибки нет, открываю ОВ35 и прописываю вызов FB41 на STL:
Code: Select all
UC FB 41
Diagnostic buffer of module CPU 416-2 DP
Show
Order No./ Description Component Version
6ES7 416-2XK04-0AB0 Hardware 2
- - - Firmware V 4.0.3
Rack: 0
Slot: 3
Serial number: SVPT3373834
Event 1 of 110: Event ID 16# 2523
Area length error when writing
Instance DB, word access, Access address: 76
FB number: 41
Module address: 1412
Requested OB: Programming error OB (OB121)
Priority class: 12
Internal error, Incoming event
01:44:52.001 AM 01/01/1994
Event 2 of 110: Event ID 16# 2523
Area length error when writing
Instance DB, double-word access Access address: 72
FB number: 41
Module address: 1350
Requested OB: Programming error OB (OB121)
Priority class: 12
Internal error, Incoming event
01:44:52.001 AM 01/01/1994
Event 3 of 110: Event ID 16# 2522
Area length error when reading
Instance DB, double-word access Access address: 60
FB number: 41
Module address: 1340
Requested OB: Programming error OB (OB121)
Priority class: 12
Internal error, Incoming event
01:44:52.001 AM 01/01/1994
Event 4 of 110: Event ID 16# 2522
Area length error when reading
Instance DB, double-word access Access address: 56
FB number: 41
Module address: 1334
Requested OB: Programming error OB (OB121)
Priority class: 12
Internal error, Incoming event
01:44:52.001 AM 01/01/1994
6ES7 416-2XK04-0AB0 Hardware 2
- - - Firmware V 4.0.3
Rack: 0
Slot: 3
Serial number: SVPT3373834
Event 1 of 110: Event ID 16# 2523
Area length error when writing
Instance DB, word access, Access address: 76
FB number: 41
Module address: 1412
Requested OB: Programming error OB (OB121)
Priority class: 12
Internal error, Incoming event
01:44:52.001 AM 01/01/1994
Event 2 of 110: Event ID 16# 2523
Area length error when writing
Instance DB, double-word access Access address: 72
FB number: 41
Module address: 1350
Requested OB: Programming error OB (OB121)
Priority class: 12
Internal error, Incoming event
01:44:52.001 AM 01/01/1994
Event 3 of 110: Event ID 16# 2522
Area length error when reading
Instance DB, double-word access Access address: 60
FB number: 41
Module address: 1340
Requested OB: Programming error OB (OB121)
Priority class: 12
Internal error, Incoming event
01:44:52.001 AM 01/01/1994
Event 4 of 110: Event ID 16# 2522
Area length error when reading
Instance DB, double-word access Access address: 56
FB number: 41
Module address: 1334
Requested OB: Programming error OB (OB121)
Priority class: 12
Internal error, Incoming event
01:44:52.001 AM 01/01/1994
-
- Posts: 501
- Joined: Tue Jun 27, 2006 5:52 am
- Location: Russia
Re: Request: пример с стандартным ПИД-регулятором
Не толкай регулятор в ОВ1! На то он и ОВ1 что у него самый низкий приоритет. Т.е. ОВ1 приостанавливает выполнение, когда другие ОВ вызываются. На это в документации на любой регулятор и указывают. Либо тогда специальные меры принимай, чтобы Cycle_P содержал реальные данные о времени выполнения ОВ1. Лучше вставь в ОВ35.
-
- Posts: 202
- Joined: Wed Mar 19, 2008 1:12 pm
- Location: Ukraine
Re: Request: пример с стандартным ПИД-регулятором
Все работает (регулирование частоты привода через частотник и аналоговый датчик уровня) но есть програмная ошибка (горит INTF)
и ошибка похожая на ту, что раньше была.
То-есть лучше регулятор с параметрами запихнуть в функцию или в ОВ35 вставить???
А в библиотечном FB41 нет параметра Cycle_P. как тут поступать?
Запихнул регулятор в функцию - ошибка осталась(По аналогии из прогой которая работает у меня на заводе- хочу разобраться), где я могу быть не прав???
и ошибка похожая на ту, что раньше была.
То-есть лучше регулятор с параметрами запихнуть в функцию или в ОВ35 вставить???
А в библиотечном FB41 нет параметра Cycle_P. как тут поступать?
Запихнул регулятор в функцию - ошибка осталась(По аналогии из прогой которая работает у меня на заводе- хочу разобраться), где я могу быть не прав???
-
- Site Admin
- Posts: 1387
- Joined: Sat Aug 13, 2005 6:15 am
Re: Request: пример с стандартным ПИД-регулятором
ааа ,сори,увидел что раньше выдал буфер
тогда сделай так:
сотри дб из списка блоков
открой там где вызываешь пид
сотри вызов дб
впиши снова
подтверди его создание
сохрани
загрузи в плк дб
вот пример
тогда сделай так:
сотри дб из списка блоков
открой там где вызываешь пид
сотри вызов дб
впиши снова
подтверди его создание
сохрани
загрузи в плк дб
только если сама функция вызывается из об35,тогда будет работать правильноa_gricaj wrote:По аналогии из прогой которая работает у меня на заводе- хочу разобраться
вот пример
-
- Posts: 501
- Joined: Tue Jun 27, 2006 5:52 am
- Location: Russia
Re: Request: пример с стандартным ПИД-регулятором
Не знаю, почему у тебя ЦПУ ругается на экземплярный блок данных, может что-то с ним делал? Попробуй удалить и создать снова. (Собственно, Sania уже подсказал)
Pid_fb41.zip - сконфигурировал, грузится в симулятор без проблем. Можешь посмотреть - включил П+И+Д, сконфигурировал ручное управления, задал уставку, задал датчик, определил в каком диапазоне будет лежать выход регулятора (0..100%), задал цикл расчета. в ОВ100 тоже показал как сбрасываются статические переменные.
Pid_fb41.zip - сконфигурировал, грузится в симулятор без проблем. Можешь посмотреть - включил П+И+Д, сконфигурировал ручное управления, задал уставку, задал датчик, определил в каком диапазоне будет лежать выход регулятора (0..100%), задал цикл расчета. в ОВ100 тоже показал как сбрасываются статические переменные.
-
- Posts: 149
- Joined: Sun Dec 20, 2009 1:30 pm
- Location: Russia
Re: Request: пример с стандартным ПИД-регулятором
А про построение каскадных регуляторов на базе FB41 есть какая нибудь информация? Примеры? Все что сумел найти в документации - это краткое упоминание о возможности построения сложных регуляторов... ничего конкретного...
Best regards!
Best regards!
-
- Site Admin
- Posts: 1387
- Joined: Sat Aug 13, 2005 6:15 am
-
- Posts: 202
- Joined: Wed Mar 19, 2008 1:12 pm
- Location: Ukraine
Re: Request: пример с стандартным ПИД-регулятором
Пока не получается - все равно висит эта програмная ошибка
Может у кого будет время, посмотрите плз мою програму (ткните носом - где я партачу), ссылка - http://webfile.ru/5434809
а пока попробую пример от CHANt
Может у кого будет время, посмотрите плз мою програму (ткните носом - где я партачу), ссылка - http://webfile.ru/5434809
а пока попробую пример от CHANt
-
- Site Admin
- Posts: 1387
- Joined: Sat Aug 13, 2005 6:15 am
Re: Request: пример с стандартным ПИД-регулятором
блин так зачем его 2 раза вызывать? в об1 и об35,дак ещё и без DI!
вызов фс1 перенеси в об35,а то что там сотри
P.S.возьми-ка ты лучше проект CHANt`a и не парь мозги
P.S.S. конструкция UC FB 41 подразумевает что перед ней ты задал ВСЕ необходимые ей данные
т.е. перед этим должно быть как минимум OPN DI 41
вызов фс1 перенеси в об35,а то что там сотри
P.S.возьми-ка ты лучше проект CHANt`a и не парь мозги
P.S.S. конструкция UC FB 41 подразумевает что перед ней ты задал ВСЕ необходимые ей данные
т.е. перед этим должно быть как минимум OPN DI 41
-
- Posts: 501
- Joined: Tue Jun 27, 2006 5:52 am
- Location: Russia
Re: Request: пример с стандартным ПИД-регулятором
Можно еще добавить:
1) Зачем открывать DB41 (это экземплярный DB) командой "OPN"? Не надо. Открываются DB в теле какой нибудь функции, чтобы работать с прямой адресацией, типа: DBW2. Если его не открывать, то вид адресации будет: DB41.DBW2. А ты открыл DB и тут же обращаешься к ней по полной адресации (это я про ОВ1, раздел с частотником).
2) Отключи Д составляющую. Для уровня она тебе не нужна. Ты ее физический смысл понимаешь?
3) переключение на ручной режим (MAN_ON) и задание уровня открытия (MAN) вытащи на панель. Будет удобно тестировать регулятор и если надо отключать.
4) Обрати внимание на значения границ выхода LMN, это параметры LMN_HLM=100.0 и LMN_LLM=0.0. Если их сделать соответственно LMN_HLM=85.0 и LMN_LLM=5.0 ТО регулятор на выходе даст не более 85 условных единиц и не менее 5 условных единиц. Удобно очень оставлять некий пропуск по нижнему порогу (с точки зрения ТБ), так как регулятор не является отсекающим устройством. Или например, у тебя управляющий сигнал не 0..10В, а 2..10В.
5) LMN... Вообще есть стандартная FC106, аналогичная FC105 тобой использованная. Но, если у тебя управляющий сигнал в полном диапазоне: 0..10В, 4..20мА, 0..20мА, то тут лучше применить наверное LMN_PER, так как выход у тебя с контроллера идет. Т.е. сразу PQW518 задать.
В общем, не забывай ткнуть в FB41 мышкой и нажать F1
1) Зачем открывать DB41 (это экземплярный DB) командой "OPN"? Не надо. Открываются DB в теле какой нибудь функции, чтобы работать с прямой адресацией, типа: DBW2. Если его не открывать, то вид адресации будет: DB41.DBW2. А ты открыл DB и тут же обращаешься к ней по полной адресации (это я про ОВ1, раздел с частотником).
2) Отключи Д составляющую. Для уровня она тебе не нужна. Ты ее физический смысл понимаешь?
3) переключение на ручной режим (MAN_ON) и задание уровня открытия (MAN) вытащи на панель. Будет удобно тестировать регулятор и если надо отключать.
4) Обрати внимание на значения границ выхода LMN, это параметры LMN_HLM=100.0 и LMN_LLM=0.0. Если их сделать соответственно LMN_HLM=85.0 и LMN_LLM=5.0 ТО регулятор на выходе даст не более 85 условных единиц и не менее 5 условных единиц. Удобно очень оставлять некий пропуск по нижнему порогу (с точки зрения ТБ), так как регулятор не является отсекающим устройством. Или например, у тебя управляющий сигнал не 0..10В, а 2..10В.
5) LMN... Вообще есть стандартная FC106, аналогичная FC105 тобой использованная. Но, если у тебя управляющий сигнал в полном диапазоне: 0..10В, 4..20мА, 0..20мА, то тут лучше применить наверное LMN_PER, так как выход у тебя с контроллера идет. Т.е. сразу PQW518 задать.
В общем, не забывай ткнуть в FB41 мышкой и нажать F1
-
- Posts: 202
- Joined: Wed Mar 19, 2008 1:12 pm
- Location: Ukraine
Re: Request: пример с стандартным ПИД-регулятором
Все получилось (сделал как советовал sania) - когда стал вызывать FC1 (а в FC1 вызываеться блок регулятора) в ОВ35 - ошибка пропала
1. Я вызывал регулятор и в ОВ35 и в FC1 - так получается нельзя? Почему??
2. Но есть работоспособный вариант когда в ОВ35 вызываеться функциональный блок регулятора строкой: UC FB41(ПИД-регулятор), и тогда больше нигде не надо вставлять FB41, а параметрирование FB41 в таком случае следует делать через его экземплярный блок??????
1. Я вызывал регулятор и в ОВ35 и в FC1 - так получается нельзя? Почему??
2. Но есть работоспособный вариант когда в ОВ35 вызываеться функциональный блок регулятора строкой: UC FB41(ПИД-регулятор), и тогда больше нигде не надо вставлять FB41, а параметрирование FB41 в таком случае следует делать через его экземплярный блок??????
-
- Posts: 501
- Joined: Tue Jun 27, 2006 5:52 am
- Location: Russia
Re: Request: пример с стандартным ПИД-регулятором
А как ты себе представляешь работу одного и того же два раза? В расчетах мешанина будет, результат не предсказуем...a_gricaj wrote:1. Я вызывал регулятор и в ОВ35 и в FC1 - так получается нельзя? Почему??
Второй раз только в ОВ100 надо вызывать его, для сброса stat-переменных DB41 при старте контроллера.a_gricaj wrote:2. Но есть работоспособный вариант когда в ОВ35 вызываеться функциональный блок регулятора строкой: UC FB41(ПИД-регулятор), и тогда больше нигде не надо вставлять FB41,
Да.a_gricaj wrote:а параметрирование FB41 в таком случае следует делать через его экземплярный блок??????
А какую цель ты преследуешь вызовом UC? Левой ногой, правое ухо?
-
- Posts: 202
- Joined: Wed Mar 19, 2008 1:12 pm
- Location: Ukraine
Re: Request: пример с стандартным ПИД-регулятором
Понял БОЛЬШОЕ СПС за разяснения)
-
- Site Admin
- Posts: 1387
- Joined: Sat Aug 13, 2005 6:15 am
Re: Request: пример с стандартным ПИД-регулятором
ошибка пропала не от переноса фс,а от удаления UC
в оригинальной проге скорей всего перед UC задан DI
а вообще прикольно, в 400-м при 5 строчках кода, скан об1 должен быть 1-2 мсек,а в настройках пид - 100.
т.е. его ошибка в 50 раз
если это тебя удовлетворяет...он же работает как он/офф,может задуматься о том что пид и не нужен?
в оригинальной проге скорей всего перед UC задан DI
а вообще прикольно, в 400-м при 5 строчках кода, скан об1 должен быть 1-2 мсек,а в настройках пид - 100.
т.е. его ошибка в 50 раз
если это тебя удовлетворяет...он же работает как он/офф,может задуматься о том что пид и не нужен?
-
- Posts: 202
- Joined: Wed Mar 19, 2008 1:12 pm
- Location: Ukraine
Re: Request: пример с стандартным ПИД-регулятором
А, что ты меешь ввиду под "ДИ"??????????????????????
-
- Site Admin
- Posts: 1387
- Joined: Sat Aug 13, 2005 6:15 am
Re: Request: пример с стандартным ПИД-регулятором
извиняюсь,лень было переходить с языка на язык
DI : инстанс дата блок.
вызов : CALL FB41, DB41 ,подразумевает : вызвать FB41 с DI41
DI : инстанс дата блок.
вызов : CALL FB41, DB41 ,подразумевает : вызвать FB41 с DI41
-
- Posts: 202
- Joined: Wed Mar 19, 2008 1:12 pm
- Location: Ukraine