PDA

Просмотр полной версии : Ротация насосов 3+1



K.K.
26.10.2023, 10:18
Добрый день подскажите пожалуйста может у кого есть макрос по ротации насосов 3 +1.
Логика такая:
Необходимо каскадное управления насосами, т.е. не все 4 одновременно управляют давлением, а по очереди. А именно: давление снизилось ниже уставки, запустился первый (очередной) насос и начал пытаться набрать требуемое давление увеличением частоты работы двигателя, если при достижении максимальной частоты, в течении времени t=10сек. (задание этой уставки нужно вынести в меню настроек) давление не поднимается, очередной насос продолжает работать на максимальной частоте, а в помощь ему запускается второй (следующий) насос и тоже пытается поднять давление. Если этого не происходит, подключается следующий (третий) насос и т.д. Дополнительно нужно чередование насосов по наработке времени (вывести параметр в настройки меню от 1ч до 999ч). Чередование пусков производить только при работе насоса на минимально частоте или же с плавным одновременным понижением частоты на выводимом из работы насосе и повышением частоты на очередном вводимом в работу.

kondor3000
26.10.2023, 10:25
Добрый день подскажите пожалуйста может у кого есть макрос по ротации насосов 3 +1.
Логика такая:
Необходимо каскадное управления насосами, т.е. не все 4 одновременно управляют давлением, а по очереди. А именно: давление снизилось ниже уставки, запустился первый (очередной) насос и начал пытаться набрать требуемое давление увеличением частоты работы двигателя, если при достижении максимальной частоты, в течении времени t=10сек. (задание этой уставки нужно вынести в меню настроек) давление не поднимается, очередной насос продолжает работать на максимальной частоте, а в помощь ему запускается второй (следующий) насос и тоже пытается поднять давление. Если этого не происходит, подключается следующий (третий) насос и т.д. Дополнительно нужно чередование насосов по наработке времени (вывести параметр в настройки меню от 1ч до 999ч). Чередование пусков производить только при работе насоса на минимально частоте или же с плавным одновременным понижением частоты на выводимом из работы насосе и повышением частоты на очередном вводимом в работу.

Вот готовый блок, каскад из 4 бойлеров, для насосов время переключения можно уменьшить (подобрать) https://owen.ru/forum/showthread.php?t=38453&page=10#93
Для наработки в Менеджере компонентов есть макрос.
Переключать насосы по наработке можно, если считать наработку каждого и у насоса с самой большой наработкой, выставлять аварию.

melky
26.10.2023, 10:26
с такой логикой работы не видел макросов на форуме. Обычно просто вкл/отключение.

K.K.
26.10.2023, 10:30
данный макрос подойдет под эту задачу?

K.K.
26.10.2023, 10:33
с такой логикой работы не видел макросов на форуме. Обычно просто вкл/отключение.

вот по этому и встал, задача не простая

kondor3000
26.10.2023, 10:39
данный макрос подойдет под эту задачу?

Переключать насосы по наработке можно, если считать наработку каждого и у насоса с самой большой наработкой, выставлять аварию, часов на 10-100 ( сколько надо).

Сергей0308
26.10.2023, 12:16
Добрый день подскажите пожалуйста может у кого есть макрос по ротации насосов 3 +1.
Логика такая:
Необходимо каскадное управления насосами, т.е. не все 4 одновременно управляют давлением, а по очереди. А именно: давление снизилось ниже уставки, запустился первый (очередной) насос и начал пытаться набрать требуемое давление увеличением частоты работы двигателя, если при достижении максимальной частоты, в течении времени t=10сек. (задание этой уставки нужно вынести в меню настроек) давление не поднимается, очередной насос продолжает работать на максимальной частоте, а в помощь ему запускается второй (следующий) насос и тоже пытается поднять давление. Если этого не происходит, подключается следующий (третий) насос и т.д. Дополнительно нужно чередование насосов по наработке времени (вывести параметр в настройки меню от 1ч до 999ч). Чередование пусков производить только при работе насоса на минимально частоте или же с плавным одновременным понижением частоты на выводимом из работы насосе и повышением частоты на очередном вводимом в работу.

Насколько понимаю не по наработке ротация должна происходить, а по времени работы насосов, в смысле, проработал один насос установленное время, например 24 часа, происходит ротация, в смысле, другой насос из готовых к работе(включённый в работу и не в аварии) включается, а этот, что работал, выключается. При наработке время всех включений суммируется, а здесь отсчитывается заново при каждом включении. Просто хотел уточнить как Вы хотели, чтобы понимание возникло.
Ротация разумеется происходит когда не все насосы включены иначе и ротировать нечего, я Вас правильно понял?

