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

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

Форум самогонщиков Автоматика
1 ... 90 91 92 93 94 95 96 ... 132 93
OldBean Доцент Красноярск 1K 1.4K
Отв.1840  13 Янв. 20, 19:56
gol_avto, данная система (которая LITE) как раз и задумывалась чтобы облегчить изготовление и настройку совершенно разных автоматик для коллег-непрограммистов. Но полностью исключить алгоритмику никак не получается. В общем то, оно и понятно. Потому что, для того чтобы малинка управляла установкой именно так как Вы хотите, ей нужно как-то объяснить ЧТО конкретно Вы от нее хотите. Ну не умеют пока компьютеры читать мысли... Питон же - один из простейших вариантов достичь взаимопонимания с малинкой. Это первое. Второе. Концепция пользовательских скриптов призвана дополнительно упростить написание управляющих программ. Просто она еще сыровата и поэтому требует немного большего напряжения, чем хотелось бы. Но со временем язык пользовательских скриптов (по сути это будет специализированное подмножество питона) будет упрощаться и все больше приближаться к "человеческой" логике управления всем многообразием наших процессов.

Мне жаль, что Вы решили прервать наш с Вами тернистый путь. Вы прошли уже заметную его часть. Если передумаете, я готов продолжить его вместе с Вами. Уже недалек тот миг, когда в голове что-то "щелкнет", туман рассеется и все станет кристально прозрачным и понятным. Я не намного младше Вас, поэтому рискну дать совет - попробуйте сделать еще несколько шагов. Если что - подстрахую. По мере сил.
сообщения удалены (8)
Пикаль Доктор наук СПб 992 174
Отв.1841  15 Янв. 20, 00:11
Понял, бесполезно...
сообщение удалено
OldBean Доцент Красноярск 1K 1.4K
Отв.1842  15 Янв. 20, 06:55
To ekochnev

Евгений, я немножко "отрефлексировал" относительно работы синхронизатора. Ну, в принципе, можно отказаться от жесткого тактирования его работы и перейти на событийную модель. Т.е. обновлять контроллеры исполнительных устройств сразу же при получении запроса на изменение параметра, выводить показания датчиков сразу же по окончанию циклов преобразования и т.п. Протоколирование в БД тоже можно частично реализовать в духе время-событие. Для исполнительных устройств. В этом случае интерактивный режим работы, конечно, станет более комфортным. Однако, заметно усложнится работа с редиской. Ну, в общем, можно подумать в этом направлении.
ekochnev Магистр Екатеринбург 207 54
Отв.1843  15 Янв. 20, 08:08
перейти на событийную модельOldBean, 15 Янв. 20, 06:55
Это наверное будет более интересным, хотя пока и не могу оценить насколько сложным в реализации. Тоже подумаю в эту сторону...
nubsaybot Студент Рязань 27 6
Отв.1844  07 Февр. 20, 20:47
Подскажите почему малинка 3б+ так себя ведет, ищет только по четным адресам?
Вот результат i2cdetect -y 1 на лог. анализаторе, шина пустая, правильно ли это?
screenshot.png
Screenshot. Ненавязчивая автоматизация ректификационной установки. Автоматика.

Как решить вопрос? что посоветуете?
ekochnev Магистр Екатеринбург 207 54
Отв.1845  07 Февр. 20, 20:55, через 9 мин
Как решить вопрос? что посоветуете?nubsaybot, 07 Февр. 20, 20:47
Пункт 14.4 самого первого сообщения этой темы не про это?
OldBean Доцент Красноярск 1K 1.4K
Отв.1846  08 Февр. 20, 12:45
Новая прошивка контактора не хочет работать нигде, хотя lsync видит модуль в списке устройств.ekochnev, 10 Янв. 20, 22:26
Сейчас перепрошил один силовой модуль в качестве реле (версия прошивки 0301) и проверил. Вроде работает стабильно. Как через синхронизатор (первый скриншот), так и напрямую (второй скриншот). Евгений, может быть какая-нибудь наводка на линиях INT или RES? Попробуйте зашунтировать их на землю емкостями (на уровне сотни нан).

Подскажите почему малинка 3б+ так себя ведет, ищет только по четным адресам?nubsaybot, 07 Февр. 20, 20:47
Это не малинка, это протокол i2c так устроен. Адрес - это старшие 7 бит после старта, а младший бит - команда для слейва (чтение или запись).
2020-02-08-162100_1920x1080_scrot.png
2020-02-08-162100_1920x1080_scrot.png Ненавязчивая автоматизация ректификационной установки. Автоматика.
2020-02-08-162613_1920x1080_scrot.png
2020-02-08-162613_1920x1080_scrot.png Ненавязчивая автоматизация ректификационной установки. Автоматика.
ekochnev Магистр Екатеринбург 207 54
Отв.1847  08 Февр. 20, 19:13
Евгений, может быть какая-нибудь наводка на линиях INT или RES?OldBean, 08 Февр. 20, 12:45
Сергей, тут для меня какая то загадочная и непонятная ситуация. Скорей всего наводка, но откуда и куда она идет, я вычислить пока не могу.
В ходе копания выяснил, что если отсоединить обмотку контактора от модуля, то модуль начинает работать нормально (светодиод на модуле загорается и гаснет.
Мало того, если вместо обмотки контактора подсоединить к модулю обычную лампочку, то тоже все работает. Конденсаторы на линиях INT и RES не помогают, мало того, полностью отсоединял эти контакты модуля от крейта (INT на модуле притягивал через резистор на +3.3), номиналами резистора R2 и конденсатора C6 около силового симистора я тоже игрался, не помогает. Даже атмегу уже пробовал менять (она в панельке). Пока ничего не помогает - без контактора или с лампочкой вместо него все работает, с контактором нет. Если на модуле зажечь светодиод с отключенным контактором, а потом его подсоединить, то светодиод гаснет, т.е. микроконтроллер переводит вывод в выключенное состояние. Но самое удивительное для меня - это то, что стоит поменять прошивку на старую, то контактор начинает включаться и выключаться абсолютно нормально. При этом я сравнивал прошивки - в новой ничего кроме обработки прерывания на INT не добавилось и поэтому такие выкрутасы в работе мне не понятны. Буду копать дальше. С осциллографом дела пошли бы быстрее, но в хозяйстве такого не имею. Копаюсь почти вслепую.

P.S. пробовал на всякий случай даже напряжение питания вместо 5.0 вольт делать 5.2, не помогает...
P.P.S. Остальные аналогичные модули (клапана, тэн) со своими новыми прошивками работают нормально, НО!!! Если к модулю, управляющему клапаном в качестве нагрузки присоединить не клапан, а данный контактор... ...то он тоже перестает работать и ведет себя аналогично: контактор щелкает и на мгновение включается, затем тут же выключается..

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

Разобрался наконец со своей бедой, излагаю суть.

Исходные данные:

- шина INT у нас предназначена для формирования сигнала аварии
- вывод GPIO5 малинки (контакт 29) запрограммирован как вход для чтения уровня сигнала с шины INT (т.е. направление сигнала от крейта к малинке)
- т.к. логика малинки рассчитана на напряжение 3.3в, то на крейте притягиваем шину INT к шине 3.3в через резистор R1=10кОм

Суть проблемы:

Кратко: микроконтроллер в модуле контактора воспринимает сигнал с шины INT как логический ноль и отрубает контактор считая, что произошла авария.

Детали: У меня на шине INT напряжение 3.28 вольта. Если вывод GPIO5 малинки совсем не подключен к крейту, то микроконтроллер контактора почему-то считает этот уровень нулем, поэтому при подаче сигнала на срабатывание, он даже не пытается включить контактор. При подключении к крейту входа GPIO5 малинки, не знаю почему, но уровень шины INT на какие то мизерные доли повышается и видимо чуть-чуть превышает пороговый, контроллер воспринимает его как единицу. При подаче сигнала на включение индуктивной нагрузки контактора на шину наводится какая-то небольшая помеха, уровень опускается ниже порогового, контроллер считает, что на шине единица сменилась на логический ноль и практически сразу отключает только что включившийся контактор. При резистивной нагрузке в виде обычной лампы помехи не происходит и контактор после включения не отключается.

Решение:

Казалось бы, логичным подходом будет снижение уровня помех на шине INT. Пробовал ставить сглаживающие конденсаторы, как керамические (100нФ) между шиной INT и землей, так и на шину +3.3 к которой шина INT подтягивается через резистор R1 на крейте. Между +3.3 и землей ставил пару конденсаторов +10 мкФ и 100нФ. Но данным подходом устойчивой работы добиться не удалось.

Кардинальным решением стало подтягивание шины INT через резистор R1 крейта не к шине +3.3, а к шине +5 (отсоединил резистор R1 от +3.3 и соединил с +5). Чтобы малинка при этом не вышла из строя между шиной INT крейта и входом GPIO5 малинки пришлось поставить активный преобразователь уровней. В таком виде все работает стабильно.

Возможно получится упростить:

Т.к. направление сигнала INT у нас одностороннее: от шины INT крейта к входу GPIO5 малинки, то, думаю, что можно упростить поставив в данном случае вместо активного преобразователя уровней простейший делитель из двух резисторов. Но это еще не пробовал.

Интересно было бы конечно посмотреть на осциллографе, что там у меня творится на шине INT крейта, но не имею такого в хозяйстве. Однако, притягивание данной шины к +5 вместо +3.3 в моем случае однозначно является решением.
OldBean Доцент Красноярск 1K 1.4K
Отв.1848  10 Февр. 20, 17:42
Я вот сейчас подключал контактор в нагрузку контроллера реле. У меня все работает стабильно ( в смысле - самостоятельно не отрубается) и при обычной подтяжке линии INT к 3.3В. Прерывания по кнопке INT тоже отрабатываются стабильно.

Судя по всему, у Вас действительно где-то проскакивает наводка при срабатывании контактора. Вопрос - где? На линии INT или на самой плате контроллера. Может быть дело в компоновке контроллера? Силовые и сигнальные цепи не слишком близко идут? По кусочкам сигнальных земель силовые токи не гуляют? Вы какую разводку использовали?
контактор.jpg
контактор.jpg Ненавязчивая автоматизация ректификационной установки. Автоматика.
ekochnev Магистр Екатеринбург 207 54
Отв.1849  10 Февр. 20, 18:09, через 28 мин
У меня своя разводка, не такая как у вас, хотя близкая.
По спецификации микроконтроллера, минимальное гарантированное напряжение для логической единицы 4.2 вольта, а реально у меня получается на шине INT всего 3.28, так что не удивительно что он логическую единицу неуверенно берет.
Для исключения наводок я вообще отсоединял 5-ю ногу контроллера от дорожек на плате модуля и напрямую подтягивал ее через резистор к контакту +3.3 непосредственно на модуле. Не хочет работать.
Да что там. При отсоединенном контакторе я снимаю высокое напряжение с силовых шин, подаю команду на включение контактора, светодиод на модуле загорается, подаю высокое напряжение на силовые шины и даже этого достаточно чтобы контроллер поймал какую-то помеху и выключил светодиод хотя силовые шины и цепи питания контроллера вообще развязаны...
С подтяжкой от +5 и преобразователем уровней все работает четко.

P.S. Проверил, на данном модуле разводка у меня отличается от Вашей только на силовой половине. Вокруг микроконтроллера разводка почти точь-в-точь такая же...
OldBean Доцент Красноярск 1K 1.4K
Отв.1850  10 Февр. 20, 19:15
По спецификации микроконтроллера, минимальное гарантированное напряжение для логической единицы 4.2 вольта, а реально у меня получается на шине INT всего 3.28, так что не удивительно что он логическую единицу неуверенно берет.ekochnev, 10 Февр. 20, 18:09
Странно. Обычно 3-вольтовой логики за глаза хватало для управления 5-вольтовой...

PS
Посмотрел в datasheet на 328-ю мегу (см.стр.600 - 35.8. Pin Threshold and Hysteresis). Там пороги по входам равны примерно 2.1 В для перехода в 0 и 2.7 В для перехода в 1. Это при питании 5В. Так что 3.3В должно однозначно давать логическую единичку. Но, видимо, в Вашем случае наводка "перебарывает". :(

Ну да ладно. Решилась проблема - и слава Богу! :)
ekochnev Магистр Екатеринбург 207 54
Отв.1851  16 Февр. 20, 15:55
Решилась проблема - и слава Богу! УлыбающийсяOldBean, 10 Февр. 20, 19:15

Проблема не совсем решилась...
Отказался я от активного преобразователя уровней, решил упростить и собрал схему как на приложенном рисунке. Т.е. в разрыв шины INT на крейте между разъемом и слотами для модулей вставил диод Шоттки и добавил дополнительный притягивающий резистор к шине +5 со стороны модулей, ну и перенес точку подключения кнопки прерывания. Получилась со стороны малинки шина INT притягивается к +3.3 , а со стороны модулей - к +5 вольтам. Нажатие кнопки приводит к четкому логическому нулю с обеих сторон.

Резульат: модули стали получать четкие уровни и модуль контактора перестал по помехе с шины самопроизвольно выключать контактор... ...Зато сейчас их программно вырубает малинка ловя помехи со своей стороны шины INT. Это именно малинка, т.к. закомментировав процедуру signalInt в lsync.py такое поведение прекращается.

Принес с работы осциллограф, посмотрел. Уровень помех с 3-вольтовой стороны шины INT намного выше чем с 5-вольтовой. Т.е. наводка идет на кольцо: малинка - провод +3.3 к крейту - шина +3.3 крейта - притягивающий резистор - шина INT крейта - провод INT от крейта к малинке. Проблема обозначилась видимо когда я все стал упаковывать в корпус и компоненты стали располагаться ближе друг к другу, пока все было развалено на столе, такого не замечал. Установка дополнительных конденсаторов на крейт не помогает. Изначально малинка соединялась с крейтом пучком отдельных проводов, переделал на плоский шлейф, не помогло. Длина шлейфа около 20 см.

Думаю, что бы еще можно сделать...
connections.png
connections.png Ненавязчивая автоматизация ректификационной установки. Автоматика.
U-M Магистр MSK 210 39
Отв.1852  16 Февр. 20, 23:26
А если попробовать временно "соплю повесить" из витой пары на линию INT и GND ? А резистор R1 10k со стороны +5В поставить в самом конце "сопли" физически за самым последним модулем на шине?
OldBean Доцент Красноярск 1K 1.4K
Отв.1853  17 Февр. 20, 05:26
Думаю, что бы еще можно сделать...ekochnev, 16 Февр. 20, 15:55
Может быть убрать петлю? Т.е. перенести подтяжку к +3.3V непосредственно на малинку или воспользоваться внутренней?
ekochnev Магистр Екатеринбург 207 54
Отв.1854  17 Февр. 20, 05:26, через 1 мин
Резистор с +5 конечно без проблем могу перенести в самый конец платы, но это вряд ли исправит ситуацию т.к. с шины +5 помех очень мало. Судя по осциллографу, самая "грязная" шина +3.3, а с нее резистор в самом начале должен стоять до всех модулей.
OldBean Доцент Красноярск 1K 1.4K
Отв.1855  17 Февр. 20, 05:27, через 1 мин
А зачем +5 переносить? Петля же по 3.3.
ekochnev Магистр Екатеринбург 207 54
Отв.1856  17 Февр. 20, 05:29, через 2 мин
Может быть убрать петлю? Т.е. перенести подтяжку к +3.3V непосредственно на малинку или воспользоваться внутренней подтяжкой?OldBean, 17 Февр. 20, 05:26

Возможно. Если не сложно, подскажите как включить внутреннюю подтяжку на малинке.
OldBean Доцент Красноярск 1K 1.4K
Отв.1857  17 Февр. 20, 05:36, через 7 мин
В настройках GPIO (GPIO.setup(...)). Там есть соответствующий параметр (pull_up_down)
Но внутренняя подтяжка высокоомная. Лучше свою.
Если 3.3 сильно шумит - поставьте пару емкостей (электролит + керамика)
ekochnev Магистр Екатеринбург 207 54
Отв.1858  17 Февр. 20, 05:41, через 5 мин
Если 3.3 сильно шумит - поставьте пару емкостей (электролит + керамика)OldBean, 17 Февр. 20, 05:36
Это уже пробовал, не помогло.
OldBean Доцент Красноярск 1K 1.4K
Отв.1859  17 Февр. 20, 05:55, через 15 мин
Это уже пробовал, не помогло.ekochnev, 17 Февр. 20, 05:41
А какого рода шум по шине идет? Амплитуда, характерные частоты? Не смотрели? Шина 3.3 у малинки не очень мощная. Нужно глянуть схему малинки.
PS
Если есть возможность отключить шину 3.3 от крейта - посмотрите что на пине 3.3 с крейтом и без. Т.е. откуда идет наводка?