Форум самогонщиков Сайт Барахолка Магазин Помощь солдатам

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

Форум самогонщиков Автоматика
1 ... 117 118 119 120 121 122 123 ... 132 120
OldBean Доцент Красноярск 1K 1.4K
Отв.2380  02 Февр. 22, 14:12
А для экрана покупать металлизированные коннекторы или достаточно посадить его на землю?NBVV, 02 Февр. 22, 07:39
В общем-то все равно. Но обратите внимание, что заземлять экран нужно в одной точке (с одного конца). Если это, конечно, настоящая земля, а не ноль (зануление). Цеплять экран к нулю - в общем случае плохое решение. Если же нормальной, хорошей земли нет, то лучше вообще использовать витую пару без экрана. Витая пара и так неплохо компенсирует наводки. Тем более, что 1-Wire - довольно медленная шина.
NBVV Специалист Новосибирск 124 2
Отв.2381  02 Февр. 22, 14:31, через 20 мин
Земли в квартире нет. Может тогда соединить экран с двумя "земляными" проводами в витых парах?
OldBean Доцент Красноярск 1K 1.4K
Отв.2382  02 Февр. 22, 15:41
Может тогда соединить экран с двумя "земляными" проводами в витых парах?NBVV, 02 Февр. 22, 14:31
Смысл витой пары в симметрии и постоянном шаге скрутки. В результате эдс от длинноволновой наводки, наводимая в одной "петельке" витой пары, компенсируется такой же эдс, но с обратным знаком, наводимой в следующей "петельке". Таким образом витая пара компенсирует длинноволновые наводки. Экран, подключенный так, как Вы говорите, работая как длинная антенна, будет "болтать" одну из линий каждой пары. При сильных наводках (например, при грозе) эта болтанка может оказаться существенной для логики. Или даже, не дай Бог!, фатальной...
NBVV Специалист Новосибирск 124 2
Отв.2383  04 Февр. 22, 03:53
Двигаюсь дальше)). Почему у меня нет рабочих переменных?
@raspberrypi:~/Desktop/Amrita/lite_0413 $ python3
Python 3.9.2 (default, Mar 12 2021, 04:06:34)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from lite import *
>>> print(hinfo())
Список устройств, обнаруженных на шине i2c и хабах:
U0 11_8_A1 Датчик RMS [0.3549, 0, 1]
w0 13_8_A3 PDM-контроллер [2000.0, 0, 2]
Z0 15_0_FF Нормально разомкнутый контакт [1.0, 0, 0]
Z1 15_1_FF Нормально разомкнутый контакт [1.0, 0, 0]
Z2 15_2_FF Нормально разомкнутый контакт [1.0, 0, 0]
Z3 15_3_FF Нормально разомкнутый контакт [1.0, 0, 0]
Z4 15_4_FF Нормально разомкнутый контакт [1.0, 0, 0]
Z5 15_5_FF Нормально разомкнутый контакт [1.0, 0, 0]
Z6 15_6_FF Нормально разомкнутый контакт [1.0, 0, 0]
Z7 15_7_FF Нормально разомкнутый контакт [1.0, 0, 0]
H0 15_8_A5 Хаб 1-Wire
P0 77_8_55 Датчик давления BMP180 [0.00750061683, 0, 5]

>>> print(vinfo())
Датчики:
P0 766.9 мм.рт.ст.
U0 227.9 В

Контроллеры:
w0 0 Вт

>>> print(uinfo())
Рабочие пер-е:

>>>
И не желают работать горячие клавиши:
Режимы:
0 Мониторинг

>>> v
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'v' is not defined
>>> v:
File "<stdin>", line 1
v:
^
SyntaxError: invalid syntax
>>> i
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'i' is not defined
>>> i:
File "<stdin>", line 1
i:
^
SyntaxError: invalid syntax
OldBean Доцент Красноярск 1K 1.4K
Отв.2384  04 Февр. 22, 05:31
Почему у меня нет рабочих переменных?NBVV, 04 Февр. 22, 03:53
Потому что Вы их и не создавали.

Рабочие (пользовательские) переменные создаются либо в пользовательских скриптах, которые загружаются при запуске основной программы (main.py) и указываются как параметры в командной строке, либо в консоли питона, если вы работаете непосредственно с библиотекой lite. Примеры создания и использования пользовательских переменных в скриптах есть в файлах sr1.py и sr2.py. В консоли питона (и вообще в питоне) переменные создаются в операциях присваивания. Например, так: pi = 3.14. При этом создается вещественная переменная pi, значение которой будет 3.14.