melky
26.10.2023, 12:34
Сергей0308 в данном случае именно по наработке, так как давление может поддержать и один насос.
у AI! был макрос до 8 насосов, вот он с обвязкой здесь подошел бы как нельзя лучше. Там битовыми масками можно разрешать, запрещать работу насосов. А вот маску как раз и формировать исходя из требуемого количества

K.K.
26.10.2023, 12:38
Вот прога не пойму что не верно

K.K.
26.10.2023, 12:41
а где его взять?

K.K.
26.10.2023, 12:45
Сергей да, melky прав по наработке, так как давление может поддержать и один насос.

melky
26.10.2023, 12:55
Посмотрите в темах макросов, если ссылки не актуальны, значит надо искать дома. Но там обвязку надо делать. Сколько пускать в работу, сколько рабочих по давлению включить, и так далее.
Макрос на самом деле мощный, вопрос только в его применении. Были вроде версии его же только до 4-х насосов. Он как бы для насосов, но применять можно везде, где требуется ротация именно по наработке, а не по времени.
Я как-то делал ротацию кондиционеров, но именно по времени и мне тот макрос тогда не особо подошел.

http://www.owen.ru/forum/attachment.php?attachmentid=26558&d=1474630298/ - сам макрос - в лохматой версии ОЛ, так что пересоздавайте :)

Тема "Обсуждение макросов для OWEN Logic" надо в ней версионности искать
Даже в какой-то из тем пример обвязки показывал, но найти сейчас это сложно.... Но суть там достаточно проста. Делаете основной режим 3+1, в случае снижения давления можно и на 4 перейти.
А по давлению указываете сколько из этих 3-х запускать, 1, 2 или все 3.
Так же можно добавить ручное управление, например вывести насос из работы вообще и т.д.

На выходе соответственно должна быть логика пуска и т.д. если требуется.

K.K.
26.10.2023, 13:03
Спасибо! вы скинули файл с расширением .tpl ?

melky
26.10.2023, 13:04
Да, это файл самого макроса. Он делался очень давно под версией 1.х.х Так что если переделаете под tple то не стесняйтесь выкладывайте :) и не важно, что вы не автор.

K.K.
26.10.2023, 13:07
Это он?)))

Сергей0308
26.10.2023, 13:08
Сергей да, melky прав по наработке, так как давление может поддержать и один насос.

Вы же написали в первом посту когда один не справляется включается второй ему на подмогу, что-то совсем непонятно стало!

melky
26.10.2023, 13:11
Сергей0308 так на подмогу может включиться к одному еще 2 и даже 3 при необходимости.

K.K. да, это он. Выходы там тоже битовая маска, какие насосы должны включиться

K.K.
26.10.2023, 13:13
Сергей0308 Да, давление снизилось ниже уставки, запустился первый (очередной) насос и начал пытаться набрать требуемое давление увеличением частоты работы двигателя, если при достижении максимальной частоты, в течении времени t=10сек. (задание этой уставки нужно вынести в меню настроек) давление не поднимается, очередной насос продолжает работать на максимальной частоте, а в помощь ему запускается второй (следующий) насос и тоже пытается поднять давление. Если этого не происходит, подключается следующий (третий) насос и т.д.

K.K.
26.10.2023, 13:15
Вот с расширением .tple

K.K.
26.10.2023, 13:22
Сергей0308 а вы как предлагаете? у вас вроде по ротации много макросов? какой можно использовать под мою задачу?

kondor3000
26.10.2023, 13:26
Вот прога не пойму что не верно

Массивы должны начинаться с 0, а у вас с 1

K.K.
26.10.2023, 13:32
Массивы должны начинаться с 0, а у вас с 1

Нет не обязательно. Могут начатся с любого числа.

kondor3000
26.10.2023, 13:42
Нет не обязательно. Могут начатся с любого числа.

В Лоджике сейчас только с нуля, ошибки не будет, неужели не понятно.

K.K.
26.10.2023, 13:43
В Лоджике сейчас только с нуля, ошибки не будет, неужели не понятно.

Почему? объясните, видимо я не в теме

melky
26.10.2023, 13:46
Странно, по жизни массивы с 0 во всех языках. То, что вы хотите использовать 1-й элемент массива, это не значит, что он первый :)

K.K.
26.10.2023, 13:54
В Лоджике сейчас только с нуля, ошибки не будет, неужели не понятно.

