PDA

Просмотр полной версии : Чередование трех насосов



Shum_off
13.03.2025, 12:43
День добрый, пишу программу, для работы трех насосов по датчику 4-20 мА, с авариями
Написал код для аварий, для датчика 4-20 мА
А вот с чередованием возникла трудность
Необходимо, чтобы они чередовались, допустим каждые 12 часов по наработке.
Закину сюда проект, кому не сложно подтолкните мысленно хотя бы как реализовать)

CleanS
13.03.2025, 12:59
Поиск на форуме работает.
Забив название вашего топика выдало целый список тем.
https://owen.ru/forum/showthread.php?t=29067&p=282264&viewfull=1#post282264
одна из них, с 2018 года ждёт вас...

1exan
13.03.2025, 13:00
День добрый, пишу программу, для работы трех насосов по датчику 4-20 мА, с авариями
Написал код для аварий, для датчика 4-20 мА
А вот с чередованием возникла трудность
Необходимо, чтобы они чередовались, допустим каждые 12 часов по наработке.
Закину сюда проект, кому не сложно подтолкните мысленно хотя бы как реализовать)

Не вы первый не вы последний - вбейте в поиске на форуме "ротация"

kondor3000
13.03.2025, 13:06
День добрый, пишу программу, для работы трех насосов по датчику 4-20 мА, с авариями
Написал код для аварий, для датчика 4-20 мА
А вот с чередованием возникла трудность
Необходимо, чтобы они чередовались, допустим каждые 12 часов по наработке.
Закину сюда проект, кому не сложно подтолкните мысленно хотя бы как реализовать)

Вот готовые примеры на 4 насоса, можно сделать и 3, с авариями, наработкой и ротацией через 10 часов (можно изменить) https://owen.ru/forum/showthread.php?t=38920&p=426052&viewfull=1#post426052

Сергей0308
13.03.2025, 13:52
День добрый, пишу программу, для работы трех насосов по датчику 4-20 мА, с авариями
Написал код для аварий, для датчика 4-20 мА
А вот с чередованием возникла трудность
Необходимо, чтобы они чередовались, допустим каждые 12 часов по наработке.
Закину сюда проект, кому не сложно подтолкните мысленно хотя бы как реализовать)

Вот посмотрите мой вариант, в смысле, может что пригодится: https://owen.ru/forum/showthread.php?t=36564&p=385145&viewfull=1#post385145
Насколько понимаю вам должно подойди, даже более того, с большими перспективами развития!

SashkE
23.03.2025, 22:55
День добрый. Могу ли я ворваться в обсуждение данной темы? Точнее обратиться за советом или помощью.

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

82633

I1 - Команда включения
I2-4 - Аварии насосов 1-3
O1-3 - Включение насосов 1-3

Сергей0308
24.03.2025, 01:13
День добрый. Могу ли я ворваться в обсуждение данной темы? Точнее обратиться за советом или помощью.

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

82633

I1 - Команда включения
I2-4 - Аварии насосов 1-3
O1-3 - Включение насосов 1-3

Чем мой вариант не устроил? В смысле, у меня есть вариант с ротацией по внешнему сигналу или Вы пока не посмотрели?

SashkE
24.03.2025, 06:22
Видел Ваши работы. Но для меня они кажутся сложными. Думал сделать что то проще. Пока не понимаю блоки Extract, Putbit, DC32 и им подобных. Как никак новичок.

EFrol
24.03.2025, 08:03
День добрый. Могу ли я ворваться в обсуждение данной темы? Точнее обратиться за советом или помощью.

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

82633

I1 - Команда включения
I2-4 - Аварии насосов 1-3
O1-3 - Включение насосов 1-3

А Вы проверяли? Ваша схема по времени проводит ротацию?

SashkE
24.03.2025, 08:12
Да, проверял в симуляции. Каждый день в 12 часов счетчик увеличивается на 1. Доходя до 3 сбрасывает в ноль и по кругу. Не знаю как сделать вариант с авариями.

Валенок
24.03.2025, 08:23
.. . Не знаю как сделать вариант с авариями.
Видимо делать (или смотреть) что то более сложное, чем "проще"

kondor3000
24.03.2025, 08:49
Не знаю как сделать вариант с авариями.

Есть же готовые варианты, мой тут, количество насосов, аварий и время ротации меняется.
https://owen.ru/forum/showthread.php?t=38920&p=426052&viewfull=1#post426052

Сергей0308
24.03.2025, 08:52
Видел Ваши работы. Но для меня они кажутся сложными. Думал сделать что то проще. Пока не понимаю блоки Extract, Putbit, DC32 и им подобных. Как никак новичок.

Я конечно понимаю, что хочется во всём разбираться, но если пока не разобрались, это же не помешает этим пользоваться, я же практически готовый для вас проект выложил:

82653

вход ротации есть, подаёте на него сигнал логической единицы в нужное вам время и дело с концом!
Так и вариант формирования этого сигнала можно посмотреть в другом моём проекте:

82636

Вам ничего думать не надо!

SashkE
24.03.2025, 08:59
Готовые работы дело одно. Надо еще в них разобраться или каждый раз писать в теме по всем вопросам работы. А хотелось бы создать свое, конкретно под ту или иную задачу.

А как у Вас сделан алгоритм работы аварий?

