Форум самогонщиков Сайт Барахолка Магазин Может по второй?

Ненавязчивая автоматизация ректификационной установки

Форум самогонщиков Автоматика
1 ... 121 122 123 124 125 126 124
NBVV Бакалавр Новосибирск 93 2
Отв.2460  21 Марта 22, 11:10
Жаль, что Вы не перфекционист (как я). )))
OldBean Доцент Красноярск 1K 1.4K
Отв.2461  21 Марта 22, 17:21
Тут все гораздо проще и прозаичней - существенное и, как правило, неоправданное усложнение процедур работы с калибровочными данными для цифровых устройств с заводскими калибровками.
Вот почемуСделать дополнительную калибровку датчика и ввести соответствующие коэффициенты несложно. Основная проблема заключается в том, где хранить эти данные. Правильно было бы хранить эти данные непосредственно в энергонезависимой памяти самого цифрового датчика. Для всех устройств на базе микроконтроллеров так и делается. Там калибровочные данные хранятся в EEPROM микроконтроллера и их можно корректировать. К сожалению, для датчиков с "прошитыми" заводскими калибровками (DS18B20, датчики атмосферного давления и т.п.) такой возможности нет. В результате калибровочную информацию придется хранить где-то "снаружи". Например, в каких-нибудь конфигурационных файлах. Это потянет за собой проблему однозначной идентификации датчиков и привязки их к соответствующим данным. А она (идентификация) для разных типов устройств разная. А иногда и вообще отсутствует. Ну и что с этим делать? А если еще учесть автоматическое распознавание подключенного оборудования, то возникает серьезный клубок проблем, связанных с дополнительными калибровками таких устройств. Поэтому возможность коррекции калибровочных данных оставлена только для устройств на основе МК, где "все под контролем" :).
NBVV Бакалавр Новосибирск 93 2
Отв.2462  23 Марта 22, 07:56
Я уже подымал этот вопрос 04.02. Решения не было, но оно было и не срочно. А теперь таки нужно, ибо завтра планирую перегон в полуавтоматическом режиме (без фракционника).
Напоминаю проблему: запускаю main.py и получаю каждую секунду результат от print(info()), хотя как видно ниже, я ничего подобного не ввожу.
OldBean, в прошлый раз Вы ответили: "Скорее всего, смешались табы с пробелами в одном блоке. Если сами не найдете - приложите архивы файлов main.py и sr1.py, которые Вы используете. В выходные поразбираемся вместе."
Но файлы main.py и sr1.py брались с этого чата и на тот момент тестировались без изменений. Сейчас main.py так же без изменений, а sr1.py на всякий случай приложу.

i@raspberrypi:~ $ cd /home/pi/Desktop/Amrita/lite_0413
pi@raspberrypi:~/Desktop/Amrita/lite_0413 $ python3 main.py sr1.py
Адрес и порт TCP-сервера: ('192.168.1.107', 5238)

Датчики: Время: Горячие клавиши:
T0 22.125 °C Общее 0:00:00:01 q: Завершение работы
P0 742.3 мм.рт.ст. Режима 0:00:00:01 h: Показать обнаруженное оборудование
Q0 0 мл 0: Мониторинг
U0 222.7 В Рабочие пер-е: 1: Разгон
bot_flag True 2: Холостой ход
Контроллеры: Qg 200.0 3: Головы
q0 0 мл/час Qpg 1000.0 4: Подголовники
s0 0 ° T1cr 65.000 5: Тело
w0 0 Вт T2cr 78.600 6: Хвосты
w1 0 Вт T3cr 50.000 g: Задать уставку по текущей температуре
w2 0 Вт T4cr 55.000 +: Увеличить уставку
ww0 1100.0 -: Уменьшить уставку
Режимы: ww1 1000.0 s: Включить/выключить режим старт/стоп
0 Мониторинг ww2 1000.0 t: Включить/выключить контроль температуры ТСА
1 Разгон qg 50.0 w: Включить/выключить контроль температуры воды
2 Холостой ход qw 2000.0 b: Посылать или нет важную информацию на чат
3 Головы T1max 0.000
4 Подголовники Tset 0.000
5 Тело Tsb 0.000
6 Хвосты Pb 0.0
ss_flag False
tsa_flag False
w_flag True
ss_cntr 0 Клиентов: 0; запросов: 0