В чистой же библиотеке lite, которую Вы импортировали, есть, полезные, переменные, которые связаны с подключенным оборудованием, которые система обнаружила. Эти переменные создаются автоматически при импорте библиотеки. В Вашем случае это объекты U0, w0, H0 и P0. У каждого из этих объектов (переменных) есть разные свойства, которые тоже являются переменными и имеют некие значения. Для доступа к этим переменным нужно использовать конструкцию "Имя объекта.имя свойства". Например, U0.v - это текущее значение RMS напряжения в сети, P0.v - значение атмосферного давления, w0.v - текущая мощность нагрева ТЭНа. "v" - это просто сокращение "value". Если, после импорта lite, Вы напишете в консоли P0.v и нажмете Enter, то питон напечатает Вам значение атмосферного давления.
NBVV Специалист Новосибирск 124 2
Отв.2385  04 Февр. 22, 05:46, через 16 мин
А горячие клавиши тоже заработают после запуска main (при условии, что я буду использовать Ваш sr1)?

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

Пытаюсь запустить main. Если пишу как в руководстве - python3 main.py user.py, - то сначала ругается, затем выдает каждую секунду информацию функции info()(не останавливаясь):

pi@raspberrypi:~/Desktop/Amrita/lite_0413 $ python3 main.py user.py,
No module named 'user'
Адрес и порт TCP-сервера: ('localhost', 5238)
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python3.9/threading.py", line 954, in _bootstrap_inner
self.run()
File "/usr/lib/python3.9/threading.py", line 892, in run
self._target(*self._args, **self._kwargs)
File "/home/pi/Desktop/Amrita/lite_0413/lite.py", line 1526, in server_thread
server.bind(server_addr)
OSError: [Errno 98] Address already in use

Датчики: Время: Горячие клавиши:
P0 766.9 мм.рт.ст. Общее 0:00:00:01 q: Завершение работы
Q0 0 мл Режима 0:00:00:01 h: Показать обнаруженное оборудование
U0 224.7 В
Рабочие пер-е:
Контроллеры:
q0 0 мл/час
s0 0 °
w0 0 Вт

Режимы:
0 Мониторинг Клиентов: 0; запросов: 0

Датчики: Время: Горячие клавиши:
P0 766.9 мм.рт.ст. Общее 0:00:00:02 q: Завершение работы
Q0 0 мл Режима 0:00:00:02 h: Показать обнаруженное оборудование
U0 224.6 В
Рабочие пер-е:
Контроллеры:
q0 0 мл/час
s0 0 °
w0 0 Вт

Режимы:
0 Мониторинг Клиентов: 0; запросов: 0

Если пишу python3 main.py sr1.py ? то :

[6]+ Stopped python3 main.py user.py
pi@raspberrypi:~/Desktop/Amrita/lite_0413 $ python3 main.py sr1.py
Traceback (most recent call last):
File "/home/pi/Desktop/Amrita/lite_0413/main.py", line 22, in <module>
exec('from ' + sp + ' import *')
File "<string>", line 1, in <module>
File "/home/pi/Desktop/Amrita/lite_0413/sr1.py", line 110
time.sleep(1)
IndentationError: unexpected indent
pi@raspberrypi:~/Desktop/Amrita/lite_0413 $

Что нужно сделать, чтобы main запустился корректно?
OldBean Доцент Красноярск 1K 1.4K
Отв.2386  04 Февр. 22, 07:42
А горячие клавиши тоже заработают после запуска main (при условии, что я буду использовать Ваш sr1)?NBVV, 04 Февр. 22, 05:46
Конечно заработают, если нормально запустится main.py. Именно там они и обрабатываются.

Что нужно сделать, чтобы main запустился корректно?NBVV, 04 Февр. 22, 05:46
Нужно скормить ему нормальный файл пользовательского скрипта. Имя "user.py" в примере - это имя файла пользовательского скрипта, в котором отражены специфические особенности решаемой задачи. Имя может быть любое. Допустимое в данной ОС. А у Вас нет файла (пользовательского скрипта) с таким именем. В этом случае система должна работать в одном режиме "Мониторинг". Странно, что у Вас экран не обновляется корректно. В выходные попробую промоделировать Вашу ситуацию. Тогда будет понятна причина этого мусора.

