Программа задаётся на вкладке «Программа» главной страницы режима
Сыроварение. Каждая строка - один этап, этапы выполняются по порядку. В программе может быть до 30 этапов.
Вкладка «Программа» режима Сыроварение
 Номер этапа
Порядковый номер строки. Этапы выполняются сверху вниз.
|
 Тип этапа
Нагрев, Выдержка, Охлаждение, Перемешивание, Дозирование, Ожидание pH, Ручное действие, Слив, Флокуляция или Lua. При смене типа поля строки сбрасываются на значения по умолчанию.
|
 Значение 1
Целевая температура (для дозирования - объём в мл). Подпись над полем меняется по типу этапа.
|
 Значение 2
Тайм-аут этапа в минутах; для выдержки - время выдержки, для перемешивания - длительность.
|
 Значение 3
Для нагрева - скорость в °C/мин, для выдержки - общий тайм-аут, для ожидания pH - целевой pH, для флокуляции - множитель флока, для дозирования - скорость или компонент. Для ручного действия на этом месте список действий.
|
 Мешалка
Устройство мешалки: NONE, RELAY (реле №2), I2C (плата I2CStepper) или «I2C, реверс после паузы».
|
 RPM
Обороты мешалки I2C. Для RELAY и NONE - 0. Направление вращения выбирается в соседнем списке.
|
 Работа, с
Время работы мешалки в секундах. 0 - мешалка включена весь этап.
|
 Пауза, с
Пауза между включениями. 0 при заданной работе - мешалка включится один раз.
|
 Датчик / Способ
Датчик температуры, по которому работает этап (Куб, Вода, Царга, Пар, ТСА). Для дозирования - способ: «Вручную», «Локальный шаговый двигатель», «По шагам» или «I2C-насос».
|
 Добавить строку
Вставляет новый этап после текущей строки.
|
 Удалить строку
Удаляет строку. Последнюю оставшуюся строку удалить нельзя.
|
 Применить программу
