27 МОСКОВСКАЯ ВСТРЕЧА
Форум самогонщиков Сайт Барахолка Магазин 27 МОСКОВСКАЯ ВСТРЕЧА

Полная автоматизация дробной дистилляции на Raspberry Pi

Форум самогонщиков Автоматика
1 2 3 4 4
Esc Профессор Москва 2.1K 2.1K
Отв.60  03 Марта 20, 12:13
Думал-думал, как механизировать игольчатый краник... А тут внезапно так, мысля пролетела, и вот оно разделение по фракциямJarik_G, 20 Янв. 20, 12:29
С помощью двух трехходовых получить три струи (головы, тело, хвосты), как бы и неплохо, но только на первый взгляд...
Рассмотрим, для примера следующую схему.
Безымянный.png
Безымянный. Полная автоматизация дробной дистилляции на Raspberry Pi. Автоматика.

Допустим ты при помощи УНО (узел нижнего отбора), планируешь отбирать хвосты, не загоняя бяку в вышестоящее оборудование. И как с этой хотелкой совладает "твой" модуль из двух треходовых клапанов?

Намекаю, что со временем у тебя появится на оборудовании несколько писюнков. И из каждого надо будет отбирать содержимое, причем желательно с разной скоростью. ИМХО, автоматика умеющая управлять отбором фракций с помощью нескольких клапанов, минимум 4 (у меня на данный момент 6) - оптимальный вариант "на вырост".
Jarik_G Студент Мишкино 33 7
Отв.61  03 Марта 20, 14:09
Все правильно! На нижний отбор будет отдельный клапан. Отбор "легких" хвостов будет производиться из верхнего отбора. Нижний отбор это отдельный писюн и из него капает, очень медленно, капает практически масло. Одна капля через 7-10 секунд. Там собираются атомные хвосты! Я был очень удивлен, когда перегонял ром из мелассы на второй раз. Из абсолютно прозрачного СС, нижний отбор выжимал маслянистую жижу кофейного цвета! Теперь без нижнего не работаю.
Esc Профессор Москва 2.1K 2.1K
Отв.62  03 Марта 20, 17:12
На нижний отбор будет отдельный клапан. Отбор "легких" хвостов будет производиться из верхнего отбораJarik_G, 03 Марта 20, 14:09
Сказав "А", переходим к следующей букве. Предположим, что твоя жаба, таки разрешила приобретение ЦП (царги пастеризации). И "головную" фракцию ты начинаешь брать из ДЕФа над ЦП. Тело и "легкие" хвосты с места к которому в данный момент прикручены два трехходовика. Не я понимаю, что на данный момент эта сладкая парочка (два треходовика + управляющий скоростью отбора клапан) тебя устраивают. Но это не универсальная комбинация.
ИМХО, намного приятнее иметь в автоматике "дохрена" выходов на клапана из которых собираем необходимую комбинацию отбора фракций. А еще если клапана сидя на ШИМе умеют управлять скоростью отбора - вообще песня.

P.S.
Согласен, что для автоматики "дробной дистилляции" можно обойтись минимумом клапанов. Но мы же имеем привычку расти, как впрочем и наша лень.

Кстати, вот мой вариант устройства один вход - три выхода (аналог твоих двух трехходовиков + управляющий клапан).
oborydovanie.9.png
Oborydovanie. Полная автоматизация дробной дистилляции на Raspberry Pi. Автоматика.