Если пишу python3 main.py sr1.py ? то :NBVV, 04 Февр. 22, 05:46
Скорее всего, смешались табы с пробелами в одном блоке. Если сами не найдете - приложите архивы файлов main.py и sr1.py, которые Вы используете. В выходные поразбираемся вместе.
NBVV Специалист Новосибирск 124 2
Отв.2387  04 Февр. 22, 07:48, через 7 мин
main.py и sr1.py скачаны с этого сайта, изменений пока не вносил.
main.py 11.2 Кб
sr1.py 18.4 Кб
ekochnev Магистр Екатеринбург 207 54
Отв.2388  04 Февр. 22, 07:58, через 10 мин
Там в sr1.py явно двух пробелов не хватает в начале 109-й строки.
NBVV Специалист Новосибирск 124 2
Отв.2389  04 Февр. 22, 08:14, через 17 мин
Только в 109-й или со 109-й по 115-ю?
ekochnev Магистр Екатеринбург 207 54
Отв.2390  04 Февр. 22, 08:22, через 8 мин
NBVV, ну так возьмите и попробуйте исправить и посмотрите что получится!
У меня под рукой сейчас нет ни оборудования, ни подходящего компьютера.
При запуске у вас ругань идет на неправильный отступ в 110-й строке. Чисто визуально я вижу, что нужно либо добавить два пробела в начале 109-й строки, либо убрать два пробела в начале 110-й. Больше пока ничем помочь не могу. Сам я эти скрипты не использовал никогда.
NBVV Специалист Новосибирск 124 2
Отв.2391  04 Февр. 22, 08:26, через 5 мин
Дело в том, что строки со 109-й по 115-ю все без пробелов.

''' Добавим специфичные для данного процесса горячие клавиши
'''
hot_keys['g'] = 'Задать уставку по текущей температуре'
hot_keys['+'] = 'Увеличить уставку'
hot_keys['-'] = 'Уменьшить уставку'
hot_keys['s'] = 'Включить/выключить режим старт/стоп'
hot_keys['t'] = 'Включить/выключить контроль температуры ТСА'
hot_keys['w'] = 'Включить/выключить контроль температуры воды'
hot_keys['b'] = 'Посылать или нет важную информацию на чат'
#-------------------------------------------------------------------------------
ekochnev Магистр Екатеринбург 207 54
Отв.2392  04 Февр. 22, 08:36, через 10 мин
Я не знаю, как Вы считает строки, но в приложенном выше вами же файле, то что Вы написали в предыдущем сообщении у меня находится в 209 строке, а я же пишу про 109-ю...
NBVV Специалист Новосибирск 124 2
Отв.2393  04 Февр. 22, 08:46, через 11 мин
Я прошу прощения, отображение сотен номеров строк не входит в экран, только десятки)), пролистывал строки вручную и промазал на сотню.

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

Пробелы поставил.

pi@raspberrypi:~/Desktop/Amrita/lite_0413 $ python3 main.py sr1.py
Traceback (most recent call last):
File "/home/pi/Desktop/Amrita/lite_0413/main.py", line 22, in <module>
exec('from ' + sp + ' import *')
File "<string>", line 1, in <module>
File "/home/pi/Desktop/Amrita/lite_0413/sr1.py", line 25, in <module>
url = 'https://api.telegram.org/bot' + token + '/'
NameError: name 'token' is not defined
pi@raspberrypi:~/Desktop/Amrita/lite_0413 $
ekochnev Магистр Екатеринбург 207 54
Отв.2394  04 Февр. 22, 08:58, через 12 мин
Все правильно, ругается на 25 строку.
А сейчас внимательно прочитайте что перед ней написано.

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