Датчики: Время: Горячие клавиши:
T0 22.188 °C Общее 0:00:00:03 q: Завершение работы
P0 742.3 мм.рт.ст. Режима 0:00:00:03 h: Показать обнаруженное оборудование
Q0 0 мл 0: Мониторинг
U0 222.8 В Рабочие пер-е: 1: Разгон
bot_flag True 2: Холостой ход
Контроллеры: Qg 200.0 3: Головы
q0 0 мл/час Qpg 1000.0 4: Подголовники
s0 0 ° T1cr 65.000 5: Тело
w0 0 Вт T2cr 78.600 6: Хвосты
w1 0 Вт T3cr 50.000 g: Задать уставку по текущей температуре
w2 0 Вт T4cr 55.000 +: Увеличить уставку
ww0 1100.0 -: Уменьшить уставку
Режимы: ww1 1000.0 s: Включить/выключить режим старт/стоп
0 Мониторинг ww2 1000.0 t: Включить/выключить контроль температуры ТСА
1 Разгон qg 50.0 w: Включить/выключить контроль температуры воды
2 Холостой ход qw 2000.0 b: Посылать или нет важную информацию на чат
3 Головы T1max 0.000
4 Подголовники Tset 0.000
5 Тело Tsb 0.000
6 Хвосты Pb 0.0
ss_flag False
tsa_flag False
w_flag True
ss_cntr 0 Клиентов: 0; запросов: 0

Датчики: Время: Горячие клавиши:
T0 22.188 °C Общее 0:00:00:04 q: Завершение работы
P0 742.3 мм.рт.ст. Режима 0:00:00:04 h: Показать обнаруженное оборудование
Q0 0 мл 0: Мониторинг
U0 222.5 В Рабочие пер-е: 1: Разгон
bot_flag True 2: Холостой ход
Контроллеры: Qg 200.0 3: Головы
q0 0 мл/час Qpg 1000.0 4: Подголовники
s0 0 ° T1cr 65.000 5: Тело
w0 0 Вт T2cr 78.600 6: Хвосты
w1 0 Вт T3cr 50.000 g: Задать уставку по текущей температуре
w2 0 Вт T4cr 55.000 +: Увеличить уставку
ww0 1100.0 -: Уменьшить уставку
Режимы: ww1 1000.0 s: Включить/выключить режим старт/стоп
0 Мониторинг ww2 1000.0 t: Включить/выключить контроль температуры ТСА
1 Разгон qg 50.0 w: Включить/выключить контроль температуры воды
2 Холостой ход qw 2000.0 b: Посылать или нет важную информацию на чат
3 Головы T1max 0.000
4 Подголовники Tset 0.000
5 Тело Tsb 0.000
6 Хвосты Pb 0.0
ss_flag False
tsa_flag False
w_flag True
ss_cntr 0 Клиентов: 0; запросов: 0

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

Форматирование при копировании сбилось. На самом деле все выглядит так:
ннн.PNG
ннн. Ненавязчивая автоматизация ректификационной установки. Автоматика.
sr1.py 19.8 Кб
ekochnev Специалист Екатеринбург 194 51
Отв.2463  23 Марта 22, 08:02, через 7 мин
NBVV, сделайте хотя бы окно терминала пошире, не 80 символов, а побольше, чтобы текст на вторую строку не переносился...
Комфортнее смотреться будет. Ну и по вертикали тоже можно побольше строк.
NBVV Бакалавр Новосибирск 93 2
Отв.2464  23 Марта 22, 08:41, через 40 мин
Я сделаю, не вопрос - но это же не решит проблемы, которую я озвучил выше?
ekochnev Специалист Екатеринбург 194 51
Отв.2465  23 Марта 22, 08:48, через 8 мин
Я пока не могу понять суть проблемы. Данные на экране должны обновляться раз в секунду. При правильно настроенном терминале, у Вас не должно быть прокрутки данных, все значения должны попадать в те же места куда они попадали при предыдущем выводе. Поэтому и предложил для начала Вам правильно настроить терминал, сейчас часть данных у Вас выводится за его границы, другая часть переносится на несколько строк. Еще раз: настройте терминал, увеличьте в нем количество строк и столбцов чтобы вся выводимая информация умещалась на экран. Это для начала. Возможно, именно это и решит Вашу проблему.

Каким терминалом Вы пользуетесь? Встроенным в малинку? Я лично не пользуюсь графическим интерфейсом малинки, подключаюсь к ней с компьютера по протоколу SSH (для этого в малинке надо включить данный сервер в настройках) с помощью программы Putty. В ней для увеличения числа строк и столбцов достаточно растянуть окно мышкой
NBVV Бакалавр Новосибирск 93 2
Отв.2466  23 Марта 22, 09:15, через 27 мин
Я использую VNC veiwer. Растягивание окна приводит лишь к увеличению масштаба отображения.

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

