Bollywood HungamaDisha Patani turns entrepreneur, launches clothing brand DZ with oversized and space-inspired designsPunchArgentine football fan jailed for threatening Di Maria over returnThe Jerusalem PostAI could accelerate quantum computing breakthrough, Bank of America strategist saysInquirerVelasco’s ‘ex-driver’ appears at NBI, alleges he delivered cash suitcases to DuterteZDF heuteAktuelle Pressemitteilungen des ZDFDaily MaverickHOUSEHOLD SQUEEZE: Fuel levy cut offers brief relief as food basket outpaces SA’s unchanged SRD grantХабрПоддержка нескольких реляционных СУБД в одном проекте: PostgreSQL и MSSQLUOLVolkswagen registra prejuízo trimestral de ? 5,8 bilhõesColliderChris Pratt Officially Returns to Streaming in 1 Month With New Military ThrillerThe RegisterMatrix takes sovereign messaging into the realm of the tech giantsWirtualna PolskaProdukowali "kokainę dla ubogich". Grozi im nawet 20 lat więzieniaRMF24W tych polskich gminach żyje się najgorzej. Oto wyniki rankingu
The Daily Newsstand · Free, Always
Thursday, October 29, 2026

Осетры, Modbus и забытый слив: как я автоматизирую рыбную ферму

Translate
Осетры

Осетры

Меня зовут Ильшат, я занимаюсь технической частью Николо-Владимирской осетровой фермы в городе Октябрьском, Республика Башкортостан. 

Фирменный стиль фермы

Фирменный стиль фермы

Хозяйство работает с 2022 года. На городской площадке мы получаем и инкубируем икру, выращиваем личинок и молодь. Когда рыба достигает массы примерно 500 г, переводим ее в садки на водохранилище.

В городе также расположены зимовальные цеха и бассейны, в которых товарная рыба ждет реализации или обработки. В статье расскажу о системе автоматизации городской площадки, которую я спроектировал и собрал самостоятельно.

Фото с фермы

Технология

Мы выращиваем рыбу в установках замкнутого водоснабжения (УЗВ). Вода постоянно циркулирует: проходит механическую и биологическую очистку, дегазацию, насыщается кислородом. Часть воды испаряется, часть уходит при промывке фильтров, поэтому мы пополняем контур водопроводной водой. Чтобы поддерживать нужную температуру, воду подогреваем.

По мере роста рыбе нужны разные условия. Поэтому на каждой технологической линии мы поддерживаем свой режим.

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

Мы решили автоматизировать контроль этих параметров и управление оборудованием. Сотрудники по-прежнему следят за техпроцессом, но тратят на это все меньше времени.

Я начал с сигнализации о прекращении циркуляции воды: лепестковый датчик с сухим контактом, лампа и звуковой сигнал.

Первая сигнализация: восемь контролируемых зон

Первая сигнализация: восемь контролируемых зон

Сейчас на площадке работает система диспетчеризации с частичной автоматизацией процесса. 

Оборудование

Оборудование я выбирал сам. Прочитал статьи на Хабре, разобрался в функциях модулей и остановился на Wiren Board. Затем изучил движок правил wb-rules и научился писать скрипты. Так и начал собирать систему.

Контроллер и модули ввода-вывода собраны в одном шкафу автоматизации.

Шкаф автоматизации

Шкаф автоматизации

Оборудование шкафа автоматизации

Модель

Кол-во

Описание

Wiren Board 7

1

ПЛК

WBIO-DI-WD-14

3

14-канальный модуль дискретного ввода 

WB-MCM8

5

8-канальный модуль счетных входов для подключения водосчетчиков

WB-MAI6

2

12-канальный модуль аналогового ввода

WB-MR6-LV/I

6

6-канальный релейный модуль с переключающими контактами и высокими пусковыми токами

WB-MR6CU v.2

2

6-канальный релейный модуль

RSC-15E PRO-Screen EKF

1

Панель оператора

На двери шкафа установлена панель оператора EKF, подключенная к контроллеру по RS-485.

У части технологического оборудования есть интерфейс RS-485. С ним контроллер обменивается данными по Modbus RTU. Если оборудование находится далеко от шкафа, я использую преобразователи интерфейсов WB-MGE v.3 и передаю данные по существующей сети Ethernet.

Эти преобразователи помогли и с бюджетными датчиками кислорода: связь с ними давала сбои даже на небольшом расстоянии. Пришлось перейти на Ethernet.

WB-MGE v.3 у бассейна

WB-MGE v.3 у бассейна

На ферме есть два ввода электропитания и автономный генератор. Ими управляет комплектная автоматика, не связанная с Wiren Board. При восстановлении питания все оборудование запускается одновременно, что перегружает источник питания, особенно генератор. Планирую отслеживать переключения вводов и подключать нагрузку последовательно, чтобы избежать перегрузки. 

Контроль уровня воды

Самая частая тревога связана со снижением уровня воды: после промывки фильтров сотрудники иногда забывают вовремя перекрыть слив. Система уже неоднократно обнаруживала такие ситуации и включала тревогу.

В мальковом цехе 60 бассейнов, каждый оснащен поплавковым датчиком уровня. Их сухие контакты я завел на WBIO-DI-WD-14, WB-MCM8 и свободные входы релейных модулей.

Система автоматически берет бассейн под контроль после заполнения. Когда датчик впервые сообщает о наличии воды, скрипт ждет минуту и проверяет его еще раз. Если состояние не изменилось, начинается контроль уровня.

Поплавки удобны, но при мойке бассейнов сотрудники иногда их ломают. Сейчас мы рассматриваем два варианта: защитить поплавок или измерять уровень снаружи емкости. Решение пока не приняли.