kondor3000
24.03.2025, 09:03
Готовые работы дело одно. Надо еще в них разобраться или каждый раз писать в теме по всем вопросам работы. А хотелось бы создать свое, конкретно под ту или иную задачу.

А как у Вас сделан алгоритм работы аварий?

Скачать пример и посмотреть в эмуляции для начала, что вам пример подходит. Если будут вопросы, спрашивайте.
Extract, Putbit нужны для распаковки и упаковки бит в Маску бит, до 16 штук в 1 регистр, на ST ещё проще, через точку.

EFrol
24.03.2025, 09:09
Готовые работы дело одно. Надо еще в них разобраться или каждый раз писать в теме по всем вопросам работы. А хотелось бы создать свое, конкретно под ту или иную задачу.

А как у Вас сделан алгоритм работы аварий?

Так же как и у Вас! Вы же каким-то образом связали событие наступления нужного времени с необходимость произвести переключение.
Что Вам мешает выделить событие "наступление аварии" в действие "произвести переключение".
Вы хотите сказать, что не можете связать выбор селектора и неработающего двигателя с аварийным признаком?

EFrol
24.03.2025, 09:20
Если селектор произвел выбор двигателя для запуска, а запуск не произошел - это можно считать аварией?
82637

SashkE
24.03.2025, 09:25
Как вариант. Мне больше интересно как сделать переход от насоса который работал и ушел в аварию на следующий? И если вдруг заменят или устранят причину аварии, снова включился тот который работал. Добавлением +1 к счетчику думаю не вариант.

In_Da_Cher_A
24.03.2025, 09:26
Надо еще в них разобратьсяоказывается, списать чужой труд мало, оказывается самому надо думать :D

а вы и есть за меня будете? - Ага?

EFrol
24.03.2025, 09:33
Как вариант. Мне больше интересно как сделать переход от насоса который работал и ушел в аварию на следующий? И если вдруг заменят или устранят причину аварии, снова включился тот который работал. Добавлением +1 к счетчику думаю не вариант.

Т.е. взять все аварии и на следующем цикле преобразовать их в переключение для Вас сложно?
82638

SashkE
24.03.2025, 09:46
Вот я как раз так и думал(даже делал), но не туда поставил поэтому не получилось.

Не много не туда ставил, и исход уже не тот. Вечером попробую. Спасибо

SashkE
24.03.2025, 22:52
В итоге получилось сделать, то что было задумано(я так думаю)
82656
Спасибо за помощь всем кто откликнулся. Выложу тут, может кому понадобится.

Сергей0308
24.03.2025, 23:02
Видел Ваши работы. Но для меня они кажутся сложными. Думал сделать что то проще. Пока не понимаю блоки Extract, Putbit, DC32 и им подобных. Как никак новичок.

Это называется упростили?
Ещё надо учитывать что у меня для 8 насосов в составе насосной станции и могу не просто, а очень просто расширить до 32 насосов, а у Вас на три насоса и уже выглядит намного сложней моего варианта, короче, нет слов!
И это мы ещё косяки ваши не смотрели и не исправляли, например что будет если в назначенный час ротации свет моргнёт?

EFrol
25.03.2025, 08:07
Для новичка пойдет. С годами придёт опыт. Это всё упростится раз в 100. Ну, и красиво оформится.
Пытался видимо избавиться от циклических связей?!

melky
25.03.2025, 08:21
Кучу И, ИЛИ, НЕ с И(ИЛИ) можно заменить макросами Boolean, если найдете (выкладывал не раз) и уже сократится простыня программы. правда понимания с первого взгляда не будет :)

Dimensy
25.03.2025, 12:22
Немного неправильный алгоритм - если один насос в аварии, то из двух оставшихся один будет в два раза больше по ротации работать

Валенок
25.03.2025, 16:26
Непонятно зачем на часы вообще смотреть. Подменили аварийный за 1 минуты до часа X и опять?

---
Может автор про ST не в курсе?

Сергей0308
25.03.2025, 18:06
Непонятно зачем на часы вообще смотреть. Подменили аварийный за 1 минуты до часа X и опять?

---
Может автор про ST не в курсе?

Явно не в курсе про ST, в смысле, не знает что это такое!

Валенок
25.03.2025, 18:44
Явно не в курсе про ST, в смысле, не знает что это такое!
Ну ничего. Когда нибудь сделает шаг вперед

По самые по...
25.03.2025, 19:54
Это называется упростили?
... короче, нет слов!
И это мы ещё косяки ваши не смотрели и не исправляли, например что будет если в назначенный час ротации свет моргнёт?

О!!! Наконец-то задан правильный технологический вопрос!!! А то 8...13...25-ть.. Сразу видно, хлебнул горя.. :)

SashkE
25.03.2025, 20:50
Сергей0308 - Навыков пока нет, как смог - так сделал. Каковы шансы такого момента? Даже если просто моргнёт, то чаще всего питание через блок питания 24В, и вряд ли вырубился бы контроллер. Посмотрите, комментарии были бы кстати.

EFrol - До чего додумал. Циклическая связь была с самого начала только на сброс счетчика. Она и осталась.

melky - Возможно и можно было бы, был бы опыт.

Dimensy - Задача работников быстро решить проблему аварий. Ну и такое было ТЗ по созданию алгоритма.

Валенок - Всё верно. Про ST знаю, но не умею. Не изучал. Вот дальше буду изучать.

Сергей0308 - Узнал, но надо изучать данный вопрос, да и по FBD есть вопросы.