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

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

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

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

  2. #2

    По умолчанию

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

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

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

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

    По умолчанию

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


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


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

  4. #4

    По умолчанию

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

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

  5. #5

    По умолчанию

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

    Читал множество обсуждений на форуме касательно того, что равномерное распределение наработки между всеми насосами не есть хорошо и приведет к ситуации что в один момент времени выйдут из строя сразу все насосы - я это понимаю и прошу воздержаться от обсуждения данного вопроса, поскольку необходим именно описываемый выше алгоритм.
    Вот накидал для 4 насосов, на ST, при желании можно расширить до 16 и больше. Кроме маски аварий и кол-ва необходимых насосов, 1 Работа насосов.jpg
    вывел наработку по 4 насосам в секундах (можно сделать в минутах и часах). Наработка считается как Нараб=Часы*10000+Мин*100+Сек.
    Если наработка не нужна, можно её убрать на выходах. Переключаться будет всё равно.
    Ротация происходит через 10 часов ( можно изменить), по минимальной наработке. При аварии переключается на следующий исправный насос.
    При включении ПР наработка сохраняется, сброс сделать не проблема, например по таймеру ТР на 0,5 сек ( ручной сброс есть).
    Вложения Вложения
    Последний раз редактировалось kondor3000; 30.12.2023 в 23:08.

  6. #6

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Вот накидал для 4 насосов, на ST, при желании можно расширить до 16 и больше. Кроме маски аварий и кол-ва необходимых насосов, 1 Работа насосов.jpg
    вывел наработку по 4 насосам в секундах (можно сделать в минутах и часах). Наработка считается как Нараб=Часы*10000+Мин*100+Сек.
    Если наработка не нужна, можно её убрать на выходах. Переключаться будет всё равно.
    Ротация происходит через 10 часов ( можно изменить), по минимальной наработке. При аварии переключается на следующий исправный насос.
    При включении ПР наработка сохраняется, сброс сделать не проблема, например по таймеру ТР на 0,5 сек ( ручной сброс есть).
    kondor3000, не подскажите, как переменную РТ1 сделать входящей, хотелось бы из меню задавать время ротации?
    Последний раз редактировалось Urfin_Dzhyus; 26.03.2025 в 14:07.

  7. #7

    По умолчанию

    Цитата Сообщение от Urfin_Dzhyus Посмотреть сообщение
    kondor3000, не подскажите, как переменную РТ1 сделать входящей, хотелось бы из меню задавать время ротации?
    Только берите последний пример с запоминанием наработки. https://owen.ru/forum/showthread.php...l=1#post426052
    Достаточно задачу PT1 перенести из VAR в VAR_INPUT, потом обновить ФБ по ПКМ и все дела)
    Последний раз редактировалось kondor3000; 26.03.2025 в 14:40.

  8. #8

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Только берите последний пример с запоминанием наработки.
    Достаточно задачу PT1 перенести из VAR в VAR_INPUT, потом обновить ФБ по ПКМ и все дела)
    Спасибо, всё заработало.

  9. #9

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Только берите последний пример с запоминанием наработки. https://owen.ru/forum/showthread.php...l=1#post426052
    Достаточно задачу PT1 перенести из VAR в VAR_INPUT, потом обновить ФБ по ПКМ и все дела)
    Э...заработало, на третьем примере, он открытым был, а я поспешил. Возможны последствия, просто интересно?

  10. #10

    По умолчанию

    Цитата Сообщение от Urfin_Dzhyus Посмотреть сообщение
    Э...заработало, на третьем примере, он открытым был, а я поспешил. Возможны последствия, просто интересно?
    Третий пример 4 насоса_Нараб_Ротация по времени_4 Уровня_7 не запоминает наработку при выключении питания ПР.
    Если вам не надо запоминать наработку, то можно использовать.

Страница 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

Ваши права

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