Подскажите есть какая -та официальная справка по ограничением ST в OL ?

K.K.
26.10.2023, 13:55
Странно, по жизни массивы с 0 во всех языках. То, что вы хотите использовать 1-й элемент массива, это не значит, что он первый :)

https://ru.wikipedia.org/wiki/Массив_(тип_данных)

K.K.
26.10.2023, 13:58
Массивы должны начинаться с 0, а у вас с 1

Первый элемент массива, в зависимости от языка программирования, может иметь различный индекс. Различают три основных разновидности массивов: с отсчётом от нуля (zero-based), с отсчётом от единицы (one-based) и с отсчётом от специфического значения заданного программистом (n-based). Отсчёт от нуля более характерен для низкоуровневых языков программирования, хотя встречается и в языках высокого уровня, например, используется почти во всех языках семейства Си. В ряде языков (Паскаль, Ада, Модула-2) диапазон индексов может определяться как произвольный диапазон значений любого типа данных, приводимого к целому, то есть целых чисел, символов, перечислений, даже логического типа (в последнем случае массив имеет два элемента, индексируемых значениями «Истина» и «Ложь»).

В Codesys такого ограничения нет. Видимо в OL тут так получается что только с 0, а то массивы должны начинаться с нуля (обязательно) это не верно!

melky
26.10.2023, 14:00
Ну если ST Паскале подобный, это же не значит, что в нем так же...

kondor3000
26.10.2023, 14:04
Первый элемент массива, в зависимости от языка программирования, может иметь различный индекс. Различают три основных разновидности массивов: с отсчётом от нуля (zero-based), с отсчётом от единицы (one-based) и с отсчётом от специфического значения заданного программистом (n-based). Отсчёт от нуля более характерен для низкоуровневых языков программирования, хотя встречается и в языках высокого уровня, например, используется почти во всех языках семейства Си. В ряде языков (Паскаль, Ада, Модула-2) диапазон индексов может определяться как произвольный диапазон значений любого типа данных, приводимого к целому, то есть целых чисел, символов, перечислений, даже логического типа (в последнем случае массив имеет два элемента, индексируемых значениями «Истина» и «Ложь»).

В Codesys такого ограничения нет. Видимо в OL тут так получается что только с 0, а то массивы должны начинаться с нуля (обязательно) это не верно!

Так и хочется выругаться, вы спросили почему ошибка, я ответил и проверил сначала! Почему так сделали в Лоджике, вопрос к разработчикам.

K.K.
26.10.2023, 14:08
Так и хочется выругаться, вы спросили почему ошибка, я ответил и проверил сначала! Почему так сделали в Лоджике, вопрос к разработчикам.

Вам спасибо большое за помощь! у вас может ссылка на офиц источник от ОВена по ограничением языка ST в OwenLogic ?

K.K.
26.10.2023, 14:18
Вам спасибо большое за помощь! у вас может ссылка на офиц источник от ОВена по ограничением языка ST в OwenLogic ?

Узнал у Овена массивы с типом данных BOOL всегда с 0, с типом данных REAL, INT c произвольное n

K.K.
26.10.2023, 14:37
Массивы должны начинаться с 0, а у вас с 1
Подскажите TON and TOF работают на ST в FB ?

kondor3000
26.10.2023, 14:43
Подскажите TON and TOF работают на ST в FB ?

Я вам ссылку в первом сообщении дал, там самописные блоки в том числе и TON, TP, R_Trig откройте функц блоки и увидите
https://owen.ru/forum/showthread.php?t=38453&page=10#93

Сергей0308
26.10.2023, 15:02
Сергей0308 а вы как предлагаете? у вас вроде по ротации много макросов? какой можно использовать под мою задачу?

Здесь каскадное регулирование:
https://owen.ru/forum/showthread.php?t=32428&page=4
Будет определять количество включённых насосов(ступеней)!

Здесь ротация:
https://owen.ru/forum/showthread.php?t=36564

Первую ступень сделаете регулируемой, она всегда работает(без ротации), вкратце, всё!
Это я так вижу!

Если все насосы с ПЧ можно и регулируемую ступень включить в ротацию!

RfSS
26.10.2023, 15:10
Вот по смене ведущего 71181 Из блока каскада main вытащить наружу 71182. И переключайте через нужный период.

K.K.
28.10.2023, 15:15
Прошу посмотреть код программы, не можем запустить на производстве установку насосную, где может быть ошибка, не работает вроде ПИД

