БАРС. Блок автоматической ректификации и стабилизации.

Форум самогонщиков, пивоваров, виноделов Оборудование Автоматика
1 2 3 4 1
Z_h_e Бакалавр г. Чайковский 65 18
12 Июл 17, 11:34
I. Введение.
Блок автоматической ректификации (БАРС) предназначен для автоматизации процесса ректификации с поддержанием стабильного напряжения на ТЭНе. Представляет собой моноблок с монохромным графическим дисплеем 84x48 и клавиатурой на 4 клавиши.

Технические характеристики:
- питание 220В 50Гц
- нагрузочная мощность 2500Вт (у меня ТЭН такой, на нем и испытано)
- задание напряжение на ТЭН с дискретностью 0.1В
- измерение (true RMS) и стабилизация (фазовый ШИМ) напряжения на ТЭН с дискретностью 0.1В
- выход на управление клапаном отбора - открытый сток
- выход ШИМ для управления сервоприводом 3.3В, 50 Гц, длительность импульса (0.8... 2.2) мс, назначение сервопривода - управление распределителем потока жидкости
- два дискретных выхода открытый сток для управления дополнительного оборудования (например клапан охлаждающей жидкости и разгонный ТЭН)
- три дискретных входа для подключения датчиков типа сухой контакт
- UART , программно пока не реализован, держу в резерве, возможно будет управлять перистальтическим насосом.
- трехпроводная линия 1-Wire, для подключения до 8 датчиков температуры DS1820, DS18S20, DS18B20
- дискретность измерения температуры 0.1гр.Ц при использовании DS18B20. Неисправный (отсутствующий) датчик отображает температуру 150 гр.Ц.
- USB  для обновления прошивки, пока не реализовано
- встроенный внутрь датчик атмосферного давления BMP180
- встроенный звуковой оповещатель
- пять режимом отбора продукта. Режимы отбора могут быть запущены серией, т.е. при окончании одного режима, автоматически запускается следующий.





II. Описание структуры меню и функций БАРС.


БАРС управляется с помощью 4х кнопочной клавиатуры (ввод, вниз, верх, назад). Управление интуитивно понятное, с помощью перемещения мигающего курсора по дисплею.

Основное меню.
-Меню - вход в меню настроек.
-Нагрев - выбор напряжения нагрева (8 различных напряжений). Режим нагрева №0 - нагрев выключен. Если номер нагрева отображен инвертно, значит БАРС перешел (однократно) на напряжение из-за сработки дачтика на дискретном входе или превышении температуры в кубе.
-Отбор - включение отбора № 1..5 или серии отборов. Если отбор включен, то отображается ниже или оставшееся время на стабилизацию или скважность отбора % и период сек. Если скважность зачеркнута верхней чертой, отбор приостановлен из-за превышения дельты в царге, если нижней, то из-за превышения температуры в царге.
-Стр№ - в основном меню так же отображаются различные параметры работы, т.к. экран маленький они распределены на несколько страниц.

stranici_kornya.jpg

Стр1. Отображается подобие колонны, внутри нее текущее параметры. Сверху вниз. Температуры в дефлегматоре, верха царги, дельта, низ царги, кубе. Напряжение на ТЭНе.
Стр2. Запомненные температуры в царге и заданное напряжение.
Стр3. Атмосферное давление и температура датчика давления. Пока только для индикации, но скорее всего сделаю поправку температуры в кубе от атмосферного давления.
Стр4. Состояние дискретных входов/выходов и положение сервопривода.
Стр5. Время работы нагрева и лимит времени нагрева.
Стр6. Условие окончания отбора. Может быть по времени, количеству, температуре в царге, температуре в кубе.
Стр7. Причина остановки работы. Всего может быть шесть причин.

Войдя в настройки, на дисплее отображается экран выбора настроек.
1_meniy_nastroek.jpg

Пойду по этому меню сверху вниз.

Настройки каналов температуры.
2_kanali_temperatyri.jpg

Как я уже и говорил, датчиков температуры может быть до 8 включительно (собственно можно и больше, но и это то перебор). При включении питания, БАРС ищет датчик на шине 1-wire и распределяет их по каналам. Если использовать одни и те же датчики и одно и тоже количество, то датчик будет привязан всегда к одному своему каналу. В данном меню настроек привязываются каналы к местоположению в колонне или можно просто поглядеть на каком канале какая температура (150 градусов - датчика нет).


