Перейти к содержанию

·Naasson Agro

Защита срабатывает в безопасную сторону

Хорошее защитное правило не спасает урожай — оно останавливает автоматику. Разница принципиальная, и она определяет, как выглядит весь остальной код.

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

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

Как это выглядит в правилах

pH ушёл ниже 5,0 или выше 7,0 — дозирование блокируется. Не подаётся встречный реагент, не запускается коррекция. Просто прекращается подача.

EC вышел из диапазона 0,5–3,5 мС/см — то же самое.

Контроллер климата ушёл в офлайн — плановый полив ставится на паузу. Не переходит на «последние известные уставки», не поливает по расписанию вслепую.

Уровень в баке ниже пятнадцати процентов — система советует долить раствор, а не начинает экономить подачу.

Расчётный VPD вне коридора 0,4–1,6 кПа — предлагается пересмотреть климатические уставки. Предлагается человеку, а не выполняется автоматически.

Почему коррекция опаснее остановки

Автоматическая коррекция требует уверенности в трёх вещах одновременно: что измерение верно, что модель отклика верна и что исполнительный механизм сделает именно то, что ему сказали. На объекте с химией и живыми растениями все три посылки регулярно ложны.

Самый частый сценарий — умерший зонд. Датчик pH обрастает и дрейфует, продолжая отдавать правдоподобное число. Система, настроенная на коррекцию, видит «отклонение», подаёт реагент, отклонение по показаниям не уходит, система подаёт ещё. К моменту, когда кто-то заметит, в баке будет не раствор.

Система, настроенная на остановку, в том же сценарии просто перестанет дозировать. Урожай при этом недополучит питание — плохо, но обратимо. Разница между «недокормили три дня» и «сожгли корневую» — это вся разница между двумя подходами.

Цена, которую мы за это платим

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

Мы считаем эту цену честной, потому что она платится в понятной валюте: вниманием оператора. Альтернатива платится в валюте, которую нельзя доплатить потом.

Отдельно: живая химическая дозация в полной конфигурации по умолчанию держится под карантином цифрового двойника. То есть даже правильная команда не уходит на насосы, пока карантин не снят явно. Это ещё один слой той же логики — по умолчанию система ничего не делает с химией.

Правила проверены, а не задекларированы

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

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