![]() |
![]() ![]() |
|
Вопросы о программировании Вопросы, касающиеся программирования на FBD |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
![]() |
#1 |
Member
Регистрация: Feb 2013
Сообщения: 73
Благодарил(а): 2 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Тема выделена из http://forum.segnetics.com/showthread.php?t=313
Здравствуйте. Столкнулся с проблемой в макросе. Когда значение U идёт на увеличение, то макрос отрабатывает нормально подключая устройства последовательно. А когда U уменьшается то включенные устройства продолжают работать. (было U=4, четыре работают, стало U=2, четыре устройства продолжают работать, а не 2) Последний раз редактировалось Arsie, 10.07.2013 в 13:43 |
![]() |
![]() |
![]() |
#2 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 360
Благодарил(а): 15 раз(а)
Поблагодарили:
609 раз(а) в 556 сообщениях
|
![]() ![]() __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#3 |
Member
Регистрация: Feb 2013
Сообщения: 73
Благодарил(а): 2 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]() На входе U у меня управление колличеством работающих насосов. Num - общее колличество Может у меня иголки или в целом всё не так как нужно. ![]() По умолчанию колличеством включеных насосов у меня управляет ПИД регулятор. Сначала включается 1 насос, дальше подключаются остальные. Тут всё как нужно отрабатывает. А вот когда идёт на уменьшение, тоесть после 4-х насосов нужно включить 3 или 2, то макрос не отключает работающие, хоть на U придёт 0, всё-равно будет работать 4 насоса. Посмотрите на макрос который я выкладывал выше. Последний раз редактировалось Arsie, 10.07.2013 в 12:09 |
![]() |
![]() |
![]() |
#4 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 360
Благодарил(а): 15 раз(а)
Поблагодарили:
609 раз(а) в 556 сообщениях
|
![]() __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#5 |
Member
Регистрация: Feb 2013
Сообщения: 73
Благодарил(а): 2 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]() Мне нужно чтоб насосы циклически переключались раз в сутки. |
![]() |
![]() |
![]() |
#6 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 360
Благодарил(а): 15 раз(а)
Поблагодарили:
609 раз(а) в 556 сообщениях
|
![]() __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#7 |
Member
Регистрация: Feb 2013
Сообщения: 73
Благодарил(а): 2 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]() |
![]() |
![]() |
![]() |
#8 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 360
Благодарил(а): 15 раз(а)
Поблагодарили:
609 раз(а) в 556 сообщениях
|
![]() Давайте попробуем третий раз: какое число на входе "t ротации Н1,сек" самом деле? __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#9 |
Member
Регистрация: Feb 2013
Сообщения: 73
Благодарил(а): 2 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]() |
![]() |
![]() |
![]() |
#10 |
Member
Регистрация: Feb 2013
Сообщения: 73
Благодарил(а): 2 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Полагаю мне нужно уменьшить это значение например до 5 минут.
Тогда как мне реализовать циклическое переключение раз в сутки? |
![]() |
![]() |
![]() |
#11 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 360
Благодарил(а): 15 раз(а)
Поблагодарили:
609 раз(а) в 556 сообщениях
|
![]() Вы можете в этом убедиться, запустив свой проект в отладку. Теперь перейдём к изначальному вашему вопросу: "Почему не выключается?". На самом деле выключается, но не ранее, чем через 20864 цикла программы. Это значит, что при времени одного цикла, равным 100 мсек, выключение произойдёт через 20864 * 0.1 = 2086,4 секунды. Или, другими словами, почти через 35 минут. Теперь перейдём к вашей задаче. Вы оговорились, что вам нужно циклическое переключение насосов раз в сутки. Посмотрим, что вы сделали на самом деле. Открываем файл описания из первого сообщения в этой теме. Читаем: t1..t15 - входы задания для внутренних счётчиков таймаутов. Для каждой ступени используется отдельный счётчик. Значения на этих входах определяют максимальную частоту переключения ступеней. Единицы измерения - тики системы. Логика такова: после включения ступени значение с соответствующего входа загружается в счётчик и пока счётчик не досчитает до нуля, ступень не может быть выключена. После выключения ступени значение с соответствующего входа опять загружается в счётчик и пока счётчик не досчитает до нуля, ступень не может быть включена. Похоже на то, что у вас сейчас происходит? __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#12 |
Member
Регистрация: Feb 2013
Сообщения: 73
Благодарил(а): 2 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Да. Очень.
Хорошо. Тогда мне нужно поставить небольшое время t. Тогда как мне реализовать циклическое переключение раз в 24 часа, как в проекте на ИТП для двух насосов? |
![]() |
![]() |
![]() |
#13 |
Senior Member
Регистрация: Dec 2011
Сообщения: 690
Благодарил(а): 0 раз(а)
Поблагодарили:
9 раз(а) в 9 сообщениях
|
![]()
Увеличте на некоторое время на 1 число потребных насосов, а потом верните в исходное положение.
Но в любом случае надо будет использовать счетчик наработки для каждого насоса. Время работы или число пусков, это не существенно. Попробуйте, должно получиться. Хотя если использовать счетчики наработки, то данный макрос сам будет переключать насосы для выравнивания при каждом изменении числа потребных насосов и ни какого внешнего вмешательства не потребуется. |
![]() |
![]() |
![]() |
#14 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 360
Благодарил(а): 15 раз(а)
Поблагодарили:
609 раз(а) в 556 сообщениях
|
![]() Перво-наперво расстрою вас. Этот макрос не предназначен для организации циклической ротации. А вот ротацию для выравнивания моторесурса он делать умеет и делает это очень хорошо. О чём, кстати, написано в его описании: "При использовании внешних счётчиков наработки (моточасов) приоритет получают устройства с меньшей наработкой. Таким образом происходит равномерный износ устройств". Вам ротация по моточасам подойдёт или вам нужна именно циклическая ротация? __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#15 |
Member
Регистрация: Feb 2013
Сообщения: 73
Благодарил(а): 2 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Я думаю вполне подойдет ротация по моточасам.
Тогда помогите прикрутить к моему макросу эти счетчики. Мне получается нужно несколько счетчиков: 4 на каждый насос, которые будут считать время работы каждого (с памятью работы??). И еще один которые будет раз в 24 часа прибавлять 1 к числу работающих и сразу вычитать 1 для переключения. Покажите на примере. Спасибо. |
![]() |
![]() |
![]() |
#16 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 360
Благодарил(а): 15 раз(а)
Поблагодарили:
609 раз(а) в 556 сообщениях
|
![]() 1) Мы с вами всё же составляем вменяемое техзадание и проходим некоторый ликбез в компьютерной технике и планомерно реализуем это техзадание 2) Я вам прямо советую что делать для решения сиюминутной проблемы и на этом моя помощь заканчивается. Если "вдруг" получится, что вы что-то "забыли" или где-то "не подумали", то выход вам придётся искать самостоятельно Каким путём идём? __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#17 |
Senior Member
Регистрация: Dec 2011
Сообщения: 690
Благодарил(а): 0 раз(а)
Поблагодарили:
9 раз(а) в 9 сообщениях
|
![]()
Если всего насосов 5, а работают только 4, то счетчиков должно быть 5.
В библиотеке макросов есть счетчик наработки. Вы нагородили более сложный макрос, так что остальное вам по силам. Но если число включенных насосов меняется хотя бы 1 раз в сутки (нагрузка меняется или просто система выключается) то со всей ротацией справится сам макрос наработки. |
![]() |
![]() |
![]() |
#18 |
Member
Регистрация: Feb 2013
Сообщения: 73
Благодарил(а): 2 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Хотелось бы по первому варианту, но увы времени к сожалению нет. У меня есть один-два дня чтоб решить эту проблему и сдать объект.
Так что давайте как быстрей, тоесть по второму варианту. (а потом по первому ![]() |
![]() |
![]() |
![]() |
#19 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 360
Благодарил(а): 15 раз(а)
Поблагодарили:
609 раз(а) в 556 сообщениях
|
![]() На входы t1/t2/t3/t4 задаёте значение 42. Выходы 1/2/3/4 подключаете к входам счёта соответствующих макросов моточасов. Раз в сутки значение U уменьшаете на единицу на несколько секунд. Делать это проще всего, сравнивая показания системных часов с нужным вам числом, например с двойкой, если ротацию вы хотите осуществлять в 2 часа ночи. Т.е. берёте блок GetTime и компаратором (CMP) сравниваете значение на выходе HH с числом. Выход равенства компаратора через блок Raise сбразывает времязадающий счётчик (время задаём секунд 5 с помощью блока TimeToTick). Счётчик (лучше всего CTD) своим выходом переполнения должен управлять мультиплексором, через который проходит U либо напрямую, либо уменьшенное на единицу с помощью блока SUB. Всё. PS. Напрасно вы думаете, что первый вариант более медленный. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#20 |
Senior Member
Регистрация: Mar 2008
Адрес: Екатеринбург
Сообщения: 480
Благодарил(а): 46 раз(а)
Поблагодарили:
13 раз(а) в 12 сообщениях
|
![]()
А у меня чтото макросы не открываются ни Dev15 v3_, ни Dev31 v3_, и тема закрыта где эти макросы выложены.
![]() |
![]() |
![]() |
![]() |
#21 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 360
Благодарил(а): 15 раз(а)
Поблагодарили:
609 раз(а) в 556 сообщениях
|
![]() __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#22 |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 3 857
Благодарил(а): 224 раз(а)
Поблагодарили:
141 раз(а) в 133 сообщениях
|
![]()
всем выжившим в праздники - большой привет!
вопрос по поводу насосов в группе. насосы - циркуляционные. все насосы со своим пч. насосами нужно поддерживать перепад 10-20мвс, мощность 15..20кВт, условно. кто как предпочитает управлять ими в группе? варианты: а) пид-секвенсор, по типу конструкторского б) пид-регулятор + макрос Экал. один насос на выходе "0-10", остальные на дискретных выходах с входным сигналом 100% в) один пид регулятор, все насосы подключены на его выход параллельно, кол-во насосов в работе меняется по сигналам переполнения регулятора, т.е. максимум - подключаем след насос, минимум, отключаем один из насосов. лично я попробовал б) и в) б) вполне сносно, но иногда появляются качели, на переходах кол-ва ступеней в) терпимо, но в плане качелей гораздо хуже. вот, сижу и думаю, стоит ли заморочиться на секвенсор или же надо искать другое решение? |
![]() |
![]() |
![]() |
#23 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 360
Благодарил(а): 15 раз(а)
Поблагодарили:
609 раз(а) в 556 сообщениях
|
![]() __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#24 |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 3 857
Благодарил(а): 224 раз(а)
Поблагодарили:
141 раз(а) в 133 сообщениях
|
![]() мне больше всего не нравится во всех этих вариантах то, что в реальности через следующий насос носитель пойдёт только тогда, когда на насосе перепад станет таким же или большим чем на том что уже крутится на 100% сижу ломаю голову, наверное надо настаивать на добавлении еще пары датчиков чтобы каждый насос работал на своем dP. иначе сложно получается и опасность качелей все равно остается... |
![]() |
![]() |
![]() |
#25 |
Senior Member
Регистрация: Dec 2011
Сообщения: 690
Благодарил(а): 0 раз(а)
Поблагодарили:
9 раз(а) в 9 сообщениях
|
![]() По мне, так наиболее правильный, из предложенных вами вариантов, это вариант В. Но с некоторыми дополнениями: 1. ПИД управляет частой, а значит оборотами насоса. Перепад давления пропорционален квадрату оборотов. Между ПИД и ПЧ должен стоять преобразователь для линеаризации. 2. Подключение дополнительного насоса должно происходить не при 100%, а чуть ранее скажем 80-90%. Тут все зависит от характеристик насоса. 3. Выключение дополнительного насоса должно происходить не при 0%, а чуть больше скажем 30-50%. Тут все зависит от характеристик насоса. 4. Включение дополнительного насоса должно происходить не с нулевой частотой, а с частотой соответствующей уставке перепада давление при нулевом протоке через насос. Тут все зависит от характеристик насоса. 5. Дополнительный насос после включения с определенным темпом начинает разгонятся до частоты основного насоса. Далее они работают синхронно от регулятора. 6. Перед выключением дополнительный насос снижает обороты с определенным темпом до частоты соответствующей нулевому протоку при данной уставке давления. После этого насос отключается. 7. Под % в п.2,3 имеется в виду выход преобразователя из п.1, а не выход ПИД. Но это надо уточнить при наладке. __________________ Нет абсолютно бездарных людей. Каждый бездарен в своей области. |
![]() |
![]() |
Благодарность от: |
![]() |
#26 |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 3 857
Благодарил(а): 224 раз(а)
Поблагодарили:
141 раз(а) в 133 сообщениях
|
![]()
пока худо-бедно удалось реализовать вариант б)
на скрине уже с работа ротацией первая палка - переход был один стало два вторая палка - один насос остановил типа по аварии, подключился второй третья палка - отключил второй насос по аварии, в работе остался один всего три насоса проектировщик не очень хороший человек, мягко говоря, вместо того чтоб на каждый насос поставить по датчику-преобразователю перепада (DPE) он на всю группу поставил два РЕ, цена 3тр, и на каждый насос три DPS по 2,6тр, причем DPS с минимальной уставкой 5мвс и минимальным гистерезисом 5мвс. вот и приходится вы*я а так-то три DPE (или четыре РЕ) и простой автомат добавить/убавить насосов и было бы все в шоколаде. и качелей не было бы вообще. ладно, клиенту обозначил косяк проекта, пусть сам голову ломает. |
![]() |
![]() |
![]() |
#27 |
Senior Member
Регистрация: Dec 2011
Сообщения: 690
Благодарил(а): 0 раз(а)
Поблагодарили:
9 раз(а) в 9 сообщениях
|
![]() Если проектировщик настолько не хороший человек, то может лучше запустить все насосы параллельно и нехай крутятся. А DPS оставить как защиту от сухого хода, отключив одну трубку. При включении доп.насоса броски будут всегда, особенно если основной насос находится в насыщении (0 или 100%). Минимизировать скачки можно "подхватом на ходу", когда включение доп.насоса происходит раньше, чем основной вышел на 100%. __________________ Нет абсолютно бездарных людей. Каждый бездарен в своей области. |
![]() |
![]() |
Благодарность от: |
![]() |
#28 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 360
Благодарил(а): 15 раз(а)
Поблагодарили:
609 раз(а) в 556 сообщениях
|
![]() __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#29 |
Senior Member
Регистрация: Dec 2011
Сообщения: 690
Благодарил(а): 0 раз(а)
Поблагодарили:
9 раз(а) в 9 сообщениях
|
![]()
Универсальных АСУ не бывает. АСУ делается под конкретное оборудование. Для групп насосов я знаю как минимум 3 схемы управления: все вкл/выкл, 1 ПЧ остальные вкл/выкл, все ПЧ. И это только для групп одинаковых насосов. Есть и более экзотические схемы с разнородными насосами. Без всплесков при переключении может работать только схема со всеми ПЧ. Но там надо знать конкретный тип насоса, его кривую QH, кривую КПД и прочее. У производителей насосного оборудования такие щиты есть. Выбираешь марку насоса, количество насосов и остальное уже есть, характеристики "своих насосов" уже вшиты в контроллер. Но цена этого щита раз в 5 больше чем розничная цена комплектухи из которой он собран. Так что производители насосного оборудования свои сливки снимают.
__________________ Нет абсолютно бездарных людей. Каждый бездарен в своей области. |
![]() |
![]() |
![]() |
#30 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 360
Благодарил(а): 15 раз(а)
Поблагодарили:
609 раз(а) в 556 сообщениях
|
![]() Другими словами, алгоритмы под разные схемы есть. Нужно сшить это в одну систему. Матрикс этому сильно поможет - у него правильный формфактор и нет ограничения по объёму программы. Пиксель-2 был бы лучше, но что есть, то есть. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Алгоритм работы группы насосов | Dmitri | Вопросы о программировании | 49 | 10.06.2021 16:42 |
Ротация насосов | alekseydav | Вопросы о программировании | 4 | 15.04.2020 13:11 |
Работа насосов СО в режиме Лето (решено) | esi | SMConstructor (теплопункты) | 7 | 17.12.2019 18:35 |
поделитесь маросом ротации 2х насосов (решено) | dima-prorab | Вопросы о программировании | 36 | 30.07.2019 03:13 |
Алгоритм подключения Pixel к компу (решено) | belii_nindza | Вопросы о Pixel | 4 | 05.08.2014 13:05 |