Подправил. Все помещается как надо, но все рано инфа на терминале дублируется каждую секунду. Скриншот не хочет прикрепляться, может какой-нибудь лимит исчерпал.
ekochnev Специалист Екатеринбург 194 51
Отв.2467  23 Марта 22, 09:24, через 10 мин
VNC veiwer - это для попадания на графический рабочий стол. Там вы запускаете терминал - текстовую консоль, в которой уже запускаете скрипты.

Растягивание окна приводит лишь к увеличению масштаба отображения.NBVV, 23 Марта 22, 09:15
Вот я про это и говорил. Сейчас у Вас терминал настроен на вывод 80 колонок и 25 строк и вся информация не умещается. Нужно изменить поведение данного окна, чтобы при растягивании увеличивалось количество отображаемых колонок и строк. Как сделать это в штатном терминале я сейчас сказать не могу - малинки нет под рукой. Поэтому предлагаю использовать другую программу.
1. Включите в настройках малинки SSH сервер
2. Скачайте на компьютер с которого запускаете VNC Viewer программу Putty (https://www.putty.org/)
3. Запустите Putty и соеденитесь с малинкой по этому же адресу, что Вы используете в VNC, пользователь и пароль такие же.
4. Работайте в окне Putty точно также как Вы работаете в окне терминала через VNC Viewer

Все должно работать корректно
NBVV Бакалавр Новосибирск 93 2
Отв.2468  23 Марта 22, 10:02, через 39 мин
Да, через Putty все хорошо.)) Спасибо.
ekochnev Специалист Екатеринбург 194 51
Отв.2469  23 Марта 22, 10:22, через 21 мин
Да, через Putty все хорошо.)) Спасибо.NBVV, 23 Марта 22, 10:02

Я вам настоятельно рекомендую установить еще одну программу, называется tmux, устанавливается из консоли командой:

sudo apt install tmux

Как ей пользоваться:

После самого ПЕРВОГО входа через Putty наберите в командной строке

tmux

и дальше работайте как обычно.

Если после этого по какой-либо причине у вас прерывается связь и окно Putty отсоединяется от малинки, но малинка при этом не перегружалась, то можно будет ПОВТОРНО зайти через Putty и набрать

tmux attach

и Вы увидите то же самое окно в том же самом состоянии что бы до до разрыва связи. Т.е. при разрыве связи все процессы, что были запущены после запуска tmux не уничтожаются. Это очень удобно, допустим, при длительной ректификации. Запустил через Putty отбор голов, отсоединился (если нет необходимости постоянно контролировать процесс), через какое-то время зашел снова, проверил, ничего при этом не прерывается.

Еще один плюс использования tmux - это дублирование терминальных окон.
При первом входе (допустим, с компьютера) набираем tmux, не закрывая это окно тут же входим с другого устройства (допустим, с ноутбука), набираем tmux attach и видим это же самое окно с этими же самыми данными. Причем управлять можно одновременно хоть с компьютера, хоть с ноутбука, содержимое всех окон синхронизируется. Очень удобно, это позволяет контролировать процесс одновременно с нескольких мест!

Ну и можно почитать еще в сети документацию по команде tmux, там есть еще куча полезных возможностей :-)
NBVV Бакалавр Новосибирск 93 2
Отв.2470  24 Марта 22, 07:07
В main.py есть такие строки:
try:
crit_info('Начало работы')
except:
pass
Если переменная bot_flag имеет значение True, то как только у меня запустился main.py, в чат бот придет сообщение "Начало работы"? Или нужны еще какие-то условия.
Почему спрашиваю - у меня ничего не приходит.
При этом я могу пересылать сообщения из других чатов своему боту (и он их видит), и при отправке ему из адресной строки браузера https://api.telegram.org/bot5074536136:______c/getMe
приходит ответ:
{"ok":true,"result":{"id":5074536136,"is_bot":true,"first_name":"nbv_bot","username":"nbvvvBot","can_join_groups":true,"can_read_all_group_messages":false,"supports_inline_queries":false}}
OldBean Доцент Красноярск 1K 1.4K
Отв.2471  24 Марта 22, 17:55
Или нужны еще какие-то условия.NBVV, 24 Марта 22, 07:07
Нужно задавать token и chat_id в пользовательских скриптах. См. файлы sr1.py или sr2.py. В начале.