Dimensy
28.10.2023, 17:15
А у вас авария сухого хода и частотника нормально замкнутый контакт или разомкнутый? Просто на нормально разомкнутый реагирует переменная аварии насоса, а на нормально замкнутый - статус на экране.
Подсчет моточасов в секундах через штатный универсальный счетчик не лучшая идея, потому что его хватит где-то на месяц

И, так, для развития: эти операции идентичны
71223

kondor3000
28.10.2023, 18:45
У меня всё работает в эмуляции, только не работает авто настройка ПИД. А сами ПИД регуляторы работают.
Но вот с запуском вы перемудрили, проверяйте все контакты запуска работы насосов. И не лучшая идея выводить наработку в переменные Float.
Лучше поставить 32 битный энергонезависимый счётчик и считать целочисленными.

K.K.
28.10.2023, 21:15
У меня всё работает в эмуляции, только не работает авто настройка ПИД. А сами ПИД регуляторы работают.
Но вот с запуском вы перемудрили, проверяйте все контакты запуска работы насосов. И не лучшая идея выводить наработку в переменные Float.
Лучше поставить 32 битный энергонезависимый счётчик и считать целочисленными.

ПИД регулирование можно проверять в режиме эмуляция? есть ли ошибка в запуске ПИД регулирования? опыта в ПИД регулировании на ПР200 не было, правильно ли мы все сделали?
Почему наработку не рекомендуете выводить во Float?

K.K.
28.10.2023, 21:16
А у вас авария сухого хода и частотника нормально замкнутый контакт или разомкнутый? Просто на нормально разомкнутый реагирует переменная аварии насоса, а на нормально замкнутый - статус на экране.
Подсчет моточасов в секундах через штатный универсальный счетчик не лучшая идея, потому что его хватит где-то на месяц

И, так, для развития: эти операции идентичны
71223

Спасибо, заметили, исправили

kondor3000
28.10.2023, 22:11
ПИД регулирование можно проверять в режиме эмуляция? есть ли ошибка в запуске ПИД регулирования? опыта в ПИД регулировании на ПР200 не было, правильно ли мы все сделали?
Почему наработку не рекомендуете выводить во Float?

Некоторые ПИД не работают, эти работают частично, без ANR, с заданными вручную коэффициентами. 71224
Наработку можно выводить как угодно, но по мне число 3.47е-02 как наработка совсем не информативно.

Сергей0308
29.10.2023, 00:21
А зачем выравнивать наработку? Мне кажется лучше равномерно использовать те насосы которые включены в работу и не в аварии! Вы скажите это одно и тоже? Нет это разная логика работы!

melky
29.10.2023, 10:15
float ограничен диапазоном, меньшим чем у 32-х битного числа.

K.K.
29.10.2023, 13:02
Некоторые ПИД не работают, эти работают частично, без ANR, с заданными вручную коэффициентами. 71224
Наработку можно выводить как угодно, но по мне число 3.47е-02 как наработка совсем не информативно.

Спасибо большое за вашу помошь!

По самые по...
29.10.2023, 13:42
А зачем выравнивать наработку? Мне кажется лучше равномерно использовать те насосы которые включены в работу и не в аварии! Вы скажите это одно и тоже? Нет это разная логика работы!

Мне кается, что ТС так и не выработал правильного построения системы управления и алгоритма ее работы. На мой взгляд, надо четко осознавать, что в условиях множества насосов (4 шт.), необходимо и множество чередующихся систем управления насосами, а не одна. Ведь выход из строя такой единственной системы управления, как использует ТС, влечет за собой полную остановку и невозможность регулирования всего узла. Поэтому сам ПИД и подключение-отключение дополнительных насосов, должно осуществляться текущим, выбранным в качестве основного (ведущего) на заданный период времени, частотным преобразователем. Главный смотритель лишь определяет по часам реального времени и задает текущую уставку давления, считает время смены ведущего, определяет порядок смены ведущего и мониторит параметры работы всего узла, с выработкой оповещений. Таким образом существенно повышается устойчивость к авариям и безотказность работы.

Валенок
29.10.2023, 16:21
Подсчет моточасов в секундах через штатный универсальный счетчик не лучшая идея, потому что его хватит где-то на месяц
Правнуки да, огорчатся

Сергей0308
29.10.2023, 16:37
Правнуки да, огорчатся

В ОЛ универсальный счётчик 16 битный(диапазон: 0-65535), речь о том, что он сделал, а не о том, что существует в галактике!

В смысле, если секунды считать, хватит всего на 18 часов, если часы(поставив предделитель) на 7 лет!