Настройка останова.
3_ostanov.jpg

Здесь настраиваются шесть параметров, по которым отключится нагрев и отбор.
Первые три параметра если температура превысит установленные значения; если сработал сухой контакт на дискретном входе № 1-3, если нагрев происходил слишком долго или же завершен отбор №1-5.

Уставки нагрева.
Располагаются в двух экранах.
4_ysloviya_naggreva_1_2.jpg

Выше я писал, что напряжение нагрева устанавливается в корневом меню. Может быть восемь различных напряжений. Тут можно для каждого режима нагрева установить нужное напряжение. Например для на фото дисплея видно, что для первого режима задано 70в.
Так же нагрев может однократно перейти на некое напряжение, если сработал дискретный вход или температура куба превысило определенное значение.
Второй экран - настройка вольтметра trueRMS. Самое лучшее, если множитель будет равен единице. Если множитель больше 1, значит заужен диапазон АЦП. Если меньше единицы, то при фактическом напряжении 230В в сети, возможен зашкал АЦП. Приблизится к единице можно подбором сопротивления R16 из силовой части схемы.

Уставки отбора.

5_otbor31.jpg

Режимом отбора может быть пять. Для каждого можно установить свои настройки.
Первый экран. Положение сервопривода,период работы клапана,скважность работы клапана, после каждого приостанова отбора скорость может понижаться, но не ниже заданной.
Второй экран. Условия при которых приостанавливается отбор и восстанавливается (по температуре в верхней точки царги и разницы). Немного побольше поясню про параметр стабилизация.Если этот параметр отличный от нуля, то при старте режима отбора происходит стабилизация в течении этого времени. Если за время стабилизации температура царги понизиалась, то отчет времени стабилизации начинается сначала. Повышение температуры игнорируется. Как только время вышло, запоминаются температуры в царге и контроль отбора ведется от запомненных температур.
Третий экран отбора. Тут выбирается по какому критерию заканчивается отбор. Или по времени, или количеству отборов или по превышению  температуры в кубе или царге.

Дискретный выход.
6_diskr_vih.jpg
По-моему тут пояснения не требуются.

Сохранить.
Сохранить настройки в энергонезависимой памяти.

III. Схема электрическая принципиальная.

Мозгом данного устройства является микроконтроллер STM32F103C8T6. Я приобрел его сразу на платке -Minimum System Development Board Module Arduino. Ниже схема этой платки.
platka.jpg



Не смотря на то, что устройство практически выполнено на одной плате (вынесены дисплей, кнопки, "пищалка" и симистор), схему я разбил на логические блоки.
Схема простая, начну с силовой ее части.
2_silovaya.7.jpg

Обращаю внимание на красный пунктир делящий схему на две части. Левая часть - схема имеет гальваническую связь сетью 220в и представляет опасность при прикосновении. Справа - гальванически развязанная от сети схема. Все остальные схемы так же развязаны от сети. Еще акцентирую внимание на общие вывода. Слева он обозначен как жирный корпус, справа тонкий, это не случайно, они не соединяются.
Поясняю данную часть схемы сверху вниз.
-блок питания 5В, я повадился их выдергивать из корпуса от зарядки гаджетов. Такие блоки питания дешевы и компактны.
-диодный мост и оптопара - это детектор фазы.
-симисторная оптопара и непосредственно сам симистор управляют напряжением на нагрузке (ТЭНе)
-конденсаторный блок питания. Хотя я применил электролитические конденсаторы 47мкф, но лучше будет установить на 100мкф. Можно вместо него поставить опять же БП из зарядки. Я так уже применял в схеме "Котофеича". Данное напряжение питания не должно быть ниже 5В и не больше 32В.
-на операционных усилителях OP1 собран двухполупериодный выпрямитель.
-OP2, OP3 и комплементарная диодная оптопара IL300 выполняют гальваническую развязку.  Вместо IL300 по идее можно установить HCNR200 или АОД176А, но я не проверял.

Схема входов и выходов.
5_vihodi_vhodi.jpg
В принципе тут пояснять особо нечего. Разве что пояснить назначение выводов Upower(12В) на разъеме "дискретные выходы". В устройстве нет 12В и эти 12В условные. Можно больше, можно меньше, в зависимости от напряжения питания внешних устройств, например клапана отбора. Для подключения клапана, внешний блок питания подключается к Upower(12В) и GND. Сам клапан подключается к Upower(12В) и Doza. Аналогично подключаются другие устройства к дискретным выходам OUT1 и OUT2. Управляющий вывод сервопривода подключается к PWM.

