OneWire - баг или фича?

Ответить
kosmas
Рядовой
Сообщения: 42
Зарегистрирован: 20.04.2016{, 10:56}
Репутация: 0
Откуда: Санкт-Петербург

OneWire - баг или фича?

#1

Сообщение kosmas » 17.08.2017{, 10:45}

Заморочился я тут с контроллером управления теплыми полами. Т.е. если один датчик накроется, то не надо прошивку менять. Датчик поменял, контроллер перезапустил, и все. Но как всегда все не так просто...

Итак, есть такой элемент в библиотеке блоков - "Сканирование шины OneWire". Собрал гирлянду из 5 датчиков, запускаю, смотрю на экран - и вижу 5 одинаковых показаний. В общем, эта штука заполнила весь массив идентификатором первого датчика на шине. При этом, если воспользоваться меню "Инструменты" - "шины данных" - "Сканирование шины OneWire" - то там сначала появляется первый датчик, через несколько секунд остальные... Свои потуги прикладываю.

Что делать и кто виноват? Куды бечь?
Вложения
Scan_Onewire.flp
(167.25 КБ) 80 скачиваний

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

OneWire - баг или фича?

#2

Сообщение pan » 17.08.2017{, 12:38}

во первых с чего вы взяли что адрес датчика уместится в переменную байт? во вторых r тригер не надо, блок и так срабатывает по фронту. в третиьих float - int тоже не надо, сразу подавайте на блок конвертации в строку

Добавлено (17.08.2017, 12:38)
---------------------------------------------
хотя с массивом погорячился. там массив из 9 байт
Последний раз редактировалось pan 17.08.2017{, 13:22}, всего редактировалось 1 раз.

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

OneWire - баг или фича?

#3

Сообщение pan » 17.08.2017{, 13:03}

посмотрите мои потуги
Вложения
Scan_Onewire2.flp
(232.98 КБ) 78 скачиваний

Аватара пользователя
rw6cm
Полковник
Сообщения: 2132
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 278
Имя: Владимир

OneWire - баг или фича?

#4

Сообщение rw6cm » 17.08.2017{, 13:41}

kosmas писал(а):Что делать и кто виноват?
Эта тема уже не однократно подымалась.
Для авто-определения датчиков, они должны быть каждый на отдельной шине.
Win10-64, FLProg (portable)

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

OneWire - баг или фича?

#5

Сообщение pan » 17.08.2017{, 14:08}

rw6cm писал(а):Для авто-определения датчиков, они должны быть каждый на отдельной шине.
 не есть хорошо...

Denn4a
Рядовой
Сообщения: 19
Зарегистрирован: 23.01.2017{, 06:14}
Репутация: 0

OneWire - баг или фича?

#6

Сообщение Denn4a » 17.08.2017{, 14:17}

есть вариант с гирлянда рабочий, у меня работает, но нада датчики программировать!
Вложения
DS18B20-CODE-.ubi
(302.08 КБ) 63 скачивания

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

OneWire - баг или фича?

#7

Сообщение pan » 17.08.2017{, 14:55}

Denn4a, так и стандартными средствами работает

Аватара пользователя
support
Супермодератор
Сообщения: 1838
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 687
Откуда: Астрахань
Имя: Сергей
Контактная информация:

OneWire - баг или фича?

#8

Сообщение support » 17.08.2017{, 15:03}

pan писал(а):Цитата rw6cm ()Для авто-определения датчиков, они должны быть каждый на отдельной шине.
 не есть хорошо...
А как сделать хорошо? Вот смотрите- просканировали шину, получили кучу адресов, а как определить какой адрес какому датчику принадлежит?
Автор программы FLProg.

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

OneWire - баг или фича?

#9

Сообщение pan » 17.08.2017{, 15:11}

программно ни как. только физически поочереди подключать а уже сканер записывает новый появившийся адрес

kosmas
Рядовой
Сообщения: 42
Зарегистрирован: 20.04.2016{, 10:56}
Репутация: 0
Откуда: Санкт-Петербург

OneWire - баг или фича?

#10

Сообщение kosmas » 18.08.2017{, 07:22}

support писал(а):А как сделать хорошо? Вот смотрите- просканировали шину, получили кучу адресов
... посмотрели в массив - ага, вот этого датчика нет, этот новый, а эти на месте.

Не?
Последний раз редактировалось kosmas 18.08.2017{, 07:25}, всего редактировалось 1 раз.

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

OneWire - баг или фича?

#11

Сообщение pan » 18.08.2017{, 08:16}

посмотрели в массив - ага, вот этого датчика нет
 массив изначально пустой.  куда смотреть
kosmas писал(а):этот новый, а эти на месте
на каком месте? может их перенесли в другое место или поменяли местами. 1 теперь будет стоять на месте 5, как это определить, адреса то присутствуют.
kosmas писал(а):Не?
 не.

вот так еще можно бы сделать.
pan писал(а):физически поочереди подключать а уже сканер записывает новый появившийся адрес

Аватара пользователя
rw6cm
Полковник
Сообщения: 2132
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 278
Имя: Владимир