Проверяет все строки и отправляет программу в Самовар. Рядом - «Экспорт» в файл и «Импорт» из файла.
|
При смене типа этапа поля строки сбрасываются на значения по умолчанию для этого типа, а ненужные поля скрываются. Значения проверяются при применении: температура - больше 0 и не выше 150°C, время - больше 0 и не больше 1440 мин. При ошибке выводится сообщение «Проверьте поля этапа N.», на Самовар такая программа не отправляется.
Применить программу - отправить программу в Самовар; после приёма появляется сообщение «Сырная программа применена.». Пока идёт варка, на вкладке «Процесс» используется последняя применённая программа, а не неприменённые правки.
Экспорт - скачать программу в файл cheese-program.txt.
Импорт - загрузить программу из текстового файла. Файл проверяется так же, как строки редактора; при ошибке («Ошибка в этапе N.», «В программе больше 30 этапов.») текущая программа не меняется. Загруженную программу нужно применить.
Формат строки
В файле и в памяти Самовара строка хранится в виде шести полей через точку с запятой:
Тип;Значение1;Значение2;Значение3;Мешалка;Значение4
Смысл полей «Значение1-4» зависит от типа этапа (см. таблицу ниже). Поле «Мешалка» - четыре числа через ^: устройство^обороты^работа, с^пауза, с. У этапа «Lua» на месте мешалки записаны имя файла сценария и его параметры через ^. Например:
H;63;90;1;1^0^0^0;0 - нагрев до 63°C со скоростью 1°C/мин, тайм-аут 90 мин, мешалка через реле работает весь этап, датчик «Куб»;
M;0;1;0;1^0^30^0;0 - перемешивание: мешалка через реле включается один раз на 30 с;
W;0;15;1;0^0^0^0;0 - ручное действие «Внести закваску», ждать подтверждения не дольше 15 мин;
N;32;120;6.4;0^0^0^0;0 - держать 32°C, пока pH не опустится до 6,4, не дольше 120 мин;
F;32;60;2.5;0^0^0^0;0 - флокуляция при 32°C с множителем 2,5, тайм-аут 60 мин.
Типы этапов
Во всех этапах, кроме «Перемешивание» и «Lua», поле «Тайм-аут, мин» - предельное время этапа: если этап не завершился за это время, сыроварение останавливается. «Датчик» - датчик температуры, по которому работает этап: «Куб», «Вода», «Царга», «Пар» или «ТСА». Температура считается достигнутой, когда показание датчика держится в пределах ±0,3°C от цели 10 секунд подряд.
H - Нагрев. Поля: «Цель, °C», «Тайм-аут, мин», «Скорость, °C/мин», «Датчик». Уставка нагрева поднимается от начальной температуры с заданной скоростью, пока не дойдёт до цели. Этап завершается, когда датчик достиг цели.
P - Выдержка. Поля: «Цель, °C», «Выдержка, мин», «Общий тайм-аут, мин», «Датчик». Самовар держит цель. Время выдержки засчитывается полностью, пока температура отличается от цели не больше чем на допуск. Допуск - поле «Вылет за уставку» датчика этапа (для датчиков воды и ТСА - «Уставка») на вкладке
Настройки - Температура: от 0,3°C до 3°C, значение меньше 0,3°C (в том числе 0) считается как 0,3°C. При недогреве больше допуска время засчитывается частично - тем меньше, чем больше недогрев; при недогреве 3°C и больше, а также при перегреве выше допуска время не засчитывается совсем: приходит сообщение «Выдержка приостановлена: температура вне полосы», после возврата - «Выдержка продолжена». Этап завершается, когда накоплено заданное время. Общий тайм-аут отсчитывается от начала этапа и не может быть меньше выдержки; при его истечении - остановка «Тайм-аут выдержки».
C - Охлаждение. Поля: «Цель, °C», «Тайм-аут, мин», «Датчик». Нагрев выключен; пока температура выше цели, подаётся охлаждающая вода (выше цели более чем на 1°C - полный поток, ближе - минимальный). Этап завершается, когда датчик достиг цели; охлаждение при этом выключается. Требуется схема охлаждения «насос» или «два клапана».
M - Перемешивание. Поле: «Длительность, мин». Мешалка обязательна. Этап завершается по истечении длительности, а если у мешалки задано время работы без паузы - сразу после того, как она отработала это время один раз. Тайм-аута у этапа нет.
D - Дозирование. Поля: «Объём, мл», «Тайм-аут, мин», «Способ» и третье поле, зависящее от способа.
«Вручную» - третье поле «Компонент» (тот же список, что у ручного действия). Самовар ждёт, пока сыровар внесёт компонент и нажмёт «Подтвердить».
«Локальный шаговый двигатель» - третье поле «Скорость, мл/мин». Объём подаётся штатным перистальтическим насосом Самовара; объём и скорость переводятся в шаги по калибровке насоса, поэтому насос должен быть откалиброван (
Насос).
«По шагам» - первое поле называется «Количество шагов» (целое число от 1), третьего поля нет. Штатный шаговый двигатель делает заданное число шагов со скоростью
CHEESE_DOSER_STEP_SPEED (по умолчанию 8000 шагов/с); калибровка в мл не нужна.
«I2C-насос» - третье поле «Скорость, мл/мин». Объём подаёт насос на плате
I2CStepper, объём и скорость пересчитываются по его калибровке; насос должен быть подключён, иначе программа не запустится.
При автоматических способах этап завершается, когда насос подал заданный объём (сделал заданное число шагов). Варианты дозаторов описаны на странице
Дозаторы добавок.
N - Ожидание pH. Поля: «Температура, °C», «Тайм-аут, мин», «Целевой pH», «Датчик». Самовар держит температуру и следит за датчиком pH. Этап завершается, когда pH не выше цели 30 секунд подряд. Если показание pH недостоверно (нет данных или вне 0-14) дольше 10 секунд, сыроварение останавливается с сообщением «pH недостоверен 10 секунд». Для этапа нужна сохранённая
калибровка pH.
W - Ручное действие. Поля: «Тайм-аут, мин», «Действие». Самовар ничего не делает (кроме мешалки, если она задана) и ждёт нажатия «Подтвердить». Список действий: «Внести закваску», «Внести фермент», «Внести добавку», «Разрезать сгусток», «Переложить в формы», «Начать или изменить прессование», «Перевернуть сыр», «Другое действие». Название действия служит подсказкой в программе, в строке состояния Самовар показывает только «Ручное действие».
S - Слив. Поле: «Тайм-аут, мин». Открывается клапан слива (реле №4) и Самовар ждёт нажатия «Подтвердить». Клапан закрывается при переходе к следующему этапу. Мешалка на этом этапе не задаётся.
F - Флокуляция. Поля: «Рабочая температура, °C», «Тайм-аут, мин», «Множитель флока», «Датчик». Самовар держит температуру после внесения фермента и ждёт, пока сыровар заметит флок (начало свёртывания молока) и нажмёт «Следующий этап». По этому нажатию Самовар фиксирует время флокуляции от начала этапа, умножает его на множитель (число не меньше 1) и сам переходит к следующему этапу, когда от начала этапа пройдёт расчётное время резки. Повторное нажатие «Следующий этап» после фиксации переходит дальше сразу. На вкладке «Процесс» в это время показывается «Ожидание фиксации, до тайм-аута …», после фиксации - «Флок …, до резки …». Если флок не зафиксирован до тайм-аута, сыроварение останавливается с сообщением «Тайм-аут флокуляции»; если расчётный момент резки позже тайм-аута - «Расчётный момент резки позже тайм-аута флокуляции». Сообщение «Флок зафиксирован: N с» вместе с множителем уходит на сервер и записывается в журнал варки сыра этой сессии на сайте samovar-tool.ru.
L - Lua. Поле: «Тайм-аут, сек». Запускается сценарий из файла, выбранного в окне «Lua-этап» (файл .lua из памяти Самовара, кроме script.lua и файлов кнопок btn_*.lua; там же задаются тайм-аут и параметры, которые сценарий получит в таблице arg, см.
Lua). Чтобы перейти к следующему этапу, сценарий должен вызвать
setNextProgram(). Если сценарий закончился без этого вызова, с ошибкой или не уложился в тайм-аут, сыроварение останавливается. Перед запуском программы с этапом «Lua» Самовар проверяет, что в памяти есть Lua-файл, указанный в строке этапа. Мешалка на этом этапе не задаётся.
Мешалка
Мешалка задаётся в каждой строке отдельно и работает только во время этого этапа. Пять полей:
Мешалка - устройство: «NONE» - без мешалки; «RELAY» - реле №2 (включено/выключено); «I2C» - шаговый двигатель на плате
I2CStepper. «I2C, реверс после паузы» - то же, но после каждой паузы направление вращения меняется; для него работа и пауза должны быть больше 0. Для «I2C» плата должна быть подключена, иначе программа не запустится.
RPM - обороты для «I2C», целое число от 1 до 65535. Для «RELAY» и «NONE» должно быть 0.
Направление - «Прямое» или «Обратное», только для «I2C» (для реверса - начальное направление). В файле обратное направление записывается отрицательными оборотами (например 2^-120^0^0).
Работа, с и Пауза, с - расписание. Работа 0 - мешалка включена весь этап. Работа больше 0, пауза 0 - мешалка включается один раз на заданное время и выключается. Работа и пауза больше 0 - мешалка чередует работу и паузу до конца этапа. Пауза без работы не допускается.
При переходе к следующему этапу мешалка останавливается и включается заново по настройкам новой строки.