nesist, можете нарисовать график того процесса, который хотите получить?
PV, SP, Out
Вид для печати
nesist, можете нарисовать график того процесса, который хотите получить?
PV, SP, Out
График не нарисую, а на словах расскажу. Имеем мини электрокотельную в школе. Состав котельной 4 котла по 25 Квт. Вот и надо мне поддерживать температуру в контуре отопления путем включения ступеней (котлов). Количество включенных ступеней должно управлятся регулятором в зависимости от требуемой мощности на поддержание температуры
У меня на котельных работает в таком режиме: Температура упала, включается первая ступень, через 15 мин, если температуры не хватает, включается вторая и т.д., при наборе температуры все ступени выключаются, таймеры обнуляются. Работает с момента появления ПР110. Нареканий еще не было. Температурный график поддерживается в норме.
Тоже как вариант!
Но все же какие решения есть еще?
Вот что я попробовал сделать
Вложение 22072
Вы бы развели задачу получения нужного кол-ва котлов и задачу установки нужного кол-ва котлов.
В реальном мире любой котел в любое время может отвалится в аварию.
И, наверное, разумно раз в неделю ротировать котлы?
Так сказать, чтобы не получилось, что "2 года работали на одном-единственном, и за это время все остальные вообще сломались и теперь вообще трындец".
Если несколько котлов, то, гидравлический разделитель есть?
Котлы совсем бестолковые или они могут "пытаться выработать определённую температуру подачи"?
Если могут, то на котлах делаем уставку "температура подачи должна быть 60C" (ну или сколько там).
"мозг" делает так:
1) Если нужно греть -- добавляет котёл
2) "включенные котлы" пытаются греть. Если не могут, то через какое-то время "мозг" должен ещё котёл включить.
3) Если оказалось, что реально расходуемая мощность (на поддержание тех самых 60C подачи) это 120% от одного котла, то два котла через како-то время начнут работать "на 60% мощности".
Какое условие на то, что "пора отключать котёл" -- хз.
Или электрокотлы так не работают?
а то ж. Код так и выглядит:Цитата:
И, наверное, разумно раз в неделю ротировать котлы?
if я_уже_неделю_работаю.q и а_бамбук_курит > 0 then пойду_посплю(); end_if
1) в некотором смысле П-частьЦитата:
"мозг" делает так:1).. 2)..
2) чисто И-часть
Вытечет из 1) и 2).Цитата:
Какое условие на то, что "пора отключать котёл" -- хз
Разве это имеет какое-то значение ?Цитата:
Или электрокотлы так не работают?
Ну, разработчики котлов думали, делали несколько ступеней нагрева (или вообще модуляцию), а тут приходит такой, простите, Валенок на белом коне и говорит: "Всю модуляцию -- лесом, будем только включать и отключать".
Логично, чтобы оно не включалось-отключалось постоянно, а выдавало ровно ту мощность, которая потребляется?
Недавно обсуждали же "ШИМ на Р выходах" :)
Просто напомню модулирующим коникам:
1.Автор сказал - 4 ступени.
2.Автор в собственном примере выкатил 4 буля работающих тупо по 4 уровням. И вроде как доволен.
Настоящие жентельмены придумываютъ правила по ходу игры ?
1.Это логично когда прибор может это делать. См.выше.Цитата:
Логично, чтобы оно не включалось-отключалось постоянно, а выдавало ровно ту мощность, которая потребляется?
2.Видимо автор хочет выйти за рамки черно-белого набора из {"включалось-отключалось постоянно","выдавало ровно ту мощность, которая потребляется"}
3.Кстати - а где заканчивается "постоянно" ? Пока вижу что раз в неделю это не постоянно. А раз в сутки ?
Котлы эти простые электродные, сами они мощность регулировать не могут, тупо включен-выключен.
Каждый котел по 25 Квт, всего мощности надо 100 Квт в самую холодную пору. Вот и сделано 4 ступени.
Сейчас по факту на объекте стоит очень кривой шкаф с гистеризисным терморегулятором.
Оператор котельной путем включения силовых автоматов включает нужное количество ступеней допустим все 4, соответственно регулятор включает и выключает одновременно включенное количество ступеней.
Допустим температура заданная 60 градусов и гистерезис 10, соответственно происходит быстрый набор до 70 , далее выключение, следующее включение при 60. Все это очень часто шарабанит, имею ввиду пускатели (долго не живут) и происходит этот разброс от заданной температуры.
И выше - ответили
И здеся - форум. Я, простите, глубоко уточняю нюансы перед подписанием договора ))
--
Если т-ра часто болтается за пределами 60..70 и при этом переключается 1 котел и каждый раз он меняется и при этом "шарабанит" - ни х. Вы не сделаете. Сделать возможно только :Цитата:
Допустим температура заданная 60 градусов и гистерезис 10, ...быстрый набор до 70 , .. выключение, следующее включение при 60. Все это очень часто шарабанит, имею ввиду пускатели (долго не живут)
1.Изменение квантования нагрузки.
2.Изменение инерционной хар-ки объекта
3.Привести хотелки в соответствие к реальности
1-например замена котлов на конно-модулирующие или многоступенчатые
2-увеличения объема циркулирующей воды (самое простое)
3-имхо, самое простое - увеличить гистерезис
Вполне может быть просто ошибка проекта. Если т-ра помещения не летает , а т-ра воды контура летает + - 10, то есть тупо плохой теплосъем с контура. В цепочке теплопередачи котел-вода-воздух узким звеном является вода-воздух.
4.Не соответствующая циркуляция
5.Не соответствующие приборы отопления.
Т.к. информации - мало. То подытожу :
Надо делать: [1] + [2] + [3] + [исправить 4] + [исправить 5] + [X]
где X дополнительное решение по неожиданно всплывающей очередной порции информации. Причем очередное X может полностью перечеркнуть предыдущее решение.
PS
По теме.
Выход пида может дать нужное кол-во котлов полностью упразднив ton/tof'ы.
Для выборки нужного кол-ва проще проюзать массив котлов. Квадратики для массивов заточены не очень.
Я и не начинал.
автор_доволен != система_хорошо_работает.
Поэтому и уточняю про модуляцию. Не более.
Имеет. И, да, на момент #4813 разве что телепаты могли догадываться, что модулировать конкретные котлы не умеют.
Где полемика-то?
Вот это, так вообще одно и то же, но разными словами сказанное:
Особенно если они не читали пост #4801.
Автор из ПИДа хочет/хотел вытянуть дискреты. Было бы аналоговое регулирование - возник бы пост#4801 ?Цитата:
Поэтому и уточняю про модуляцию. Не более.
Вообще-то не одно и тоже )) Полная фразаЦитата:
Вот это, так вообще одно и то же, но разными словами сказанное:
"Если т-ра часто болтается за пределами 60..70 и при этом переключается 1 котел и каждый раз он меняется и при этом "шарабанит" - ни х. Вы не сделаете"
Попробую перевести :
Сочетание хотелок && хар-тик исп.механизмов (котлы) && хар-тик объекта управления может быть недостижимым.
Изменения необходимы хотя бы в одном пункте.
Откуда тут выплыл релейный ШИМ ?
Если в кач-ве рег-ра использован пид (п.#4801), то :
щас_бы : int; //насосов
---
pid(..);
щас_бы := щас_бы + trunc(pid.y - щас_бы * 25) / 25; //выход с пида - 0..100%, 25 - сами
Заодно, надеюсь, найдете где не хватает пары скобок
Извеняюсь не туда
http://www.owen.ru/uploads/primer_8.pdf
Все есть на данном сайте
Кто-то сталкивался с проблемой эмулятор com-port для ЕКОН 134 не работает в windows 8.
Может кто знает как эту беду победить?
Я использую ПЛК-160 на нём должно быть всего 12 дискретных выходов Вложение 22379 но у меня почему то их 16 Вложение 22381
Кто знает почему так получилось и на что это может влиять
Прошу прощения быть может за глупый вопрос.
Почему ПЛК ОВЕН 110-30М при запуске программы с исходным кодом описанным ниже перезапускается с ошибкой связи (Ошибка связи (#0): произошло отвключение)? ВотчДог не помогает =)
Интересно чисто из любопытства)) Я хотел поток контроллера занять в цикле на некоторое время =) а потом отпустить %) не выходит XDЦитата:
PROGRAM PLC_PRG (*необязательно основная программа, может быть функцией, которая вызывается где-нибудь по среди кода*)
VAR
Counter : UDINT;
END_VAR
---------------------------------------------
(*пробовал вставить данный кусок кода в свою программу как "задержку" - приостановка потока*)
FOR Counter:=1 TO 9999000 BY 1 DO
; (*или любое другое выражение*)
END_FOR
Вся беда в том, что функция UdpReceiveData() в биб-ке TcpUdpLib.lib на ПЛК ОВЕН 110-30М при первом обмене данными по UDP не принимает пакет (именно при ПЕРВОМ!), хотя WireShark показывает, что пакет приходит (ПЛК общается с коммутатором, ПК смотрит зеркальный порт). После повторной попытки обмена все нормально, обмен успешен и далее тоже все нормально. Как только сокет переоткрываем, опять такая же ерунда с первым пакетом.
На PLC WinNTv2.4 все нормально, таких проблем нет.
Пробовал поставить точку останова перед функцией UdpReceiveData(). Программа стопорнулась, я запустил ее дальше и вуаля, пакет доставлен. Как будто программе/потоку нужно задержка/время на обработку данных %)
В чем может быть проблема? =(((
Чтобы "собака" не срабатывала попробуйте сделать задержку так в PLC.PRG в самом начале:
delay:bool;
IF delay THEN
RETURN;
END_IF
можно таймер поставить.
Добрый день,
пытаюсь решить, как мне казалось, простейшую задачу.
Прописать в Codesys управление освещением.
Несколько зон освещения должны включаться плавно, желательно и выключаться плавно (это еще не думал как реализовать). Для этого планирую использовать твердотельные реле с входом управления 0-10V и модуль аналогового выхода.
Пока не нашел ни одного внятного примера в интернете, как это прописать в Codesys.
Пробую написать с использованием PID. Тестирую пока только в режиме эмуляции с использованием визуализации.
Столкнулся с проблемой, что иногда при появлении 1 на входе, перед плавным включением, происходят броски на выходе до 10, а уже после плавное увеличение с 0 до 10.
Может кто подскажет на моем примере, какой(ие) параметры я неправильно выставляю?
Вложение 22501
зачем вам пид ,просто задатчик -наращивание значения (прирощение) ЧЕРЕЗ ADD
almap, в библиотеке Util.lib есть RAMP_REAL и RAMP_INT.
Вложение 22502
PID решает другую задачу — достижение уставки в максимально короткое время с минимальным перерегулированием и минимальными осцилляциями в цепях с обратной связью.
Вопрос по ОРС серверу for CodeSys.
В проекте добавил глобальную переменную, в программе участвует.
Сделал "Очистить все", "Компилировать все". Проверил что в "настройке символьного файла" она появилась и птица возле нее стоит.
Пробую использовать ее в проекте мастерскада.
В ОРС сервере новой переменной не видно. Даже в перечне доступных переменных.
Что я делаю не так ? Как добиться чтобы переменная появилась в ОРс сервере ?
UPD. Переменная появилась после загрузки проекта в контроллер.
А когда нет в руках контроллера (как у меня сегодня днем) - что делать ? :mad:
Может кто-то из вас использовал преобразователь частоты Omron MX2 и управлял ним из ПЛК-110 по ModBus RTU
Вопрос хочу разобраться с регистрами, не могу в ехать в них
Используя арифметический оператор SUB у меня вот так получается Вложение 22541 как можно сделать чтоб не было меньше нуля и такой белеберды?
поставьте сравнение и SEL .Если верхнее число больще ,то на выход разница ,если нет ,то ноль.как вариант