Вчера что-то форум глючил. Не смог ответить. Для полноты картины, на всякий случай, дополню информацию коллеги ekochnev.
все рано инфа на терминале дублируется каждую секунду.NBVV, 23 Марта 22, 09:15
Для устранения скроллинга нужно увеличить размер окна терминала. Проще всего это сделать так: 1) на малинке запустить терминал (ctrl+alt+t), далее 2) меню "Правка -> Параметры" и 3) в диалоговой панели в закладке "Отображение" выбрать нужный размер окна по умолчанию, при котором не будет скролинга. У меня, например, установлено 92х25 текселов. После этого консоль будет всегда открываться нужного (большего) размера и прокрутки не будет.

Ну а для запуска приложения в фоновом режиме (для длительных сессий, когда соединение может разорваться) есть старый-добрый "screen". Мы его здесь уже несколько раз обсуждали. tmux тоже неплох. Хотя, с точки зрения простого запуска приложений в фоновом режиме, все равно чем пользоваться - screen-ом или tmux-ом.
ekochnev Специалист Екатеринбург 194 51
Отв.2472  24 Марта 22, 17:59, через 4 мин
Да, screen конечно никуда не делся, я пользовался и тем и другим. Но tmux мне показался намного интереснее и удобнее. К тому же у него много дополнительных возможностей.
NBVV Бакалавр Новосибирск 93 2
Отв.2473  25 Марта 22, 02:10
Нужно задавать token и chat_id в пользовательских скриптах. См. файлы sr1.py или sr2.py. В начале.OldBean, 24 Марта 22, 17:55
Все задано. Но сообщений нет, почему-то.
Опять не получается прикрепить файл sr1. Но он есть в сообщении 2462 на этой странице.

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

И еще вопрос. OldBean, почему у Вас в sr1 в режимах Голов, Подголовников и Оборотных хвостов выключен старт стоп? А с помощью чего тогда устанавливается скорость отбора?
OldBean Доцент Красноярск 1K 1.4K
Отв.2474  25 Марта 22, 12:31
Все задано. Но сообщений нет, почему-то.NBVV, 25 Марта 22, 02:10
Пока не понимаю почему. Возможно это связано с самой телегой. Мой бот сделан уже давно. Они что-то присылали про изменения политики с ботами, но сказали, что старые боты будут продолжать работать в прежнем режиме. Поэтому я успешно забыл про это письмо. Возможно причина здесь? Если отыщу письмо в выходные - скажу.
Опять не получается прикрепить файл sr1.NBVV, 25 Марта 22, 02:10
Используйте тег "code". Про теги писано здесь. Хотя, что-то глючит форум последние пару дней. У меня, например, сейчас тупо не вставляются картинки.
почему у Вас в sr1 в режимах Голов, Подголовников и Оборотных хвостов выключен старт стоп? А с помощью чего тогда устанавливается скорость отбора?NBVV, 25 Марта 22, 02:10
Режим старт-стоп нужен только при отборе тела. Он определяется температурой в нижней царге. Если температура в царге превышает порог (ситуация "стоп"), отбор тупо прекращается, если ниже - включается с заданной скоростью отбора. Сама же "рабочая" скорость отбора регулируется установкой уровня ШИМ в контроллере клапана отбора. Старт-стоп, конечно же влияет на среднюю скорость отбора, но это совершенно разные параметры. ШИМ отрабатывает с периодом 10 сек, а периоды старт-стопа могут длиться минутами и более.
NBVV Бакалавр Новосибирск 93 2
Отв.2475  01 Мая 22, 07:46
Сегодня перегнал брагу в СР1. Количество старт-стопов остановилось на 9-ти и дальше T1 только росла, на "хвосты" перевел вручную. И в прошлый раз было точно также. Что может быть не так? Или это не является проблемой? Изменить счетчик с 40-ка на 9-ть и забыть? Хотя по подсчетам (возможно неверным) там осталось около литра спирта.
тело2.png
тело2. Ненавязчивая автоматизация ректификационной установки. Автоматика.
OldBean Доцент Красноярск 1K 1.4K
Отв.2476  01 Мая 22, 16:54
Количество старт-стопов остановилось на 9-ти и дальше T1 только рослаNBVV, 01 Мая 22, 07:46
1. Странно, что температура T1 только увеличивается. Если T1 - температура в нижней части колонны, и на нее завязан старт-стоп, то, по достижению уставки, отбор должен выключиться и температура, после небольшого подъема "по инерции" должна начать снижаться до очередного "старта". Если ситуация повторяется, то что-то не так с логикой работы установки. Чтобы разобраться нужна дополнительная информация: конфигурация установки, файл или полные графики лога.
2. Зря Вы перегоняете брагу сразу в СР1. Приличный ректификат на загаженной брагой колонне Вы не получите. Правильней так. Сначала брагу перегоняют в СС (спирт-сырец) крепостью градусов 30-40. Это делается простой дистилляцией. В СС уже нет дрожжей и продуктов их деструкции. А вот уже СС потом пускают в ректификацию на колонне.
NBVV Бакалавр Новосибирск 93 2
Отв.2477  02 Мая 22, 05:56
invalid url Я прошу прощения, оговорился, конечно же перегнал СС в СР1, а не брагу.
Файл лога приложил. Конфигурация следующая: luxstahl8, колонна 3 дюйма высотой 130 см. Датчик Т1 находится на высоте 35 см от крышки куба. Тэн 3шт. х 2 кВт. Рабочая мощность 3.1 кВт. Скорость отбора 2000 мл/час (возможно процентов на 5 выше, все никак не откалибрую клапан).