Клавиатура (четыре тактовые кнопки),дисплей (Nokia5110) и "пищалка" вынесены на крышку корпуса. Подсветка дисплея на разных платах может быть организована по разному, т.е. светодиод подсветки может придется подключать к питанию, может к земле, сопротивление уже может стоять на плате, возможно нужно будет внешнее, китайцы их по разному собирают.
displei_i_klava.jpg

По датчикам температуры думаю пояснения никакие не нужны.
ds1820.jpg

Ну и конечно же, сам МК, к которому все это подключается. Батарейка пока не нужна и наверное не будет нужна. Входы A4,А5,А6 подключать не нужно, это задел на возможные изменения, но эти входа не предназначены для подключения к 5В.
stm32.jpg

IV. Устройство в сборе.

Вот такое устройство у меня получилось.

vnytr._temn.jpg

Так как это опытный экземпляр, то на нем есть и проводочки и перерезанные дорожки.

Все это собрал на щите.
shit21.jpg

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

Наверное тут самое интересное, это обрезанный шприц.
raspred_blizko.jpg
А это у меня и есть распределитель потока. Поворачивает его сервопривод MG995. Этот сервопривод достаточно мощный и имеет внутри металлический редуктор. Но такой тут не нужен (просто он у меня есть), думаю пойдет и самый маленьки пластмассовый.
Шприцевый распределитель (который следует запатентовать Улыбающийся) ) отправляет поток в одно из трех направлений, в зависимости от угла наклона. В средний поток, жидкость уходит со "дна" шприца, крайние потоки отбирается сверху.
Вообще то я хотел изначально сделать распределитель что-то вроде конусного (самоварного) крана, только с тремя выходами. Ничего готового подобного я не нашел, самому такой мне не на чем сделать, разве что заказать, дык чертеж опять делать надо. Может у кого будет идея какая или есть что то подобное готовое? Опять же шприцОвый распределитель за 15 рублей работает же... Вернее работал на воде, на спирте стал протекать через поршень-затычку, так что пока выкинул, что-то другое надо будет придумать.

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

В данный момент идет третий день перегонки, из них два ректификация, пока нареканий нет.







Схемы БАРС.rar (87Кб - загружено 26 раз)
PavelSaratov Кандидат наук Саратов 308 33
Отв.1  12 Июл 17, 15:18
 Интересно.
 На Stm32 уже интересно.
 
 Вопросы:
 1/ Блок-схема программы есть? На HAL или не морочался?
 2/ Это  коммерческий вариант?
 3/ Почему китайца взял при цене той же nucleo 10 баксов? ИМХО надежнее будет.
 4/ Посмотри на вот эту приблуду - можешь пришить ее потом, если переделаешь на Nucleo. http://www.st.com/en/ecosystems/x-nucleo-idw01m1.html
 5/ Программы пролезет по ClassB? По идее это уже кончено хотелки. Но сделаешь - продавать можно смело. http://www.st.com/en/embedded-software/stm32-classb-spl.html

Просто для информации Форумчан что это такое класс B.

The standard distinguishes three software classes, depending on how dangerous a piece of equipment is in case of failure. If the safety of the appliance does not rely on software, it falls into Class A. Room thermostats or lighting controls, for instance, are in this class. On the opposite end of the class spectrum, if the software is intended to prevent special hazards, such as an explosion in electronically-fired gas burners, it will be evaluated as Class C. This last will not be discussed, first because it could require systems with redundant MCUs, which exceeds the scope of this paper, and secondly because the vast majority of household appliances whose electronic controls must prevent unsafe operation belongs to the Class B category.

This is typically the case for washing machines with electronically-controlled door locks or dishwasher pump drives with motor over-temperature detection, just to mention a couple of examples.
Вкратце - С - вчсе совсем серьезно, А - ерунда,

