Скорее всего проблема IIC на малинке всплывает. Очень редко бывает, что при запуске скрипта nna нет сетевого. Повторный перезапуск - все номально.
Копать - как вариант понизить скорость IIC.
Ненавязчивая автоматизация ректификационной установки
U-M
Магистр
MSK
210 39
Отв.820 23 Нояб. 17, 09:12
gol_avto
Доцент
Москва - Серпухов - Анапа
1.3K 458
Отв.821 23 Нояб. 17, 09:15, через 3 мин
Копать - как вариант понизить скорость IIC.U-M, 23 Нояб. 17, 09:12Я её сразу (при конфигурации малинки) понизил до 9600 бод.
U-M
Магистр
MSK
210 39
Отв.822 23 Нояб. 17, 09:19, через 5 мин
Хмм. Посмотрел фото установки - у Вас IIC разведена параллельно, получается и не увидел датчик давления. У меня она последовательно разведена и датчик давления с его подтягивающими резисторами стоит самый последний (дальний от малинки).
Может перепроложить шину IIC ?
Может перепроложить шину IIC ?
gol_avto
Доцент
Москва - Серпухов - Анапа
1.3K 458
Отв.823 23 Нояб. 17, 09:31, через 13 мин
Ок. Это мысль! Датчик давления с резистором - он самый ближний к малинке оказался.
=================================================================
Переделал шину I2C на последовательно - несколько подряд запусков nna_36, полет нормальный. Все стабильно стало.
=================================================================
Переделал шину I2C на последовательно - несколько подряд запусков nna_36, полет нормальный. Все стабильно стало.
Sten58
Магистр
Лисичанск
217 49
Отв.824 23 Нояб. 17, 17:17
Контролировать нужно наличия любой формы напряжение на клеймах ТЭНа.BogAD, 22 Авг. 17, 21:32Планирую мерить ток, "Модуль датчика тока ACS712 на эффекте Холла, с диапазоном измерения тока до 30А для Arduino", цена ~$2.5. Тут и контроль обрыва, и контроль пробоя симистора, и измерение среднеквадратического для регулятора. Моща пропорциональна квадрату тока, так что корни буду извлекать только для индикации
Добавлено через 3мин.:
Предлагаю заменить плавкий 10А на Автомат защиты YA-0702Х, 10 А, 250 В.BogAD, 20 Авг. 17, 17:28Не нашел пока на/в Украине. Буду искать, на крайняк у китайцев. Из России - увы...
Поэтому (если, конечно, в системе присутствует датчик RMS дополнительный контроль напряжения на клеммах ТЭНа, ИМХО, избыточен.OldBean, 23 Авг. 17, 05:03Это для контроля тэна. Другая задача, и логично ее совместить с регулятором. ИМХО, лучше ток мерить, информативнее.
BogAD
Кандидат наук
Красногорск - Белово
403 184
Отв.825 23 Нояб. 17, 20:04
Планирую мерить ток, "Модуль датчика тока ACS712 на эффекте ХоллаSten58, 23 Нояб. 17, 17:17
ИМХО, лучше ток мерить, информативнее.Sten58, 23 Нояб. 17, 17:17Датчик тока тут избыточен. Это подтвердит OldBean, в этом я не сомневаюсь.
Зная мощность ТЭНа, и напряжение RMS, ток посчитать можно (если уж сильно надо). Этот метод называется "Косвенное измерение".
А так еще один АЦП для ACS712 прикручивать придется.
Контроль напряжения на ТЭНах, по сути перевод любых импульсов синусоиды на ТЭНах в логическую форму (1 или 0). Назовем её логическая обратная связь (ЛОС). При открытом триаке это нормально, а при "закрытом" триаке - наличие сигналов ЛОС, сигнал о том что триаку хана. Ну и наоборот, Пытаемся открыть триак, а ЛОСа нет, значит триак перегорел. Все просто, логику может осуществить модуль управления триака.
Не нашел пока на/в Украине.Sten58, 23 Нояб. 17, 17:17Тут проще... нечто подобное, я встречал в сетевых фильтрах-удлинителях, типа Pilot.
А так же в бесперебойниках, которых можно отыскать - их зачастую выкидывают, ленясь менять сдохшие аккумуляторы
Sten58
Магистр
Лисичанск
217 49
Отв.826 25 Нояб. 17, 20:17
еще один АЦП для ACS712 прикручивать придется.BogAD, 23 Нояб. 17, 20:04Ну, или - или С напряжением сети - "косвенное измерение", управление по возмущению... мне как-то привычнее по отклонению
Я не буду мерить напряжение сети - запасов старых особо нет, а самый завалященький трансформатор, если новый, стОит поболее, чем ACS712.
Мы пойдем своим путем
Мой регулятор будет законченным устройством, стабилизирующим мощность на заданном уровне. Такой регулятор будет достаточно быстродействующим, чтобы не "пересекаться" в динамике с колонной. Верхний уровень выдает уставку - регулятор ее практически мгновенно отрабатывает. Не раскачать колонну - это проблема верхнего уровня, но никак не регулятора.
Добавлено через 8мин.:
нечто подобное, я встречал в сетевых фильтрах-удлинителях, типа PilotBogAD, 23 Нояб. 17, 20:04Надо на рынке в запчастях поискать. Спасибо за идею!
BogAD
Кандидат наук
Красногорск - Белово
403 184
Отв.827 25 Нояб. 17, 22:14
Мы пойдем своим путемSten58, 25 Нояб. 17, 20:17Тема "ненавязчивая" - воля твоя. Если сможешь математику под измерения значений тока в малинке подправить, и показать другим - во всем твоя воля.
Если сложность модуль RMS самостоятельно сделать, и нет трансформаторов, можешь обратить внимание
на https://ru.aliexpress.com/...0302.4.8.tbEXfy
всего 1,3 банинских, и от общей концепции не уйдёшь
OldBean
Доцент
Красноярск
1K 1.4K
Отв.828 27 Нояб. 17, 04:17
Мой регулятор будет законченным устройством, стабилизирующим мощность на заданном уровне.Sten58, 25 Нояб. 17, 20:17При автоматизированном регулировании скорости отбора, в таком регуляторе не много смысла. Ну разве - что б не напрягать малинку всуе ;) Но, для нее, раз в несколько секунд измерить RMS напряжения в сети (или тока ТЭНа) и подкорректировать уровень модуляции - сущие пустяки.
To BogAD
Александр, в ЛС Вы не сообщили куда скинуть код. Поэтому положу его здесь. Код - только для справки. Т.к. он не отлажен до конца (на длительных обменах бывают сбои по I2C) и в таком виде уже вряд ли будет когда-нибудь отлаживаться. Но несколько страниц назад JackB выкладывал свой код для T-сервера (на основе ардуиновских библиотек). Я его не тестировал, поэтому ничего конкретного сказать не могу. А что, он разве не работает? Или проблемы в четвертом разряде индикатора? В последнем случае прилагаемый код может помочь.
Sten58
Магистр
Лисичанск
217 49
Отв.829 27 Нояб. 17, 16:13
Если сможешь математику под измерения значений тока в малинке подправитьBogAD, 25 Нояб. 17, 22:14Насколько я понял из беглого просмотра описания - "Модуль датчика тока ACS712 на эффекте Холла, с диапазоном измерения тока до 30А для Arduino", который я покупаю, выдает аналоговый сигнал 66 мВ/А. Вешаю на вход АЦП, меряю, скажем, 100 раз за полупериод, возвожу каждый замер в квадрат... это сколько же памяти оно сожрет хотя бы на один период?!! Надо вспомнить арифметику, вроде есть метод "скользящего" расчета RMS с приемлемой точностью без хранения всего массива.
Были когда-то амперметры, в которых измерительный проводник грелся протекающим током и удлинялся, двигая стрелку. Мож, дешевле что-то с термодатчиком сколхозить? Посчитать надо! Хотя, там термокомпенсацию надо городить... 2 термодатчика в мост...
Посмотрел как OldBean (спасибо ему за тему)считает RMS - так вот же! Храним сумму квадратов, делим на константу!
Для "скользящей" суммы надо хранить весь массив, и обновлять его по кругу. Хранить текущий индекс первого. Из суммы вычитать первый элемент и прибавлять вновь полученное значение, потом записывать новое значение на место первого, и индекс "продвигать" на следующий элемент. Тогда после первоначального заполнения массива имеем RMS практически в любой произвольный момент времени.
У STM32 20 кБ оперативы - если хватит, так и сделаю. Там, кстати, есть DMA с направлением "память-память", м.б. быстрее будет сдвигать массив на одно значение и писать новое в конец. Занятная штучка этот STM32!
BogAD , у малинки точно ресурсов хватит. Все-таки 50 полупериодов сети в RMS OldBean 'а - это пол-секунды, многовато... хотя...
BogAD
Кандидат наук
Красногорск - Белово
403 184
Отв.830 27 Нояб. 17, 16:53, через 40 мин
Насколько я понял из беглого просмотра описания - "Модуль датчика тока ACS712 на эффекте Холла, с диапазоном измерения тока до 30А для Arduino", который я покупаю, выдает аналоговый сигнал 66 мВ/А. Вешаю на вход АЦП, меряю, скажем, 100 раз за полупериод, возвожу каждый замер в квадрат... это сколько же памяти оно сожрет хотя бы на один период?!! Надо вспомнить арифметику, вроде есть метод "скользящего" расчета RMS с приемлемой точностью без хранения всего массива.
Были когда-то амперметры, в которых измерительный проводник грелся протекающим током и удлинялся, двигая стрелку. Мож, дешевле что-то с термодатчиком сколхозить? Посчитать надо!Sten58, 27 Нояб. 17, 16:13
Думаю такой колхоз тут точно не нужен.
Измеряем или ток или RMS.
OldBean чуток раньше написал уже:
При автоматизированном регулировании скорости отбора, в таком регуляторе не много смысла. Ну разве - что б не напрягать малинку в суе Но, для нее, раз в несколько секунд измерить RMS напряжения в сети (или тока ТЭНа) и подкорректировать уровень модуляции - сущие пустяки.OldBean, 27 Нояб. 17, 04:17я с ним согласен, замеряем один раз в несколько секунд, что вполне достаточно.
И... как вижу под словом "модуляция" понимать "ШИМ"?
Не хочется флудить, но про метод регулирования мощности в теме очень подробно расписано уважаемым OldBean.
Начитать читать тут [сообщение #12906068]
И посему, повторяться нет смысла, ибо тема будет раздута, потеряется и размажется в многостраничных "томах" пустых опусов, бесконечных повторах вопросов и объяснений.
OldBean
Доцент
Красноярск
1K 1.4K
Отв.831 28 Нояб. 17, 08:40
Хранить текущий индекс первого. Из суммы вычитать первый элемент и прибавлять вновь полученное значение, потом записывать новое значение на место первого, и индекс "продвигать" на следующий элемент. Тогда после первоначального заполнения массива имеем RMS практически в любой произвольный момент времени.Sten58, 27 Нояб. 17, 16:13Для нормального кольцевого буфера у Arduino Pro Mini маловато оперативной памяти. Да и не нужна такая высокая частота опроса для RMS. Полагаю, поймете сами. Когда сделаете свой девайс.
Однако, для других величин скользящее среднее бывает просто необходимо. Например, для получения производных измеряемых сигналов. Производные реальных сигналов обычно довольно сильно зашумлены. Поэтому усреднение необходимо. В частности, в скрипте малинки (см. файл nna_36.py) кольцевой буфер используется для вычисления скользящего среднего производной температуры по времени, которая нужна для некоторых алгоритмов регулирования скорости отбора. При использовании скользящего среднего выборка производной температуры происходит с той же частотой, что и выборка самой температуры. Т.е. порядка секунды для группы DS18B20. Но, естественно, - с запаздыванием. Это - цена метода, которую нужно заплатить.
И... как вижу под словом "модуляция" понимать "ШИМ"?BogAD, 27 Нояб. 17, 16:53Хм..., всуе написал в суе :) Ладно, бывает... Исправил. По делу - про модуляцию. Не только ШИМ. Для сетевой частоты ШИМ - не очень хорошее решение. Здесь под модуляцией понимается PDM (Pulse Desity Modulation). Т.е. регулирование среднего количества импульсов сетевых полупериодов, пропущенных в нагрузку. Один из вариантов такой модуляции - распределение пропущенных импульсов по широко известному алгоритму Брезенхема.
Sten58
Магистр
Лисичанск
217 49
Отв.832 28 Нояб. 17, 16:45
у Arduino Pro Mini маловато оперативной памятиOldBean, 28 Нояб. 17, 08:40Я на STM32 буду делать регулятор. Да и все остальное пока тоже. На двухуровневую систему пока средствОв не хватает Попытаюсь освоить и применить
scmRTOS https://www.google.com.ua/...6bAFjg0EknH5ut5, как обрасту оборудованием - м.б. процессы верхнего уровня вынесу на отдельное устройство и сделаю нормальный интерфейс к андроидам и к рабочей станции на винде. Посмотрим
Добавлено через 8мин.:
естественно, - с запаздываниемOldBean, 28 Нояб. 17, 08:40Запаздывание только во время заполнения буфера, потом - риалтайм практически. На то оно и среднее. А датчики практически все надо фильтровать - посмотреть хоть на диаграммы от Esc. Те же DS18B20 имеют тепловую инерцию порядка секунд, а то и десятков секунд с учетом окружения... Теорию сейчас уже не вспомню, буду экспериментировать. А там, глядишь, и теорию придется подтягивать - постоянные времени, коэффициенты затухания, автоколебания... Сделаю соответствующие "закладки" в программе и интерфейсе - и вперед. Надеюсь, 20 кБ ОЗУ хватит
Добавлено через 12мин.:
распределение пропущенных импульсов по широко известному алгоритму БрезенхемаOldBean, 28 Нояб. 17, 08:40Алгоритм мне нравится. Тоже буду экспериментировать. Если попробовать точность регулирования загрубить в разумных пределах, можно сократить период регулирования. Обходятся же многие индукционками с их регулированием +/- 10%.
Железки заказал, программирование учу в теории, руки уже чешутся...
Кстати, вопрос to all по IDE - я в растерянности от их изобилия. Уже успел запутаться, где что. В одном (или не в одном?) видео бал графический интерфейс с мнемосхемой для конфигурирования микроконтроллера. Выбираешь тип платы, навешиваешь обвязку, и, по меньшей мере, подключение библиотек и сетап генерятся автоматом. Приличного сравнения разных сред пока не нашел. Ткните
Добавлено через 12мин.:
замеряем один раз в несколько секундBogAD, 27 Нояб. 17, 16:53У меня с электричеством беда - частный сектор, трансформатор и сеть слабенькие, а народ зимой греется чем может. Мож, воруют - не ловил но напруга скачет от 225 до 165 В, причем иногда в глазах рябит, китайский вольтметр не успевает показания менять. (Купил дешевые LCD лампы - практически гаснут, у них диапазон 185...235В. У тех, что чуть дороже - 165...265, по ним почти не заметно. Сорри за флуд).
Так что лучше я начну с завышенных требований, а потом буду загрублять потихоньку и смотреть, какие параметры окажутся достаточными. И какая для них нужна аппаратная платформа. Уже сейчас кажется, что для нижнего уровня достаточно совсем простеньких контроллеров. А наверху уже СТМка или малинка с операционкой, и графический интерфейс с соответствующим дисплеем... от старого планшета хотя бы.
Мечты, мечты...
OldBean
Доцент
Красноярск
1K 1.4K
Отв.833 28 Нояб. 17, 18:18
Запаздывание только во время заполнения буфера, потом - риалтайм практически. На то оно и среднее.Sten58, 28 Нояб. 17, 16:45Увы... Запаздывание будет всегда. Вычисленное среднее на самом деле равно среднему на момент времени раньше текущего как раз на половину времени усреднения. Естественно, если вес каждого отсчета равен 1.
Для избавления от иллюзий, рассмотрите простенький пример. Возьмите в качестве входного сигнала ступеньку, посчитайте (например, в Excell-е или просто на бумажке) во что он превращается при усреднении и посмотрите насколько будут смещены фронты исходного сигнала (ступеньки) и усредненного ;)
PS Не было возможности ответить сразу - дополню сегодня.
У меня с электричеством беда...Sten58, 28 Нояб. 17, 16:45Все равно Вам важна средняя мощность с характерным временным масштабом секунда и более. Поэтому более быстродействующий стабилизатор делать бессмысленно. Но если сеть совсем поганая (скажем, такой ужжжас - каждый полупериод сети болтается совершенно случайно в диапазоне амплитуд, например, от 50В до 250В), то гораздо проще переписать Брезенхема, чтобы он регулировал не процент пропущенных импульсов (как сейчас), ориентируясь на среднее напряжение в сети, а сразу реальную мощность, пропущенную к ТЭНу. Т.е. уставка задается не в % от номинальной мощности, а сразу в ваттах. При этом, датчик RMS измеряет мощность (точнее - полную энергию) каждого пропущенного к нагрузке (ТЭНу) полупериода сети, а контроллер ТЭНа, основываясь на уже пропущенной в ТЭН энергии и заданной уставке, принимает решение пропускать к ТЭНу следующий импульс или нет. При таком подходе, изменения и в софте, и в железе минимальные. Но средняя мощность будет стоять мертво при любой сети. Вот только где бы такую сеть взять для тестирования? ;)
Sten58
Магистр
Лисичанск
217 49
Отв.834 29 Нояб. 17, 06:27
Запаздывание будет всегда.OldBean, 28 Нояб. 17, 18:18Согласен, протупил слегка. В данном случае это не суть важно.
уставка задается не в % от номинальной мощности, а сразу в ваттахOldBean, 28 Нояб. 17, 18:18Так и планирую.
где бы такую сеть взять для тестирования? OldBean, 28 Нояб. 17, 18:18Поищите в старых районах. Или приезжайте в гости
Spass
Студент
Балашиха
20 17
Отв.835 29 Нояб. 17, 09:57
В качестве основы для модуля с индикатором (ввиду отсутствия на настоящий момент у продавцов Arduino pro mini 5v) взял Arduino nano v.3. Возможно поменять пины на Ардуино к которым подключается лед индикатор? Напимер: B к A6, D3-A5, D2-A4, F-A3, A-A2, D1-A1.
В каком месте скетча внести правки при возможности изменения? Если вопрос глупый, прошу не смеяться. А Ардуино разбираюсь, как корова в апельсинах...
В каком месте скетча внести правки при возможности изменения? Если вопрос глупый, прошу не смеяться. А Ардуино разбираюсь, как корова в апельсинах...
ZagAl
Доцент
Прибалтика
1.9K 916
Отв.836 29 Нояб. 17, 12:22
(ввиду отсутствия на настоящий момент у продавцов Arduino pro mini 5v)Spass, 29 Нояб. 17, 09:57Spass, на Алиэкспресс вполне достаточно предложений на ардуинки. Вот например: https://ru.aliexpress.com/...2311.0.0.r5WyFO
Только уточни у продавца, действительно ли рядом с кнопкой Reset имеется два ряда пинов. А то могут прислать не такую, и потеряешь время.
Мой тебе совет, закажи и подожди. И не придется идти своим путем.
Spass
Студент
Балашиха
20 17
Отв.837 29 Нояб. 17, 15:34
Уже взял Arduino nano v.3...
Ждать не хотелось, да и на почту России надежды нет. Только за последний год 6 отправлений не дошли.
Мкпочтой продаёт недорого. Заказал и на следующий день курьером доставили (в Нерезиновой).
Ждать не хотелось, да и на почту России надежды нет. Только за последний год 6 отправлений не дошли.
Мкпочтой продаёт недорого. Заказал и на следующий день курьером доставили (в Нерезиновой).
ZagAl
Доцент
Прибалтика
1.9K 916
Отв.838 30 Нояб. 17, 17:25
OldBean, у меня прерывается программа из за ошибки датчика (или датчиков) темературы. При первом запуске программы, у трех датчиков отображается температура 85 градусов, что является ошибкой. Затем отображаются показания всех датчикиков корректно, но через некоторое время происходит сбой программы.
Что это может быть? Эти три датчика нужно заменить?
P.S. Колонна с отбором по пару, дефлегматор рубашечный. Я настраиваю режим постепенного прогрева дефлегматора (кран+шаговый двигатель) во время режима стабилизации колонны, и часто в процессе просматриваю график. Может это вызвать сбой?
P.S.S. Похоже проблема именно в этом. Сейчас колонна работала полтора часа без просмотра графика и без сбоев.
P.S.S.S Нет! Сбой все же происходит даже если не просматривать график!
Что это может быть? Эти три датчика нужно заменить?
P.S. Колонна с отбором по пару, дефлегматор рубашечный. Я настраиваю режим постепенного прогрева дефлегматора (кран+шаговый двигатель) во время режима стабилизации колонны, и часто в процессе просматриваю график. Может это вызвать сбой?
P.S.S. Похоже проблема именно в этом. Сейчас колонна работала полтора часа без просмотра графика и без сбоев.
P.S.S.S Нет! Сбой все же происходит даже если не просматривать график!
OldBean
Доцент
Красноярск
1K 1.4K
Отв.839 01 Дек. 17, 18:27
Что это может быть?ZagAl, 30 Нояб. 17, 17:25Да кто ж его знает?
1. Возможно, Вы используете очень-очень старый скрипт (nna_02) с новыми модулями. В общем случае они могут быть не совместимы. Поэтому используйте скрипт (nna_xx.py) только с теми версиями модулей (contr.py, sens.py и т.д), которые выкладывались в одном комплекте. Они должны лежать в одной папке.
2. Лучше работайте с последней выложенной версией скрипта (nna_36) и последними версиями модулей. Там большинство глюков исправлено.
3. Возможно, судя по последней картинке, что это - сбой самой малинки, а не датчиков как таковых. Нулевые значения всех температур и нереально большой индекс датчика, мягко намекают на это. Но сначала давайте учтем пункты 1 и 2.