Эта страница описывает полный цикл работы «Самовара» в режиме «Ректификация»: от включения и разгона колонны до отбора голов, тела, хвостов и автоматического завершения программы. Описание соответствует прошивке 7.00.
Общая логика режима
В режиме ректификации «Самовар» разделяет спирт-сырец на три фракции: головы, тело и хвосты. Контроллер нагревает куб через SSR-реле, стабилизирует колонну по PID-регулятору и по заданной программе переключает ёмкости для отбора и управляет перистальтическим насосом. Температура контролируется пятью датчиками DS18B20: пар, царга, вода охлаждения, куб, ТСА. Весь процесс визуализируется в веб-интерфейсе, мобильных приложениях Android и iOS и на сайте samovar-tool.ru.
Решение о запуске отбора принимает оператор. После включения режима и подачи питания «Самовар» переходит в состояние «Выключено», ждёт команду и управляет только чтением датчиков. Чтобы запустить процесс, оператор нажимает «Включить питание» — контроллер включает нагрев и начинает разгон колонны.
Состояние «Выключено» и запуск
При выборе режима «Ректификация» или после перезагрузки контроллер остаётся в состоянии «Выключено»: показания датчиков отображаются, но нагрев и насосы выключены. Из этого состояния возможны два перехода:
- «Включить питание» — контроллер включает нагрев в режиме разгона колонны.
- «Калибровка насоса» — отдельный сервисный режим для измерения производительности перистальтического насоса.
Разгон колонны
После нажатия «Включить питание» контроллер переходит в состояние «Разгон» (статус 50, SAMOVAR_STATUS_RECT_ACCEL). В этом состоянии регулятор мощности работает в режиме разгона. Если в сборке включён UART-регулятор мощности (флаг SAMOVAR_USE_POWER в Samovar_ini.h), реле № 4 может включить разгонный ТЭН — он отключится, когда температура в кубе приблизится к порогу открытия клапана воды. Реле для разгонного ТЭНа должно быть с паспортной мощностью минимум на 20 % выше мощности ТЭНа. Если используется модуль-сборка из четырёх реле, разгонный ТЭН можно подключать через реле № 4 — оно управляет контактором или другим реле с нужной мощностью.
Когда температура в кубе достигает 77 °C (константа OPEN_VALVE_TANK_TEMP в Samovar_ini.h), «Самовар» открывает клапан воды охлаждения (реле № 3, RELE_CHANNEL3), отправляет уведомление в мобильное приложение и на сайт samovar-tool.ru и показывает сообщение о подаче воды охлаждения на основном экране.
Стабилизация колонны
Когда температура пара превышает 39 °C (константа CHANGE_POWER_MODE_STEAM_TEMP в Samovar_ini.h), контроллер отключает режим разгона и переходит в режим стабилизации (статус 51, SAMOVAR_STATUS_RECT_STABILIZING). Уведомление об этом отправляется в приложение и на сайт.
В режиме стабилизации «Самовар» ждёт, когда колебания температуры пара станут меньше 0,1 °C в течение 6 минут (отсчёт ведётся по числу опросов датчика, см. alarm.h:463). После этого контроллер переходит в состояние «Стабилизация завершена» (статус 52, SAMOVAR_STATUS_RECT_STABLE), звучит короткий сигнал и приходит уведомление. Если в настройках включён параметр COLUMN_WETTING и wetting_autostart, отбор голов может стартовать автоматически — для этого в скетче задаётся опция автостарта голов после стабилизации.
Состояние «Стабилизация завершена» — точка, в которой оператор принимает решение о запуске программы отбора. Чтобы начать отбор, нужно нажать «Начать отбор» в веб-интерфейсе или в мобильном приложении. После нажатия насос начнёт работать на скорости, заданной в первой строке программы.
Программа отбора: структура строки
Программа отбора — это последовательность строк в текстовом поле на странице «Программа». Каждая строка описывает одну фазу отбора: головы, тело, хвосты, паузу, вспомогательные действия. Формат строки — 5 полей через «;»:
- Тип строки: H (головы), B (тело), C (хвосты), T (пауза), P (пауза-программа), L (Lua-этап).
- Объём отбора в миллилитрах (для строк типа H/B/C) либо длительность в секундах (для пауз).
- Скорость отбора в литрах в час (от 0,001 до 5 л/ч).
- Номер ёмкости для отбора (целое число от 1 до 4).
- Температура отбора в °C. Для голов и хвостов используется автоматически определённая температура тела, для тела — зафиксированная в начале первой строки тела (см. ниже). Значение 0 — определяется автоматически.
- Напряжение на ТЭНе, В (опционально).
Пример строки голов: H;200;0.05;1;0;0 — отбор 200 мл голов со скоростью 0,05 л/ч в ёмкость № 1. Пример строки тела: B;1500;1.5;2;0;0 — отбор 1500 мл тела со скоростью 1,5 л/ч в ёмкость № 2.
Отбор голов
После запуска программы контроллер начинает с первой строки голов. Насос работает на скорости, указанной в строке, контроллер переключает ёмкости в соответствии с номерами, заданными в строках. Когда объём первой строки голов набирается, контроллер переходит к следующей строке программы.
Во время работы любой строки оператор может в любой момент скорректировать скорость отбора — для этого нужно задать новое значение в литрах в час на вкладке «Дополнительно» и нажать «Установить». Минимальная скорость — 0,001 л/ч, максимальная — 5 л/ч.
Отбор тела и фиксация температуры
Когда начинается первая строка тела, контроллер запоминает текущие температуры пара и царги. Эти температуры становятся опорными для всего отбора тела. Их можно скорректировать в любой момент работы строки тела, нажав «Задать Т отбора тела» на вкладке «Дополнительно». Контроллер перезапишет запомненные температуры текущими показаниями датчиков.
Если включена опция «Использовать корректировку давления» (UsePreccureCorrect в Samovar.h), контроллер пересчитывает запомненные температуры отбора тела при изменении атмосферного давления (по датчику BMP180/BMP280/BME280, если он установлен): при понижении давления — понижает, при повышении — повышает, в соответствии с зависимостью температуры кипения спирта от давления.
Строки тела работают, пока не наберётся заданный в программе объём. Если в процессе отбора температуры пара и царги выходят за указанные в настройках пределы, контроллер ставит отбор на паузу. Если включена опция «Использовать корректировку скорости насоса» (useautospeed в Samovar.h), одновременно с паузой контроллер снижает скорость отбора на заданный в настройках процент.
Детектор примесей
В 7.00 встроен детектор примесей, который следит за стабильностью температуры пара и флегмы во время отбора тела. Если колебания температуры превышают порог, заданный для текущей ступени отбора, детектор останавливает отбор до восстановления стабильности. Это защищает от проскока хвостовых фракций в тело. Параметры детектора — в файле impurity_detector.h.
Отбор хвостов
Когда последняя строка тела завершается, контроллер переходит к строкам хвостов, если они есть в программе. Скорость и ёмкость для хвостов задаются в программе. Когда завершается последняя строка хвостов, контроллер переходит в режим ожидания: насос останавливается, регулятор мощности продолжает работать на напряжении, которое использовалось в последней строке хвостов. На основной экран и в уведомления приходит сообщение о завершении программы.
После завершения программы включается режим «работа на себя»: насос остановлен, нагрев продолжается. По умолчанию режим длится 30 минут (константа PROGRAM_DONE_AUTO_POWEROFF_MIN в Samovar_ini.h). За это время оператор может принять решение — выключить колонну или продолжить отбор с другой программой (например, для отбора жирных кислот, если сырьём было зерно). Если по истечении 30 минут оператор не вмешался, контроллер автоматически отключает нагрев. Значение 0 в настройке отключает удержание — питание снимается сразу после завершения программы.
Управление во время отбора
Во время выполнения программы оператор может в любой момент:
- Нажать «Начать отбор» повторно — контроллер перейдёт к следующей строке программы.
- Нажать «Поставить на паузу» — насос остановится, нагрев продолжится.
- Нажать «Продолжить отбор» — программа продолжит выполнение с того же места.
- Изменить скорость отбора на вкладке «Дополнительно» — новая скорость применяется сразу.
- Скорректировать температуру отбора тела на вкладке «Дополнительно» — запомненные температуры будут перезаписаны текущими показаниями датчиков.
Аварийное отключение
Контроллер отключает нагрев и переводит процесс в режим «Авария» при превышении температуры в кубе выше аварийного порога (по умолчанию 100 °C), при потере связи с датчиком куба или пара, а также при срабатывании детектора проскока примесей. Сообщение об аварии отправляется в мобильное приложение и на сайт samovar-tool.ru, отображается на основном экране и в логе. После устранения причины оператор запускает процесс заново.
Где смотреть параметры
- Температура открытия клапана воды —
OPEN_VALVE_TANK_TEMPв Samovar_ini.h. - Температура перехода из разгона в рабочий режим —
CHANGE_POWER_MODE_STEAM_TEMPв Samovar_ini.h. - Удержание «работа на себя» после завершения программы —
PROGRAM_DONE_AUTO_POWEROFF_MINв Samovar_ini.h. - Включение UART-регулятора мощности и разгонного ТЭНа — флаг
SAMOVAR_USE_POWERв Samovar_ini.h. - Пины клапана воды и разгонного ТЭНа — RELE_CHANNEL3 и RELE_CHANNEL4 в Samovar_pin.h.
- Статусы ректификации — SAMOVAR_STATUS_RECT_* в Samovar.h.
- Парсинг программы — rect_program_parse_spec() в program_io.h.
- Детектор примесей — impurity_detector.h.
- Стабилизация колонны — alarm.h, обработчик SAMOVAR_STATUS_RECT_STABILIZING.