Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 16

Тема: ФБ на ST ротация насосов

  1. #1

    По умолчанию ФБ на ST ротация насосов

    Около 7 лет назад AI! выкладывал макрос для управления насосами с ротацией
    Данный макрос (его усеченная версия на 4 насоса) идеально подходит для моей задачи, отрабатывает ровно так, как нужно
    В связи с появлением функциональных блоков на ST в OL появилась идея переписать данный макрос на ST, но к сожалению я так и не смог разобраться в принципе его работы.
    Прошу помощи у более опытных участников форума в данном вопросе.
    Возможно подобное уже было реализовано в CDS и можно это портировать на ПР ? (я на форуме подобного не нашел)
    Изображения Изображения

  2. #2
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,242

    По умолчанию

    Цитата Сообщение от 7in Посмотреть сообщение
    Около 7 лет назад AI! выкладывал макрос для управления насосами с ротацией
    Данный макрос (его усеченная версия на 4 насоса) идеально подходит для моей задачи, отрабатывает ровно так, как нужно
    В связи с появлением функциональных блоков на ST в OL появилась идея переписать данный макрос на ST, но к сожалению я так и не смог разобраться в принципе его работы.
    Прошу помощи у более опытных участников форума в данном вопросе.
    Возможно подобное уже было реализовано в CDS и можно это портировать на ПР ? (я на форуме подобного не нашел)
    Странно, если всё работает как хотите, зачем проблемы создавать на ровном месте, на СТ очень неудобно будет, в смысле, нельзя в макрос "спрятать", вот мой вариант, может Вас устроит:

    Аварии.png

    https://owen.ru/forum/showthread.php?t=36564
    Последний раз редактировалось Сергей0308; 27.12.2023 в 09:52.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  3. #3

    По умолчанию

    Цитата Сообщение от 7in Посмотреть сообщение
    Около 7 лет назад AI! выкладывал макрос для управления насосами с ротацией
    Данный макрос (его усеченная версия на 4 насоса) идеально подходит для моей задачи, отрабатывает ровно так, как нужно
    В связи с появлением функциональных блоков на ST в OL появилась идея переписать данный макрос на ST, но к сожалению я так и не смог разобраться в принципе его работы.
    Прошу помощи у более опытных участников форума в данном вопросе.
    Возможно подобное уже было реализовано в CDS и можно это портировать на ПР ? (я на форуме подобного не нашел)
    Для того, чтобы что то написать, нужно знать алгоритм работы, а вы даже не удосужились его расписать.
    Последний раз редактировалось kondor3000; 27.12.2023 в 10:38.

  4. #4

    По умолчанию

    Цитата Сообщение от Сергей0308 Посмотреть сообщение
    зачем проблемы создавать на ровном месте, на СТ очень неудобно будет
    Необходимость переписать на ST появилась в связи с тем, что в других похожих задачах на объекте заложен СПК без ПР и хотелось бы заранее попробовать реализацию на ST(на ПР), т.к. её должно быть легко в будущем перенести на ПЛК/СПК.
    Помимо этого, я (возможно ошибочно) предполагал что реализация на ST позволит без больших усилий увеличить количество насосов с 8 до скажем 16, что тоже возможно пригодится.

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Для того, чтобы что то написать, нужно знать алгоритм работы, а вы даже не удосужились его расписать.
    Действительно, стоило сразу расписать алгоритм:
    На вход ФБ подаются две целочисленные переменные
    1. Битовая маска разрешенных насосов
    2. Необходимое в данный момент количество включенных насосов
    На выходе ФБ соответственно битовая маска на включение насосов
    Сам алгоритм:
    В соответствии с количеством необходимых насосов (поступивших на вход 2) ФБ выдает битовую маску на их включение, при этом включая только разрешённые насосы, начиная с младшего бита в маске.
    Для каждого из насосов считается время наработки, в процессе работы при увеличении кол-ва необходимых насосов включается насос с наименьшей наработкой, в случае уменьшения - отключается насос с наибольшей наработкой. Наработка сбрасывается на 0 при перезапуске ПР.
    Если в процессе работы изменилась битовая маска разрешенных насосов - необходимо включить/отключить насосы, чтобы необходимое количество соответствовало числу активных бит в маске на выходе ФБ.

    Читал множество обсуждений на форуме касательно того, что равномерное распределение наработки между всеми насосами не есть хорошо и приведет к ситуации что в один момент времени выйдут из строя сразу все насосы - я это понимаю и прошу воздержаться от обсуждения данного вопроса, поскольку необходим именно описываемый выше алгоритм.

  5. #5
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,669

    По умолчанию

    Я пробовал макрос AI! переписать в CodeSys 2.3 и... ничего не вышло. Переписывал ессно не в ST а так же в FBD (CFC кажется). Всему виной линия обратной связи, которая используется в макросе ПР.
    Мне даже ребята на форуме помогли сделать аналог "Линии обратной связи" на CDS но работала она не так, как в макросе на ПР. В общем забил тогда, так как под мою задачу ротация по принципам данного макроса для меня была избыточна.
    Делал ротацию по времени переключения для кондиционеров на ПЛК63. В общем делал по другому алгоритму.

    Макрос же AI! высчитывает время работы каждого насоса и оперирует этими данными, который включать, а который нет уже дальше в зависимости от битовых масок количества и аварийных насосов.

    вообще линия обратной связи в ПР работает очень уж хитро, ее сложно повторить на других языках. Это именно в тех режимах работы макроса, когда поведение с линией обратной связи отличается без этой линии (когда она желтым). то есть когда вообще кардинально меняется поведение работы макроса с линией и без.
    Последний раз редактировалось melky; 27.12.2023 в 11:55.

  6. #6
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,242

    По умолчанию

    Цитата Сообщение от 7in Посмотреть сообщение
    Необходимость переписать на ST появилась в связи с тем, что в других похожих задачах на объекте заложен СПК без ПР и хотелось бы заранее попробовать реализацию на ST(на ПР), т.к. её должно быть легко в будущем перенести на ПЛК/СПК.
    Помимо этого, я (возможно ошибочно) предполагал что реализация на ST позволит без больших усилий увеличить количество насосов с 8 до скажем 16, что тоже возможно пригодится.


    Действительно, стоило сразу расписать алгоритм:
    На вход ФБ подаются две целочисленные переменные
    1. Битовая маска разрешенных насосов
    2. Необходимое в данный момент количество включенных насосов
    На выходе ФБ соответственно битовая маска на включение насосов
    Сам алгоритм:
    В соответствии с количеством необходимых насосов (поступивших на вход 2) ФБ выдает битовую маску на их включение, при этом включая только разрешённые насосы, начиная с младшего бита в маске.
    Для каждого из насосов считается время наработки, в процессе работы при увеличении кол-ва необходимых насосов включается насос с наименьшей наработкой, в случае уменьшения - отключается насос с наибольшей наработкой. Наработка сбрасывается на 0 при перезапуске ПР.
    Если в процессе работы изменилась битовая маска разрешенных насосов - необходимо включить/отключить насосы, чтобы необходимое количество соответствовало числу активных бит в маске на выходе ФБ.


    Читал множество обсуждений на форуме касательно того, что равномерное распределение наработки между всеми насосами не есть хорошо и приведет к ситуации что в один момент времени выйдут из строя сразу все насосы - я это понимаю и прошу воздержаться от обсуждения данного вопроса, поскольку необходим именно описываемый выше алгоритм.
    Вы понимаете, что такое наработка насосов? В смысле она не зависит от количества перезапусков ПР.
    И что при изменение готовых(разрешённых) к работе насосов надо их передёргивать(выключать-включать) - это мракобесие, в смысле мой вариант свободен от этих недостатков.
    Так что можно и мой вариант использовать, в смысле, большой разницы не будет.
    Да, чуть не забыл, мой вариант позволяет в случае аварии включать ему на замену другой без всяких передёргиваний насосов, хоть убей не могу понять зачем у вас это сделано, это же очень неудобно!
    И, легко расширяется до 32 насосов, я писал об этом в теме, что ссылку дал, не просто, а очень просто, думаю намного проще чем в СТ!
    Мой алгоритм выполняет равномерное использование готовых к работе насосов!
    Последний раз редактировалось Сергей0308; 27.12.2023 в 12:32.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  7. #7

    По умолчанию

    Цитата Сообщение от Сергей0308 Посмотреть сообщение
    Вы понимаете, что такое наработка насосов? В смысле она не зависит от количества перезапусков ПР.
    И что при изменение готовых(разрешённых) к работе насосов надо их передёргивать(выключать-включать) - это мракобесие
    Что такое наработка я понимаю, что она никак не связана кол-вом перезапусков ПР я тоже понимаю. Я просто хотел обозначить что не нужно считать наработку "за все время", достаточно только с момента включения контроллера.
    Касательно "передёргивать" - возможно некорректно выразился, я под "включить/отключить" подразумевал не перезапуск всех насосов, а то, что если один из работающих насосов ушел в аварию - нужно насос с аварией отключить и включить ему на замену другой из разрешенных.

    Приведенную вами ссылку на ваше решения я изучаю в данный момент, возможно действительно получится применить в моём случае. Спасибо!
    Последний раз редактировалось 7in; 27.12.2023 в 12:43.

  8. #8
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,242

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Редкий случай вменяемого описания.
    Мало того, данное описание самое естественное, что встречается регулярно и чуть ли не каждый день в жизни каждого.
    Согласен, описание хорошее, обычно такое напишут, что сомнения закрадываются в разумности написавшего!
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  9. #9
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,669

    По умолчанию

    Макрос от AI! лучше всего подходит под описание Валенка то есть когда в режиме работы по внешним критериям могут работать 2,3,5 насосов в один момент времени, а через время опять переключаться с 5 на 3 или сразу на 2.
    Например поддержание давления или еще чего-то.

    У меня была простая ситуация, просто ротирование кондиционеров по времени. В конечном итоге они и так равномерно работают, кроме случаев аварии или вывода в обслуживание, но это не критично было.

    В случае с макросом AI! можно сделать обвязку макроса так, что будет назначен всегда один насос в резерв скажем с периодическим включением его в работу раз в месяц например, чтобы не закис и т.д. тогда у одного насоса всегда будет наименьшее время наработки. тот самый горячий резерв на случай полного отключения одного из насосов из системы по поломке или полному обслуживанию. После обслуги или замены этот насос можно сделать резервным и так по кругу...

  10. #10
    Пользователь Аватар для Василий Кашуба
    Регистрация
    20.11.2011
    Адрес
    Ставрополь
    Сообщений
    2,492

    По умолчанию

    Вот упрощённая версия макроса, правда ротация 5-ти насосов.
    Изображения Изображения

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Ротация насосов 3+1
    от K.K. в разделе Среда программирования OWEN Logic
    Ответов: 47
    Последнее сообщение: 29.10.2023, 16:37
  2. Ротация двух насосов
    от Вова13 в разделе ПЛК63/73
    Ответов: 19
    Последнее сообщение: 25.12.2022, 00:13
  3. Чередование насосов (случай для 3-х насосов)
    от 07Fobos в разделе Программируемые реле
    Ответов: 14
    Последнее сообщение: 30.10.2022, 22:04
  4. Ротация пр200
    от GothWind в разделе Программируемые реле
    Ответов: 3
    Последнее сообщение: 30.06.2018, 22:31

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •