Сценарий algo_tank.py набирает ёмкость по двум поплавкам: снизу включает насос (или клапан), сверху выключает. Перелив и слишком долгий набор — авария.

Возможности

  • Нижний уровень — пора набирать. Верхний — бак полный, стоп. Гистерезис получается самой механикой поплавков, без аналогового уровня.
  • Антидребезг 3 с. Короткое плескание не включает и не глушит насос.
  • Авто. Питание «Авто»: при низком уровне пуск, идёт набор, пока не сработает верх. Пока насос уже крутит, низ может отпуститься — набор продолжается до верха.
  • Набор вручную. Однократная команда: крутить, пока не верх (или авария). После верха команда сбрасывается.
  • Перелив (третий контакт) — немедленный стоп, статус «Авария».
  • Противоречие поплавков: низ и верх одновременно — стоп и авария (обрыв, перепутанные провода, залипший контакт).
  • Таймаут набора в минутах: насос слишком долго не дошёл до верха (нет воды на входе, закрыта задвижка, дырявый бак).
  • На экране статус (стоп / набор / полон / авария), секунды текущего набора, флаг низкого уровня. События пуска насоса и «бак полный».

Авто, ручной пуск и таймаут — с Управления.

Сферы применения

Одна ёмкость, насос или клапан набора, три сухих контакта — не АСУТП водоканала.

  • расходный бак, запас воды для полива, мойки, котельной;
  • дождевая или скважинная ёмкость с поплавками вместо дорогого уровнемера;
  • промежуточный бак перед насосной (этот сценарий набирает, давление в сети — соседний algo_pump.py на втором контроллере или после доработки);
  • технологическая ёмкость с «долить до полного» по кнопке оператора.

Не закрывает: непрерывный уровень 4–20 мА / 0–10 В, два насоса с ротацией, учёт объёма, химические реагенты и ПАЗ.

Клеммы

КлеммаНазначение
DO0насос или клапан набора
DI0 НОнизкий уровень (нужно набирать = замкнут)
DI1 НОверхний уровень (полный = замкнут)
DI2 НОперелив (авария = замкнут)