Б - как раз наш случай.
Z_h_e Бакалавр г. Чайковский 65 18
Отв.2  12 Июл 17, 15:36, через 18 мин
1. Редко использую сторонние библиотеки. Чтобы их правильно использовать, надо хорошо изучить, иначе не будешь знать что творится в МК, а это наверное не меньше времени чем напрямую с  регистрами работать.  Так что не SPL не HAL. Только CMIS.
2. И да и нет. Могу высылать прошитые МК с возможностью обновления (но пока загрузчика нет). Если никого не заинтересует, то возможно через пяток лет выложу код (то есть когда я сам наиграюсь с ним). А готовое устройство собирать не буду, только МК.
3. Потому что данная платка с МК стоит  2 бакса.
5. Нет наверно. Данный стандарт не знаю, но пока даже "собаку" не использую. Я ее не сторонник, программа должна сама работать, но добавить можно.
PavelSaratov Кандидат наук Саратов 308 33
Отв.3  12 Июл 17, 16:47
Только CMIS.

Ясно. То бишь WiFi DMA и прочее вычеркиваем...
Z_h_e Бакалавр г. Чайковский 65 18
Отв.4  12 Июл 17, 16:48, через 2 мин
Вся перефиерия на DMA работает, глупо ее не использовать. А про WiFi даже не думал.
Sonologist Доцент Москва 1401 416
Отв.5  12 Июл 17, 17:07, через 19 мин
- задание напряжение на ТЭН с дискретностью 0.1В
- измерение (true RMS) и стабилизация (фазовый ШИМ) напряжения на ТЭН с дискретностью 0.1ВZ_h_e, 12 Июл 17, 11:34
Если не секрет, в чем нужда в такой точности?
Z_h_e Бакалавр г. Чайковский 65 18
Отв.6  12 Июл 17, 17:13, через 6 мин
Не секрет.  Почему бы и нет, если это возможно без дополнительных усилий. По факту получилось "пляшет" от заданного напряжения +0.2В. К сожалению не имею trueRMS вольтметра. Есть осцилл на работе, но он RMS с дискретностью 4В измеряет. Так что мне сравнить не с чем. 
PavelSaratov Кандидат наук Саратов 308 33
Отв.7  15 Июл 17, 10:25
Автор напишу в личку соображения.
SedoY Профессор Новосибирск 3383 1431
Отв.8  15 Июл 17, 15:08
молодец! stm32 хороший выбор, тоже с этим семейством играюсь

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

повадился их выдергивать из корпуса от зарядки гаджетов. Такие блоки питания дешевы и компактны.Z_h_e, 12 Июл 17, 11:34
главное дербанить фирменные, китайские сильно легкомысленны

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

То бишь WiFiPavelSaratov, 12 Июл 17, 16:47
А про WiFi даже не думалZ_h_e, 12 Июл 17, 16:48
я сообразить не могу - нафига вафлю к контроллеру прикручивать? по мне так соеденение с роутером обеспечиить витой парой, а роутер пускай вебморду волочет, пакет сделать под OpenWRT
Z_h_e Бакалавр г. Чайковский 65 18
Отв.9  15 Июл 17, 16:33
На счет вафли можно будет и подумать. Бегленько глянул что  есть OpenWRT, действительно интересная вещь.
woddy Модератор Новосиб 1294 458
Отв.10  15 Июл 17, 22:08
Нашёл время вникнуть. Очень интересная схема измерения напряжения. С какой частотой с ацп выборки идут ?

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

Закрытый код это плохо... с другими датчиками или дисплеем например не запустишь.
mr.ptec Доктор наук Петрозаводск 628 138
Отв.11  15 Июл 17, 22:45, через 38 мин
Молодец! Поддерживаю тебя коллега! За архитектурой STM32 будущее всяких встроенных штук-дрюк.
Насчёт не открывания кода - дело хозяйское.

Скоро перееду в новую квартиру, оборудую рабочее место для мастерской и продолжу заниматься Stm32.
P.S. Просьба к тебе - какими библиотеками пользовался для ds18b20 и LED ? Сам писал или example какой сильно понравился?
Z_h_e Бакалавр г. Чайковский 65 18
Отв.12  15 Июл 17, 23:01, через 16 мин Автор был выпивший
Ну схему такую Вы уже видели, в Котофеиче. Только я там развязку не делал. 1200 выборок на период в БАРСе 12 битного АЦП. В Котофеиче 450 8 битного.

Есть недостаток в плате с МК. Китайцы посадили аналоговое питание МК на цифровое. Внутри есть ИОН, но к сожалению в данном камне его нельзя использовать для АЦП, его можно только измерять. БП 5В как раз такой, который не посоветовал использовать Sedoy, неудачный попался.  Так вроде все нормально, но если еще серву запитать от него же, то измеренное напряжение стало "болтаться" где-то уже в пределах 1 вольта, хотя я ожидал десятки вольт с таким БП. Так что измерение ИОН и соответствующая коррекция эффект приносит.

