Автоматика Самовар
lkosoj
Куратор
Видное
495 513
Отв.1160 13 Нояб. 23, 22:39
Их нужно переименовать так, как они называются в сообщении.
Kuban
Кандидат наук
Краснодар
478 356
Отв.1161 14 Нояб. 23, 07:03
Коллеги, просьба проверить работу скрипта. У меня он ни в какую не работает, хотя по мнению Алексея ошибок в нем уже нет. Да и действительно - он прост как топор. Может сбой у меня какой-то.Chernik_, 12 Нояб. 23, 19:59
При запуске скрипта на насос подается максимальное напряжение на 1 секунду. Затем мощность падает примерно до 30% от максимального. При этом в интерфейсе статус Lua показывает что он работае на максимальной (наверно).
На кнопки + и - насос реагирует. В интерфейсе понижение мощности показывает.
Но отрабатывает не корректно
При понижении до 256 насос остановился. Затем по кнопке + запустился на минималке и на 513 остановился опять. Опять по + стартанул на минималке и поднимался до 768 и снова остановился. Далее по + стартанул на минималке и поднимался не останавливаясь до 1023, что составило, по факту, примерно 30% от максималки.
Пуск и Стоп насос выполняет.
Chernik_
Специалист
Липецк
129 62
Отв.1162 15 Нояб. 23, 12:25
Спасибо.
Это хорошо соответствует замерам, которые я делал USB тестером.
Это хорошо соответствует замерам, которые я делал USB тестером.
lkosoj
Куратор
Видное
495 513
Отв.1163 15 Нояб. 23, 12:38, через 14 мин
На выходных посмотрю.
Добавлено через 3дн. 1ч. 58мин.:
Была ошибка в конвертации вызова установки скорости насоса из Lua в Самовар. Исправил, выложил версию 6.11. Так же добавил штатное управление скоростью насоса воды в режиме пива и переменную water_pump_speed в Lua, можно получить текущее значение PWM (скорость насоса).
Скорректировал скрипт beer.lua с учетом water_pump_speed. Скрипт "beer (Управление скоростью насоса воды).lua" лежит на гите в каталоге Lua_script. Но, наверное, с учетом добавленного штатного управления скоростью насоса особой необходимости в этом скрипте уже нет.
Версию 6.11 перевыложил.
15. Шрифт текущей мощности ТЕН-а сделать крупнее. добавлено в 6.11 с помощью ais77
Добавлено через 3дн. 1ч. 58мин.:
Была ошибка в конвертации вызова установки скорости насоса из Lua в Самовар. Исправил, выложил версию 6.11. Так же добавил штатное управление скоростью насоса воды в режиме пива и переменную water_pump_speed в Lua, можно получить текущее значение PWM (скорость насоса).
Скорректировал скрипт beer.lua с учетом water_pump_speed. Скрипт "beer (Управление скоростью насоса воды).lua" лежит на гите в каталоге Lua_script. Но, наверное, с учетом добавленного штатного управления скоростью насоса особой необходимости в этом скрипте уже нет.
Версию 6.11 перевыложил.
lkosoj
Куратор
Видное
495 513
Отв.1164 18 Нояб. 23, 17:08
Однако при прогоне тестовых программ самовар почему то упорно ставит 1500 Вт. Чего только в программы не вписывал. UPD сегодня разобрался, мощность в программе задаётся относительно предыдущего значения, надо было с минусом писать. Самовар заработал идеально.dranek, 23 Июня 23, 17:36Мощность/напряжение в программе можно задавать двумя способами - указав абсолютное и относительное значение.
Если используется регулятор с управлением по напряжению - то в случае, если в программе указано абсолютное значение напряжение меньше 40 вольт (по модулю), то считается, что это значение нужно прибавить к текущему напряжению. Если указано отрицательное значение - оно отнимется. Иначе установится напряжение, указанное в данной строке программы.
Для регулятора с управлением по мощности - пороговое значение - 400 Ватт. Если меньше 400 - значение прибавляется/вычитается, если больше - устанавливается заданное.
lkosoj
Куратор
Видное
495 513
Отв.1165 18 Нояб. 23, 18:33
Если успели установить 6.11, скачайте еще раз, пожалуйста.
dranek
Кандидат наук
Минск
326 257
Отв.1166 18 Нояб. 23, 18:40, через 8 мин
lkosoj Спасибо, разобрался ещё в июне конечно.
На мой взгляд это вносит некоторое излишнее усложнение в эксплуатацию, надо не забывать про эти 400 Ватт, имхо мне было бы проще всегда писать в абсолютных величинах.
Но так уж исторически сложилось.
Такое предложение: если после разгона при переходе на первую строку программы мощность в ней стоит 0 не сбрасывать её до 0 а ставить максимальную. То есть, считать 0 относительной величиной от максимальной - разгонной. Мне кажется это логичным. Я всегда работаю на полной мощности своего ТЭН-а и уже пару раз забывал прописать свои 1500 вместо 0.
На мой взгляд это вносит некоторое излишнее усложнение в эксплуатацию, надо не забывать про эти 400 Ватт, имхо мне было бы проще всегда писать в абсолютных величинах.
Но так уж исторически сложилось.
Такое предложение: если после разгона при переходе на первую строку программы мощность в ней стоит 0 не сбрасывать её до 0 а ставить максимальную. То есть, считать 0 относительной величиной от максимальной - разгонной. Мне кажется это логичным. Я всегда работаю на полной мощности своего ТЭН-а и уже пару раз забывал прописать свои 1500 вместо 0.
lkosoj
Куратор
Видное
495 513
Отв.1167 18 Нояб. 23, 19:47
То есть, считать 0 относительной величиной от максимальной - разгонной. Мне кажется это логичным.dranek, 18 Нояб. 23, 18:40Это вопрос безопасности и лишнее напоминание установить правильную программу
lkosoj
Куратор
Видное
495 513
Отв.1168 18 Нояб. 23, 21:48
Кстати, заказал себе датчик давления XGZP6857D https://sl.aliexpress.ru/p?key=wFqMUSR, как придёт планирую использовать, для НБК в частности, уже придумал как обмануть самовар и подсунуть его показания вместо одного из температурных датчиков (ТСА наверное), но может администрация решит его внедрить штатно?dranek, 07 Окт. 23, 22:46Да, это есть в планах. Но пока только показывать значение в интерфейсе и работать с Lua.
Режим "Пиво". При добавлении строки программы, если поле "Мешалка" пустое - программа не устанавливается в Самовар.Kuban, 12 Окт. 23, 21:02Добавил проверку на корректность формирования этого поля. Если оно сформировано не верно, то меняется на 0^0.00^0^0
Посмотрите пожалуйста в первом сообщении список вопросов и пожеланий, все там зафиксировано? Или я что-то упустил?
Kuban
Кандидат наук
Краснодар
478 356
Отв.1169 19 Нояб. 23, 20:45
Посмотрите пожалуйста в первом сообщении список вопросов и пожеланий, все там зафиксировано? Или я что-то упустил?lkosoj, 18 Нояб. 23, 21:48- Пауза по Т царги . На каждую сообщение о паузе идет понижение скорости отбора. Т.е через каждые 20 сек - понижение отбора. При этом отбор не возобновлялся. Получается: 5 сообщений и 5 понижений скорости подряд, без возобновления отбора.
Очень прошу вернуть как было раньше - одно понижение скорости отбора при постановке на паузу не зависимо от времени и количества пауз. Следующее понижение только при условии возобновления отбора.
- Тоже самое касается и понижения мощности при постановке на паузу.
- При автоматической постановке на паузу нельзя процесс поставить на паузу. Нужно дождаться, когда он автоматически опять возобновиться и только потом можно вручную поставить на паузу.
- Ввиду инертности процесса, пауза 20 секунд при вылете за уставку температуры — это очень мало. Предлагаю, по-умолчанию, минимум минуту.
- Вкладка Дополнительно - Скорость отбора: л/ч. – не принимает разделитель «запятая» только «точка».
dranek
Кандидат наук
Минск
326 257
Отв.1170 25 Нояб. 23, 17:03
Обновил свой пост про отдельностоящий измерительный модуль.
lkosoj
Куратор
Видное
495 513
Отв.1171 25 Нояб. 23, 23:46
пауза 20 секунд при вылете за уставку температуры — это очень малоKuban, 19 Нояб. 23, 20:45Время паузы задается в настройках на вкладке Температура: Задержка отбора при выходе Т пара за уставку. Для датчика Царги и Пара - свое значение.
Вкладка Дополнительно - Скорость отбора: л/ч. – не принимает разделитель «запятая» только «точка».Kuban, 19 Нояб. 23, 20:45В версии 6.12 можно будет вводить запятую.
При автоматической постановке на паузу нельзя процесс поставить на паузуKuban, 19 Нояб. 23, 20:45Да, с точки зрения Самовара - это одинаковые паузы. С одним исключеним - автоматическую он снимает сам через определенное время. Если я не ошибаюсь, можно нажать на кнопку - снять с паузы и поставить на паузу заново (правда, Самовар может успеть поставить на паузу заново, если будет вылет за уставку).
На каждое сообщение о паузе идет понижение скорости отбора.Kuban, 19 Нояб. 23, 20:45Скорей всего, Самовар снимал с паузы и тут же ставил заново. В коде нет повторного снижения, если время вышло, но при этом температура не вернулась в заданные пределы.
kamram
Студент
Ufa
48 23
Отв.1172 26 Нояб. 23, 08:12
Так получилось , что один из 5-ти датчиков температуры вышел из строя. Ждать новый, готовый к работе-долго, отремонтировать, распотрошить гильзу, припаять новый датчик времени нет. Погонял программу без датчика ТСА. Программа информирует только об ошибке датчика температуры ТСА, каких либо иных негативных последствий отсутствия датчика температуры ТСА, при выполнении программы не наблюдается. Можно ли быть уверенным, что при реальной работе из-за отсутствия датчика ТСА, программа не отключится посреди процесса.
Kuban
Кандидат наук
Краснодар
478 356
Отв.1173 26 Нояб. 23, 08:23, через 12 мин
Скорее всего все будет нормально. Но можно:
- Отключить датчик ТСА на вкладке температура. Или
- Выбрать на той же вкладке датчик воды (или любой другой) как ТСА. Т.е на воду и на ТСА один и тот же датчик. Для ТСА установить повышенную температуру срабатывания. Допустим выбрали датчик пара - на ТСА ставите температуру 80°С. А по пару как было так и будет.
- Отключить датчик ТСА на вкладке температура. Или
- Выбрать на той же вкладке датчик воды (или любой другой) как ТСА. Т.е на воду и на ТСА один и тот же датчик. Для ТСА установить повышенную температуру срабатывания. Допустим выбрали датчик пара - на ТСА ставите температуру 80°С. А по пару как было так и будет.
kamram
Студент
Ufa
48 23
Отв.1174 26 Нояб. 23, 10:55
Отключить датчик ТСА на вкладке температура.Kuban, 26 Нояб. 23, 08:23на вкладке ТСА отключен.
Совместить с другими датчиками возможно, но придется лезть в скетч и поднимать значение температуры ТСА, датчику обычно прописываю температуру срабатывания 45 градусов. Спасибо.
lkosoj
Куратор
Видное
495 513
Отв.1175 26 Нояб. 23, 11:24, через 30 мин
Отсутствие какого-то температурного датчика не является проблемой, если он отсутствовал на момент начала процесса (даже если его адрес указан в настройках). Если датчик отвалится в процессе - Самовар про это напишет.
Добавлено через 13мин.:
Никакой логики и отображения в интерфейсе пока нет, но можно будет использовать в Lua скрипте, выводить значение в статус Lua и там же реализовать необходимое поведение Самовара при достижении определенных значений. Так же в настройках Самовара можно будет задать предельное значение давления, при котором Самовар включит аварийный режим. Если в настройках установлено значение давления, равное 0, Самовар будет игнорировать показания датчика давления.
Пример вывода давления в статус Lua:
Так же добавил в вывод в Blynk. В интерфейс Blynk можно добавить самостоятельно, используя виртуальный пин 22.
Добавлено через 13мин.:
Обновил свой пост про отдельностоящий измерительный модуль.dranek, 25 Нояб. 23, 17:03В 6.12 версии добавлена поддержка трех датчиков давления: XGZP6897D (подключается по I2C), MPX5010D (аналоговый, подключается к 34 пину ESP32) и по 1Wire. Для датчика, подключаемого по 1Wire, адрес установлен фиксированный - {0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22}. Выбор, какой датчик использовать (или не использовать никакой) - осуществляется в Samovar_ini.h:
//Определение типа используемого датчика давления. Может быть использован только один тип. Если раскомментировать три или два датчика, то использоваться будет только MPX5010D
//#define USE_PRESSURE_XGZ 32 //использовать датчик давления XGZP6897D (или аналогичный). Какое использовать значение - смотреть параметр К в таблице: https://github.com/fanfanlatulipe26/XGZP6897D
//#define USE_PRESSURE_1WIRE {0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22} //использовать датчик давления по 1Wire
//#define USE_PRESSURE_MPX //использовать датчик давления MPX5010D
Никакой логики и отображения в интерфейсе пока нет, но можно будет использовать в Lua скрипте, выводить значение в статус Lua и там же реализовать необходимое поведение Самовара при достижении определенных значений. Так же в настройках Самовара можно будет задать предельное значение давления, при котором Самовар включит аварийный режим. Если в настройках установлено значение давления, равное 0, Самовар будет игнорировать показания датчика давления.
Пример вывода давления в статус Lua:
pressure_value = getNumVariable("pressure_value") + 0
setLuaStatus("Давление = "..pressure_value)
Так же добавил в вывод в Blynk. В интерфейс Blynk можно добавить самостоятельно, используя виртуальный пин 22.
Kuban
Кандидат наук
Краснодар
478 356
Отв.1176 26 Нояб. 23, 12:11, через 48 мин
Время паузы задается в настройках на вкладке Температура: Задержка отбора при выходе Т пара за уставку. Для датчика Царги и Пара - свое значение.lkosoj, 25 Нояб. 23, 23:46Да, точно. Прошу прощения. Тут я элементарно забыл... Нужно, наверно, справку чаще перечитывать
lkosoj
Куратор
Видное
495 513
Отв.1177 26 Нояб. 23, 13:37
Выложил версию 6.12. Описание изменений тут: [сообщение #14020582]
Так же немного скорректировал интерфейс (программа Пиво).
18. Добавить датчик давления. В настройках сделать предельное давление, при котором включать аварийный режим.
19. Вывести показания всех датчиков температуры на дисплей Самовара (сейчас это зависит от режима).
Так же немного скорректировал интерфейс (программа Пиво).
dranek
Кандидат наук
Минск
326 257
Отв.1178 26 Нояб. 23, 13:50, через 14 мин
lkosoj, посмотри пожалуйста еще раз размер шрифта мощности при ректификации. Наблюдаю у себя вот это:
Насчет датчика давления. Вроде i2c шина считается внутриблоковой. Выносить наружу можно помехозащищённым кабелем, но если там еще висят дисплей и датчик атмосферного давления не наловим ли глюков? Выходит придется тянуть от куба трубку к Самовару, причем сам датчик выводить наружу, чтобы если эта трубка лопнет или её сорвёт горячий пар не попал внутрь Самовара.
А в случае моей реализации рискуем мало чем. От Самовара к измерителям идёт один кабель всего.
Мне нравится модульность этого решения. Можно цеплять просто ds18b20, а можно модуль повесить на колонну. То есть у пользователя появляется выбор: хочешь ds-ки пользуй, не нравится - пожалуйста термисторы. Это ведь хорошо. Тоже и с датчиком давления хочешь в Самовар вставь на i2c, а можно в отдельный измеритель.
Поэтому может добавишь выбор в скетче приёма давления вместе с температурами по 1-ware в виде как бы шестой температуры? Не то чтобы оно прям очень надо, просто подумай над этим.
И ещё, раз у нас есть такой информативный параметр его надо бы и наблюдать, нужен вывод в интерфейсе рядом с температурой куба. Да и на дисплее Самовара не плохо бы.
Насчёт использования. У всех внутрикубовое давление немного разнится, для начало можно попробовать его учитывать при определении исходной спиртуозности например.
PS. Ну вот, пока писал 6.12 появилась. Спасибо. Будем тестить.
Насчет датчика давления. Вроде i2c шина считается внутриблоковой. Выносить наружу можно помехозащищённым кабелем, но если там еще висят дисплей и датчик атмосферного давления не наловим ли глюков? Выходит придется тянуть от куба трубку к Самовару, причем сам датчик выводить наружу, чтобы если эта трубка лопнет или её сорвёт горячий пар не попал внутрь Самовара.
А в случае моей реализации рискуем мало чем. От Самовара к измерителям идёт один кабель всего.
Мне нравится модульность этого решения. Можно цеплять просто ds18b20, а можно модуль повесить на колонну. То есть у пользователя появляется выбор: хочешь ds-ки пользуй, не нравится - пожалуйста термисторы. Это ведь хорошо. Тоже и с датчиком давления хочешь в Самовар вставь на i2c, а можно в отдельный измеритель.
Поэтому может добавишь выбор в скетче приёма давления вместе с температурами по 1-ware в виде как бы шестой температуры? Не то чтобы оно прям очень надо, просто подумай над этим.
И ещё, раз у нас есть такой информативный параметр его надо бы и наблюдать, нужен вывод в интерфейсе рядом с температурой куба. Да и на дисплее Самовара не плохо бы.
Насчёт использования. У всех внутрикубовое давление немного разнится, для начало можно попробовать его учитывать при определении исходной спиртуозности например.
PS. Ну вот, пока писал 6.12 появилась. Спасибо. Будем тестить.
lkosoj
Куратор
Видное
495 513
Отв.1179 26 Нояб. 23, 14:14, через 24 мин
i2c шина считается внутриблоковой.dranek, 26 Нояб. 23, 13:50Да, наружу выносить I2C плохо.
на дисплее Самовара не плохо быdranek, 26 Нояб. 23, 13:50Дисплея уже на все не хватает. Попробую куда-нибудь добавить. В интерфейс - пока смотреть через Lua, потом добавлю на общий.
Мне нравится модульность этого решения.dranek, 26 Нояб. 23, 13:50Да, решение интересное, а самое главное, просто расширяемо для любых датчиков. Добавлю такую реализацию позже.