Осталось ... написать код
... и в этом есть определенная проблема.
Главное назначение модуля управления насосом не столько регулировать подачу, сколько следить за неприятностями и предотвращать их, меняя подачу. А если не получается - остановить насос и нагрев.
Неприятностей может быть две - браги много и браги мало. Первая неприятность имеет две разновидности - браги настолько много, что спирт доходит до кипятильника (при этом ползет вниз нижняя температура), и браги настолько много, что она готова проскочить в самогон (при этом ползет вниз верхняя температура).
Со второй неприятностью проще. Если браги нет или мало, температура пара (верхняя температура) начинает резко расти.
Чтобы не допустить потерь спирта или работы с сухим ТЭНом, достаточно установить три пороговых значения температуры, для первой неприятности - две минимальных, для второй - одну максимальную. И если температуры верха и низа пересекут эти пороги, выйдут из заданного коридора, МУП должен остановить процесс.
Но возникает вопрос - что делать при запуске? Колонна еще холодная, если МУП сразу начнет контроль неприятностей, он тут-же увидит, что температуры низкие, решит, что браги слишком много, и остановит работу. Запуститься не получится.
Что делать? Разбивать работу на этапы, придумывать что должно происходить на каждом из этапов, и находить критерии перехода от одного этапа к другому. Для разных конструкций кипятильников и колонн эти этапы и эти критерии не могут быть одинаковыми, поэтому применить "в лоб" прошивку от моей НБК не получится - будут или ложные тревоги, или наоборот...
В моей НБК все начинается с этапа разогрева до выхода пара из кипятильника. Потом следует этап заполнения бражной линии. За ним этап начального поиска оптимальной подачи и только после этого начинается нормальная работа, которая, впрочем, тоже не однородная, тоже состоит из периодически меняющихся этапов... для переходов между этапами я использую как абсолютные значения температур, так и их поведение ( например, ожидаю моменты стабилизации температур).
К чему я клоню... Пока я вижу только как для затопленной колонны сделать этап нормальной работы, когда колонна уже прогрета и насыщена спиртом. Я уже писал об этом, повторю.
Будет вилка температур, зона пропорциональности.
Будет вилка подач - максимально и минимально допустимые значения.
Пока температура будет находиться в этой вилке, подача будет пропорциональна удалению от краёв коридора. При выходе за пределы коридора, подача будет оставаться минимально или максимально разрешенной. Если же она выползет за аварийные пороги, произойдет отключение.
О том, как надо управлять подачей на старте, я пока не знаю. Поэтому пока предлагаю такой вариант.
Будет два режима - ручной и автоматический. В ручном режиме можно будет менять подачу и смотреть температуры. Никакого автоматического изменения подачи и никакого контроля порогов не будет.
Когда работа колонны нормализуется, надо будет вручную (или по сети) включить автоматический режим. Тогда система заработает так, как я описывал. Со временем, когда накопится лог-информация, можно будет подумать об автоматизации не только режима нормальной работы, но и режима разгона.