Ну, так, у нас всего два насоса. Расписываем табличку состояний и реализуем
Безымянный.png
Ну, так, у нас всего два насоса. Расписываем табличку состояний и реализуем
Безымянный.png
Так с перспективой расширения до 8 насосов, в принципе можно расширить до 32 насосов без существенного усложнения программы(по ссылке).
На практике ему это на вряд ли понадобится, но он же не один в нашей галактике, в смысле, может у других больше насосов. Кто-то на форуме делал насосную станцию с 12 насосами с периодом ротации в единицы минут, я спросил где это требуется, но товарищ не смог ответить, в смысле, наверно ещё не придумал где такое требуется.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
В вашем примере при "авто" на одном насосе -> таймер не останавливается. И если до конца интервала остается пара секунд и включить "авто" на второй насос, то первый доработает эти пару секунд и переключится на второй. А в моем примере таймер запускается только при "авто" на обоих насосах и отсчитывает полный интервал переключения. На мой взгляд так лучше.
Сделал задание интервала по Modbus и вход аварий. Не могу придумать как считать с Blink сколько осталось до конца отсчета. Чтобы по Modbus прочитать что то типа: "до смены насоса осталось 10 часов".
Может сделать ротацию раз в сутки, например в 9 часов или 2 раза в сутки, в 9 и 21 час или раз в неделю, например в понедельник в 10 часов, короче, суть в том, чтобы время ротации было всем известно, в смысле, не надо смотреть(высчитывать) когда произойдёт ротация.
Если не одумаетесь, таймер с прямым и обратным отсчётом времени здесь выкладывал: https://owen.ru/forum/showthread.php?t=33720&page=17
Последний раз редактировалось Сергей0308; 02.11.2024 в 23:05.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
poligon вам надо использовать таймеры с выходом "время" и энергонезависимые. Это не про штатные FBD лоджика. Ищите реализации. Их есть и в FBD и в ST, народ выкладывал.
А разве часы в ПР перестают работать при мертвой батарейке? Время вроде не сохранят, но при включенном питании вроде будут считать время.
Ну и инициализацию переменных не забудьте. если за батарейку переживаете. Чтобы при выключении питания и включении заменить обнулившиеся сетевые переменные значениями по умолчанию.
Последний раз редактировалось melky; 03.11.2024 в 08:28.
Во-первых это не так, в смысле, ротация останется, изменится только время ротации, а период сохранится.
Если важно и время ротации, что мешает менять батарейку раз в 5 лет?
В этом плане, мне тоже видны преимущества ПР200, в смысле, время можно настроить прямо с экрана ПР, как я понимаю, по сети Вы не планируете синхронизацию времени, иначе такой проблемы и возникнуть не может!
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Пришла мне релюшка. Программа работает. И мне очень нравится. Сейчас чтобы сделать ротацию раз в сутки я выставил в blink "1 день". И если в 10:00 один из насосов перевести в "0" и обратно в "авто", то начнется отсчет "1 суток" и по истечении этого времени будет смена насоса. И так каждый день. Если пропадет питание, то отсчет "1 суток" начнется от времени включения. И вот этот момент мне не нравится. Хотя всё работает.
Да. Похоже так и надо делать.
Сейчас мне нужно заменить блок blink на такой блок:
- возможно задать время срабатывания и интервал в днях;
- должен быть вход Enable. Когда он не активен, то на выходе должен быть 0 и счетчик прошедших дней сброшен. При активации Enable начальное состояние выхода 0. По достижении заданного времени и количества дней переключаться в 1. Снова по достижении заданного времени и количества дней переключаться обратно в 0.
- один выход.
И вот тут я завис. Так и не смог сделать такой вот свой Blink. Проблема с фиксацией состояния на выходе согласно вышеописанного алгоритма. Т.е. как только системное время становится 10:00:00, то на 1 секунду появляется импульс счета. Как только насчитали 3 таких импульса -> переключили выход (для трех дней). Но блок ON_OFF сохраняет своё состояние при снятии Enable и как его при этом обнулить я не понимаю.
Новые ПР100 поддерживают язык ST, готовые блоки на 2-4-8 выходов с ротацией по времени 10 часов, по минимальной наработке, время можно менять.
Последний, 4 насоса_Нараб_Ротация по времени_4 Уровня_7_____ https://owen.ru/forum/showthread.php?t=38920&page=2#13
Уровни можно выбросить, оставить константу 1.
Здесь доработанный Опер таймер с запоминанием наработки на языке ST______ https://owen.ru/forum/showthread.php?t=38721#8
А также блок текущего времени. ФБ (Функц. блоки) на ST, переносятся просто копипастом текста к себе в проект.
Блок ON_OFF - это R_Trig + XOR, первый импульс -включается, 2 -выключается, 3 -опять включается,
чтобы сбросить Блок ON_OFF можно на входе поставить OR, на второй вход OR переменную сброс.
Последний раз редактировалось kondor3000; 21.01.2025 в 13:26.
Сравнительно давно на форуме обсуждали назначение времени ротации, тему не помню(можете поискать), но проект сохранился, в смысле, там можно назначать время ротации:
Дата-Время-Уставка_5.owle
Кроме того делали проект командоаппарата реального времени с маской недели на 32 команды:
Командоаппарат реальногого времени с маской недели на 32 команды 8 канальный_00.owle
Хоть он и 8-и канальный, но память динамическая, в смысле, можно использовать все 32-е команды на один канал.
Здесь подобный, но одноканальный и без маски недели:
Звонок в школе_3.owle
Если просто надо энергонезависимый таймер, здесь выкладывал:
https://owen.ru/forum/showthread.php?t=33720&page=17
И, я так понимаю, Вы принципиально не смотрите, что вам предлагают, в смысле, чем не подходит, что я предлагал и ссылки давал в постах #2 и 8???
Какой тогда смысл, что-то спрашивать?
Последний раз редактировалось Сергей0308; 21.01.2025 в 02:58.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.