Плохо конечно, что Сергей выкладывает скрипты с ошибками, не проверяя их работоспособность, которые нельзя просто взять и запустить. Для человека, ориентирующегося в питоне, исправить все это абсолютно не проблема, а вот для новичков беда.
Чувствую, следующая ошибка у NBVV будет из-за отсутствующего фракционника или датчика температуры.
NBVV Специалист Новосибирск 124 2
Отв.2395  04 Февр. 22, 09:11, через 14 мин
С моим знанием питона, мне сейчас бесполезно вчитываться - даже вчитавшись я не смогу сделать вывод и поправить ошибку. Тем более, что эти скрипты уже у кого-то, как я понимаю, работают и я думаю, что может я что-то делаю не так. Если короче, то сейчас мне нужна рыба, а не удочка)).
ekochnev Магистр Екатеринбург 207 54
Отв.2396  04 Февр. 22, 09:13, через 2 мин
Судя по всему, Вы даже не пытались читать. Там нормальным русским языком все написано. Текст никак не связан с программированием
NBVV Специалист Новосибирск 124 2
Отв.2397  04 Февр. 22, 13:49
Вы неверно судите. Я же сказал что не знаю, что с этим (прочитанным) делать. Ну нет у меня телеграм бота, но ведь, явно,
скрипт не должен из-за этого останавливаться. Какой-то баг и я спрашиваю как его исправить. И заранее написал про рыбу и удочку))
ekochnev Магистр Екатеринбург 207 54
Отв.2398  04 Февр. 22, 14:13, через 24 мин
Я понимаю, что его у вас нету.
Так выше 25-й строки на которую я ссылался, как раз и написано, где его можно зарегистрировать, чтобы этот телеграм-бот у вас появился. Ну либо закомментируйте в этом файле все места, где идет ссылка на него, чтобы питон не ругался на его отсутствие. Если Вы хотите пользоваться данным софтом как есть без изменений, тогда следуйте инструкциям, как сделать так, чтобы он работал (зарегистрировать бот). Если хотите, что-то особенное, что есть только у Вас, тогда лучше начать изучать питон и написать свой скрипт. Я лично пошел по этому пути.
OldBean Доцент Красноярск 1K 1.4K
Отв.2399  04 Февр. 22, 15:24
Плохо конечно, что Сергей выкладывает скрипты с ошибками, не проверяя их работоспособностьekochnev, 04 Февр. 22, 08:58
Во-первых, я выкладываю только те скрипты, которые я реально использую в своих процессах. Т.е. на моих конфигурациях они работают безупречно. Естественно, перед публикацией я удаляю из скриптов некоторые фрагменты, которые не предназначены для публикации (IP-шники, токены ботов и т.п.). Возможно, эти два пробела в 109-й строке удалились случайно при такой корреции. Перед публикацией. Ну, например, случайно курсор в редакторе не туда встал. Бывает. :))) Естественно, у меня нет возможности проводить полное тестирование всех скриптов после таких коррекций. Это досадная и, кстати, редкая случайность. Поэтому не нужно обобщать...

Во-вторых, это не коммерческий продукт. У меня нет возможности (да и цели такой не стоит!) проводить полное тестирование софта, с учетом, в том числе, возможности запуска ПО не совсем подготовленными пользователями. Это - просто мое хобби, с результатами которого я делюсь с форумчанами. В знак благодарности за другую информацию, которую народ выкладывает на форуме. Поэтому этот софт - абсолютно "as is...". Я готов бесконечно помогать новичкам в освоении питона, но без претензий к качеству ПО, которое я пишу, по сути, для себя.

Ну и, в-третьих. Данная автоматика - это не электрочайник, который воткнул в розетку, нажал кнопку - он тебе и водичку вскипятил. Это конструктор, который, при определенном умении, позволяет решать очень широкий класс задач, связанных с автоматизацией различных процессов. Но она (ненавязчивая автоматика) требует хотя бы минимального уровня владения электроникой и программированием как на C (прошивки), так и на питоне (собственно процессы). В основном, конечно, на питоне.

Ну нет у меня телеграм бота, но ведь, явно,
скрипт не должен из-за этого останавливаться. Какой-то баг и я спрашиваю как его исправить. И заранее написал про рыбу и удочку))NBVV, 04 Февр. 22, 13:49
Конечно не должен. Там стоит опеределенный флаг (условие). Скрипт просто не должен посылать сообщения в telegram.

В выходные смоделирую Вашу конфигурацию и ситуацию. Разберемся. Другого еще не было :) Но пион подучить, все-таки, желательно. Это очень простой, изящный, модный и перспективный язык. В любом случае в жизни пригодится. Не пожалеете. Скоро эти проблемы Вам покажутся просто детскими и смешными :)