Датчики уровня стоят и в сумматорах — так мы называем регулирующие емкости водяного контура. В них контролируем четыре уровня: верхний и нижний рабочие, верхний и нижний аварийные.

Объем подпитки учитываем водосчетчиком с импульсным выходом, подключенным к WB-MCM8. На панели объем добавленной воды отображается в процентах от общего объема воды на линии. Пока этот показатель нужен только для информации.

Контроль циркуляции

Контроллер управляет насосами через частотные преобразователи по RS-485. От них же получает данные о потреблении насосов. 

Частотные преобразователи насосов

Частотные преобразователи насосов

Насосы установлены парами и могут работать в одиночном или парном режиме. В одиночном один насос основной и работает постоянно, второй резервный и включается только при отказе основного. В парном насосы работают попеременно и меняются через заданное время — от 1 до 24 часов. Если один из них откажет, второй продолжит работу в одиночном режиме. Но кислород у нас подается перед насосами, и в парном режиме насос, который стоял на отдыхе, завоздушивался и не мог запуститься. Поэтому сейчас используем одиночный режим.

Резервный насос включается автоматически. Если пропадает сигнал от датчика протока, скрипт проверяет, выдавали ли мы насосу команду остановиться. Если такой команды не было, система запускает резервный насос и выводит уведомление об ошибке на панель. Задержка при переключении составляет около 10 секунд.

Насосы малькового цеха: частота, потребление и режим работы

Насосы малькового цеха: частота, потребление и режим работы

Самым неудобным звеном пока остаются лепестковые датчики потока.

Лепестковый датчик потока

Лепестковый датчик потока

На небольшом расходе мне не удалось добиться от них стабильной работы. Поэтому планирую использовать ультразвуковой расходомер. Он обошелся нам примерно в 6 тысяч рублей. 

Ультразвуковой расходомер

Ультразвуковой расходомер

Контроль загрязнения барабанных фильтров

У барабанных механических фильтров своя автоматика.  

Барабанный механический фильтр

Барабанный механический фильтр

Когда сетка загрязняется, уровень воды перед фильтром поднимается. Срабатывает датчик уровня, барабан поворачивается, а вода из форсунок смывает грязь с сетки в канализацию. Мы не управляем этим процессом через Wiren Board, но собираем сигналы уровня воды перед фильтрами. Если уровень выше ожидаемого, значит, с фильтром что-то не так. 

Регулирование температуры воды

Подогрев воды мы автоматизировали. Вода нагревается в теплообменнике от системы отопления. Шаровый кран с электроприводом открывает и перекрывает подачу теплоносителя. 

Кран с электроприводом

Кран с электроприводом

Скрипт регулирует нагрев по показаниям датчика температуры на трубопроводе. Он работает с гистерезисом: когда температура опускается ниже нижней границы, открывает кран, а при достижении верхней — закрывает. У каждой линии свои уставки и режимы работы.

Термосопротивления подключены через WB-MAI6, краны — через WB-MR6-LV/I.

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

Холодильное оборудование зимовальных цехов пока работает автономно. Планирую подключить холодильную установку к Wiren Board, но руки еще не дошли.

Кислород и качество воды

Концентрацию растворенного кислорода измеряем стационарными датчиками в бассейнах. Они передают данные по Modbus RTU. Сначала для малькового цеха приобрели Supmea SUP-DO-7019 примерно за 80 тысяч рублей. Когда посчитали, сколько будет стоить оснащение остальных линий, решили попробовать более бюджетные датчики — по 12–15 тысяч рублей. 

Два варианта датчиков растворенного кислорода на осетровой ферме. Слева — Supmea SUP-DO-7019, справа — бюджетный датчик

Два варианта датчиков растворенного кислорода на осетровой ферме. Слева — Supmea SUP-DO-7019, справа — бюджетный датчик

Бюджетный датчик передает больше параметров, чем нам нужно, в том числе соленость. Я считываю три: концентрацию растворенного кислорода в мг/л, насыщение в процентах и температуру воды. Их вывожу на панель оператора.

Для автоматического управления концентратором использую концентрацию кислорода. Если она опускается на 1 мг/л ниже уставки, контроллер включает концентратор, а если поднимается на 1 мг/л выше — отключает. Питание концентраторов коммутируют реле WB-MR6CU v.2.

Сами кислородные концентраторы у нас медицинского типа.

Кислородные концентраторы

Кислородные концентраторы

У бюджетных датчиков есть недостатки. Бывало, что внутрь попадала вода и прибор начинал искажать показания. Поэтому сотрудники периодически обходят линии с переносным оксиметром и перепроверяют данные.

Как автоматически выявлять недостоверные показания, мне еще предстоит продумать. При потере связи все проще: драйвер помечает данные как недостоверные.

По Modbus также подключен датчик pH. Его показания выводятся на панель малькового цеха.

Следующий шаг — подключить датчики аммиака и нитритов. Мы их уже приобрели, но пока не подключили.

Интерфейс пользователя

Интерфейс для панели на шкафу я подготовил сам. На общем экране видны цеха и технологические линии. Здесь отображаются температура, поток, концентрация растворенного кислорода, насыщение, pH и состояние оборудования.

Для цехов есть подробные экраны со схемой бассейнов и графиками измеряемых величин.

При тревоге панель показывает, где возникла проблема. Например, сообщение YF_pool13_level относится к уровню воды в бассейне № 13 малькового цеха. Оповещение пока работает только на шкафу: лампы, звуковой сигнал и сообщения на панели. Удаленные уведомления планирую добавить позже.

Экран малькового цеха: параметры воды, бассейны и графики

Экран малькового цеха: параметры воды, бассейны и графики

Еще экраны панели

Что дальше

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

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

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.