woddy, обращуюсь уже как к модератору, что-то сломалось на сайте, счетчик просмотров не работает.


Z_h_e Бакалавр г. Чайковский 65 18
Отв.13  15 Июл 17, 23:10, через 10 мин Автор был выпивший
P.S. Просьба к тебе - какими библиотеками пользовался для ds18b20 и LED ? Сам писал или example какой сильно понравился?mr.ptec, 15 Июл 17, 22:45
Люблю ковыряться до бита. Спешки у меня нет. Так что все свое. Мне понравилось что DS сделал. Работает по UART, и через DMA. Программа только готовит данные, потом весь обмен "сам" происходит, остается только забрать нужную инфу.
Наверно не LED, а LCD. Нечто подобное сделал, в ОЗУ МК выделил место под видеопамять, а потом SPI через DMA молотит. Все-таки STM рулит именно периферией в первую очередь. Да и диммер тоже сам аппаратно работает, программу только поправку вносит.
Mnz Специалист Город 163 49
Отв.14  15 Июл 17, 23:28, через 18 мин
какими библиотеками пользовался для ds18b20mr.ptec, 15 Июл 17, 22:45
Недавно попалась конструкция USB термометра. Можешь посмотреть библиотеку оттуда.
STM32_DS18B20.zip (554Кб - загружено 20 раз)
Z_h_e Бакалавр г. Чайковский 65 18
Отв.15  15 Июл 17, 23:39, через 12 мин Автор был выпивший
У меня уже есть опыт с USB, спасибо. Изначально я хотел использовать какую-нибудь библиотеку USB (это было для другого устройства). Понял что не хрена не могу ее использовать пока не разберусь с USB. В итоге сделал на STM HID, тоже без библиотек, вернее у меня теперь есть своя. Изготовление своего кода, очень помогает в понимании работы того или иного. На USB потратил очень много времени, но для меня оно того стоило. Тот кто зарабатывает программированием, конечно не будет применять такой подход.
Mnz Специалист Город 163 49
Отв.16  15 Июл 17, 23:51, через 13 мин
В итоге сделал на STM HID, тоже без библиотекZ_h_e, 15 Июл 17, 23:39
Практика показывает что USB довольно сложный интерфейс с множеством нюансов и лучше использовать библиотеку от производителя где они все учтены. Самописные библиотеки обычно работают, но не во всех ситуациях. К примеру, как поведет себя ваша библиотека если подключить девайс к компу, отправить его в сон, потом разбудить? Сбоев не возникает?
Z_h_e Бакалавр г. Чайковский 65 18
Отв.17  16 Июл 17, 00:17, через 26 мин Автор был выпивший
лучше использовать библиотеку от производителяMnz, 15 Июл 17, 23:51
Я не пропагандирую свой подход, просто он мой. Несомненно, несмотря на то что и производителя бывает куча багов, Ваше замечание верное. Я не могу произвести полноценный тест, он может занимать большее время, чем создание кода.  Создание серьезной программы испытаний - большой квалифицированный труд. В мультфильме про Леопольда сделали хороший пример, возможно сами того не понимая. Белая мышь все разработала, серая провела испытания, Леопольд-пользователь взял и сорвал тыкву вместо кефира с печальными последствиями.
как поведет себя ваша библиотека если подключить девайс к компу, отправить его в сон, потом разбудить?Mnz, 15 Июл 17, 23:51
То устройство, где применял USB, мне уже не нужно, оно разобрано. Но если на БАРСе буду USB делать, надо не забыть это проверить.
mr.ptec Доктор наук Петрозаводск 628 138
Отв.18  16 Июл 17, 11:01
Недавно попалась конструкция USB термометра. Можешь посмотреть библиотеку оттуда.Mnz, 15 Июл 17, 23:28
Спасибо дорогой друг) Ты как всегда полезные вещи показываешь. Просветитель ты наш)
SedoY Профессор Новосибирск 3383 1431
Отв.19  16 Июл 17, 12:51
а я таки рад, что есть все же люди изучающие мат.часть! работ хоть и больше, но при усидчивом и вдумчивом подходе к решению вопроса результат получается вне конкуренции.
сильно надоели уже "быстрые пацанчики" - говноляпы. (к форумчанам не относится однозначно, наши -> посильный вклад делают в общее дело )