Конкретно этот клапанный модуль юзаю на джине (головы, тело, хвосты).
Jarik_G Студент Мишкино 33 7
Отв.63  25 Марта 20, 14:31
А что за расширение файлов *.play ? Например cooker.play или dib-body-continue.play
Distibot Dad Студент Санкт-Петербург 27 7
Отв.64  25 Марта 20, 15:22, через 52 мин
Это мой формат сценария дистилляции, в котором описана последовательность шагов.
Столбцы:
1. Температура
2. метка температурного датчика (см. https://github.com/...t.conf.template секцию [tsensors]. Например, для ts_boiler_id=xxxxxx метка будет boiler)
3. имя метода питоновского класса Distibot (файл https://github.com/vscherbo/distibot/blob/master/distibot.py), который будет запущен при достижении датчиком из п.2 порога из п.1
4. после знака # комментарий.

Добавлено через 5ч. 49мин.:

Например cooker.play или dib-body-continue.playJarik_G, 25 Марта 20, 14:31
Кстати, перечислены нетипичные сценарии. cooker.play - вообще, какой-то рудимент.
dib-body-continue.play - на скорую руку слепленный сценарий, когда нужно было продолжить процесс после вынужденной остановки (причины не помню).
Типичные:
dib-low-wine-from-wash.play - СС из браги
dib-body-from-low-wine.play - тело (конечно, отдельно головы и хвосты) из СС
dib-body-from-tails.play - тело из хвостов
Jarik_G Студент Мишкино 33 7
Отв.65  26 Марта 20, 06:13
Хотелось бы выделить только нужные файлы для работы дистиллятора и увидеть их взаимодействие, а так же последовательность исполнения. Начал изучать Python, но знаний пока не хватает, чтобы разобраться. Параллельно подготовил индукционку к управлению через модуль из 4 реле. Так же испытал ds18b20 через терминал.
Distibot Dad Студент Санкт-Петербург 27 7
Отв.66  01 Апр. 20, 22:30
Хотелось бы выделить только нужные файлы для работы дистиллятора и увидеть их взаимодействие, а так же последовательность исполнения.Jarik_G, 26 Марта 20, 06:13
Прошу учесть, что проект живой и пока я в нём единственный разработчик, поэтому в github попадает может и что-то лишнее.
Попробую описать состав проекта.
distibot.conf - файл конфигурации по умолчанию, можно указать другой файл: distibot.py --conf=<другой файл>
Проект использует ряд внешних модулей, которые должны быть установлены с помощью утилиты pip:
pip install -r requirements.txt

В файле distibot.py перечислены (кроме системных и внешних) импортируемые модули:
from cooker import Cooker
import valve
import heads_sensor
import tsensor
from flow_sensor import FlowSensor
Соответственно, из файлов:
cooker.py
valve.py
heads_sensor.py
tsensor.py
flow_sensor.py
Каждый из этих файлов, кроме того, что предоставляет объекты для импорта в основной проект distibot.py,
ещё и предоставляет функции тестирования. Каждый из них перед стартом процесса перегонки я в консоли запускаю для тестирования оборудования. Были случаи обрыва контакта, которые удалось выявить на этапе тестирования, а иначе потерял бы ночь: процесс был бы прерван.
tsensor.py читает distibot.conf и считывает показания указанных в файле конфигурации датчиков, выводя полученные значения на экран.
cooker.py читает distibot.conf и cooker.play (этот файл не рудимент, как я раньше написал, а сценарий для тестирования плитки).
Сверяя табло плитки с выводом в консоль, я убеждаюсь, что всё работает штатно. Однажды помогло выявить обрыв контакт в кабеле между Дистиботом и плиткой.
Аналогично остальные модули при запуске в консоли с соответствующими параметрами позволяют протестировать оборудование.
После успешных тестов, я стартую distibot.py, например, для отбора тела из СС так:
nohup ./distibot.py --play=dib-body-from-low-wine.play &
После этого можно отслеживать протокол работы так:
tail -f distibot.log

Сам distibot.py предоставляет импортируемый класс для другого модуля run-distibot.py, который реализует web-интерфейс, а запускает основную процедуру temperature_loop из distibot.py в отдельном потоке.
Jarik_G Студент Мишкино 33 7
Отв.67  02 Апр. 20, 06:33
Спасибо огромное за разъяснение! Щас стало много понятнее. Буду попробовать Улыбающийся