OneWire - баг или фича?

#12

Сообщение rw6cm » 18.08.2017{, 10:15}

kosmas, как вариант можно каждый датчик привязать к своей ячейки в еепром.
На приборке вывести на отдельной шине onewire разъем под датчик. Сделать эту линию с авто определением.
Поставили в разъем датчик - на дисплее его ID - с меню занесли в нужную ячейку - установили датчик в соответствующее место.
При включении в массивы заносятся данные из своих еепром ячеек, сканирование не нужно, датчики можно менять без пере заливки контроллера.
Да и вся эта канитель с авто опросом "еще та песня". На длинных линиях с кучей датчиков этот процесс очень длительный,
и не всегда с одного раза все это правильно определяется, может быть больше проблем чем пользы.
Win10-64, FLProg (portable)

kosmas
Рядовой
Сообщения: 42
Зарегистрирован: 20.04.2016{, 10:56}
Репутация: 0
Откуда: Санкт-Петербург

OneWire - баг или фича?

#13

Сообщение kosmas » 18.08.2017{, 20:24}

Всем спасибо! Понятно, что руками проще. Тем более что сломать датчик дело непростое, если он дома стоит... Хотя...

Аватара пользователя
Alias
Лейтенант
Сообщения: 476
Зарегистрирован: 27.11.2017{, 13:15}
Репутация: 36
Откуда: Rus44
Имя: Michael
Контактная информация:

OneWire - баг или фича?

#14

Сообщение Alias » 15.12.2017{, 19:00}

О, вот куда нужно было постить. В прошлый раз, когда видел эту тему, на мысль про EEPROM не обратил внимания, накидал сегодня свое видение. С общего позволения перенесу свой пост сюда:
-----
Так, господа Зубры программирования. Есть серьезный вопрос. Возможно, из
песочницы, но нужен вдумчивый анализ грамотных спецов. Поможете?
Я все про горячую замену датчиков на живой системе, когда я, например, не
смогу просканировать новый датчик взамен вышедшего из строя, а на
пальцах алгоритм не каждому объяснишь. По датчику на шину - не всегда
возможно и не спрашивайте, почему. Все всё понимают.
Суть моего предложения в следующем. См. схему во вложении.
Имеем готовое изделие. При первоначальном запуске база датчиков стерильна.
Подключаем к шине датчики по одному и прописываем в систему, через меню
выбирая назначение, читай - имя. Как только прописали последний, ставим в
шину и работаем, пока один из них не вздумается заменить.
Для замены датчика отключаем шлейф, подключаем лишь один новый и прописываем его по назначению. Ставим его на нужное место, включаем в шлейф.
Все.
Насколько эта модель оправдана с точки зрения ресурсов и можно ли найти более
лаконичное и красивое решение? Я не в смысле кода, типа параллельная или
последовательная запись ячеек по циклу на генераторах и счетчиках - не
суть. А стратегически.
Вложения
3435267.flp
(366.1 КБ) 74 скачивания
Последний раз редактировалось Alias 15.12.2017{, 20:57}, всего редактировалось 1 раз.

sherti
Рядовой
Сообщения: 37
Зарегистрирован: 20.01.2018{, 20:32}
Репутация: 0

OneWire - баг или фича?

#15

Сообщение sherti » 23.02.2018{, 00:02}

Помогите советом.
Надо прдключить на ардуино нано 3 датчика температуры ds18b20 и термопару мах6675.
Определил шину onewire.
3 датчика ds18b20 на одном выходе на 5 так как
Шина onewire дает только выбор 5,6,7 пина.
Проблемма в том как щас термопару мах6675 подключить пин 5 занят, программа flprog не дает сменить пины.
Чем проще и прозрачней, тем надежнее.

Аватара пользователя
ivanpost
Сержант
Сообщения: 136
Зарегистрирован: 24.09.2016{, 22:26}
Репутация: 4
Откуда: Тольятти
Имя: Иван
Контактная информация:

OneWire - баг или фича?

#16

Сообщение ivanpost » 15.03.2018{, 14:43}

Никто не смог решить вопрос со сканированием шины? Иногда реальнее в программе переназначить датчики, чем в ручную их вводить.
Главное, в блоке почему несколько массивов можно вводить? Значит все таки было задумано?

Аватара пользователя
Alias
Лейтенант
Сообщения: 476
Зарегистрирован: 27.11.2017{, 13:15}
Репутация: 36
Откуда: Rus44
Имя: Michael
Контактная информация:

OneWire - баг или фича?

#17

Сообщение Alias » 15.03.2018{, 19:58}

Я поступил проще: на мегу2560про просто навесил десять датчиков на десять входов. На каждый вход - по блоку сканирования. На макете откатал схему и пока все устраивает.
В случае, когда вручную вбивать через меню или адреса датчиков или прописывать по назначению уже отсканированные не представляется возможным, это идеальный вариант. При наличии достаточных входов, разумеется.
У меня был опыт, когда по телефону даже в простом случае невозможно решить проблему, поэтому чем проще для пользователя, тем лучше

Ответить

Вернуться в «Другие»