invalid url

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

Не хочет прикрепляться файл лога. Залил в облако. https://disk.yandex.ru/d/Rta5tXU_dqLQMA

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

И подскажите, пожалуйста, программу для представления файла лога в виде графиков.
OldBean Доцент Красноярск 1K 1.4K
Отв.2478  03 Мая 22, 06:52
Не хочет прикрепляться файл лога.NBVV, 02 Мая 22, 05:56
В следующий раз запакуйте его в архив (например, zip). Должен прикрепиться. Возможно, из-за отсутствия расширения у файла, "искусственный интеллект" форума не распознает тип файла.
И подскажите, пожалуйста, программу для представления файла лога в виде графиков.NBVV, 02 Мая 22, 05:56
И подскажите, пожалуйста, программу для представления файла лога в виде графиков.
log - это обычный текстовый файл. Каждая строка (кроме шапки) - информация о системе в конкретный момент времени. Разделитель параметров в строке - пробел. Этот файл можно загрузить в любую программу в которой можно строить графики (например, Libre Calc или Excel). На примере Libre Calc - ипортируйте файл или откройте его в любом текстовом редакторе и скопируйте через буфер обмена. Получите электронную таблицу. Вставьте на страницу диаграмму типа x-y. Потомы добавьте в диаграмму нужные столбцы-параметры. Если не приходилось пользоваться - лучше сначала почитать инструкцию. Информации в Сети прорва. На все случаи жизни. Пример графика, построенного в Libre Calc по Вашему логу - ниже.
Снимок экрана от 2022-05-03 10-39-54.png
Снимок экрана от 2022-05-03 10-39-54. Ненавязчивая автоматизация ректификационной установки. Автоматика.



Теперь конкретно по логу. Во-первых, ни в одном режиме не видно выхода колонны в стационарный режим (холостого ход). Похоже, Вы "прогнали" всю ректификацию в "ручном" режиме менее, чем за час. Не обращая внимание на состояние установки. Во-вторых, уставка (Tset, самая правая колонка) у Вас почему-то всегда равна нулю. Так не должно быть.

В общем, совет такой. Если есть возможность, пройдите процесс ректификации "вручную". Четко фиксируя достигнутые режимы (состояния). Не пропуская ничего. Ну, хотя бы до начала отбора голов. Приготовьте спирт-сырец (или просто модельную смесь градусов 30-40). Аккуратно пройдите разгон (чтобы не заплевать окружение через ТСА). Затем переключите ТЭНы на рабочую мощность. Отбор, естественно, должен быть выключен. И добейтесь стационарного состояния колонны (по температурным датчикам в кубе, нижней царге и дефлегматоре). Думаю, тут уже многое прояснится. Потом остудите все. И попробуйте пройти эти же стадии в автоматическом режиме. Покажите, пожалуйста, логи этих двух вариантов. Пожалуй, только после этого, если, конечно, все будет нормально, имеет смысл двигаться дальше.
NBVV Бакалавр Новосибирск 93 2
Отв.2479  03 Мая 22, 11:42
Прикрепляя файл лога, я его толком не просмотрел. Я считал, что в нем, как это часто реализуется, множество событий за определенный период записываются последовательно, к примеру, как в системном журнале Windows. Но оказалось, что там отображен только последний запуск установки. А у меня последнее включение было только для пропарки колонны.
В следующий раз постараюсь все успеть в один день, ну или сохраню файл лога перед следующим включением.
Кстати, в связи с вышеизложенным)), может быть было бы лучше каждый раз осуществлять запись нового файла лога, без затирания старого? Помечать эти файлы, к примеру, текущей датой и временем начала процесса и помещать в отдельную папку?