FLProg
Вход на сайт
Логин:
Пароль:
Поиск
...
Статистика
Среда, 20.09.2017, 13:52
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » OneWire - баг или фича?
OneWire - баг или фича?
kosmas Дата: Четверг, 17.08.2017, 10:45 | Сообщение # 1
Рядовой
Группа: Проверенные
Сообщений: 29
Награды: 0
Репутация: 0
Статус: Offline
Заморочился я тут с контроллером управления теплыми полами. Т.е. если один датчик накроется, то не надо прошивку менять. Датчик поменял, контроллер перезапустил, и все. Но как всегда все не так просто... sad

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

Что делать и кто виноват? Куды бечь?
Прикрепления: Scan_Onewire.flp(167Kb)
 
pan Дата: Четверг, 17.08.2017, 12:38 | Сообщение # 2
Генерал-лейтенант
Группа: Проверенные
Сообщений: 795
Награды: 37
Репутация: 33
Статус: Offline
во первых с чего вы взяли что адрес датчика уместится в переменную байт? во вторых r тригер не надо, блок и так срабатывает по фронту. в третиьих float - int тоже не надо, сразу подавайте на блок конвертации в строку

Добавлено (17.08.2017, 12:38)
---------------------------------------------
хотя с массивом погорячился. там массив из 9 байт


Сообщение отредактировал pan - Четверг, 17.08.2017, 13:22
 
pan Дата: Четверг, 17.08.2017, 13:03 | Сообщение # 3
Генерал-лейтенант
Группа: Проверенные
Сообщений: 795
Награды: 37
Репутация: 33
Статус: Offline
посмотрите мои потуги
Прикрепления: Scan_Onewire2.flp(233Kb)
 
rw6cm Дата: Четверг, 17.08.2017, 13:41 | Сообщение # 4
Генерал-лейтенант
Группа: Проверенные
Сообщений: 905
Награды: 82
Репутация: 64
Статус: Offline
Цитата kosmas ()
Что делать и кто виноват?
Эта тема уже не однократно подымалась.
Для авто-определения датчиков, они должны быть каждый на отдельной шине.


Win7-32, FLProg (portable)
 
pan Дата: Четверг, 17.08.2017, 14:08 | Сообщение # 5
Генерал-лейтенант
Группа: Проверенные
Сообщений: 795
Награды: 37
Репутация: 33
Статус: Offline
Цитата rw6cm ()
Для авто-определения датчиков, они должны быть каждый на отдельной шине.
 не есть хорошо...
 
Denn4a Дата: Четверг, 17.08.2017, 14:17 | Сообщение # 6
Рядовой
Группа: Проверенные
Сообщений: 19
Награды: 0
Репутация: 1
Статус: Offline
есть вариант с гирлянда рабочий, у меня работает, но нада датчики программировать!
Прикрепления: DS18B20-CODE-.ubi(302Kb)
 
pan Дата: Четверг, 17.08.2017, 14:55 | Сообщение # 7
Генерал-лейтенант
Группа: Проверенные
Сообщений: 795
Награды: 37
Репутация: 33
Статус: Offline
Denn4a, так и стандартными средствами работает
 
support Дата: Четверг, 17.08.2017, 15:03 | Сообщение # 8
Автор программы
Группа: Администраторы
Сообщений: 873
Награды: 41
Репутация: 26
Статус: Offline
Цитата pan ()
Цитата rw6cm ()Для авто-определения датчиков, они должны быть каждый на отдельной шине.
 не есть хорошо...
А как сделать хорошо? Вот смотрите- просканировали шину, получили кучу адресов, а как определить какой адрес какому датчику принадлежит?


Разработчик программы FLProg
 
pan Дата: Четверг, 17.08.2017, 15:11 | Сообщение # 9
Генерал-лейтенант
Группа: Проверенные
Сообщений: 795
Награды: 37
Репутация: 33
Статус: Offline
программно ни как. только физически поочереди подключать а уже сканер записывает новый появившийся адрес
 
kosmas Дата: Пятница, 18.08.2017, 07:22 | Сообщение # 10
Рядовой
Группа: Проверенные
Сообщений: 29
Награды: 0
Репутация: 0
Статус: Offline
Цитата support ()
А как сделать хорошо? Вот смотрите- просканировали шину, получили кучу адресов
... посмотрели в массив - ага, вот этого датчика нет, этот новый, а эти на месте.

Не?


Сообщение отредактировал kosmas - Пятница, 18.08.2017, 07:25
 
pan Дата: Пятница, 18.08.2017, 08:16 | Сообщение # 11
Генерал-лейтенант
Группа: Проверенные
Сообщений: 795
Награды: 37
Репутация: 33
Статус: Offline
Цитата
посмотрели в массив - ага, вот этого датчика нет
 массив изначально пустой.  куда смотреть

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

Цитата kosmas ()
Не?
 не.

вот так еще можно бы сделать.
Цитата pan ()
физически поочереди подключать а уже сканер записывает новый появившийся адрес
 
rw6cm Дата: Пятница, 18.08.2017, 10:15 | Сообщение # 12
Генерал-лейтенант
Группа: Проверенные
Сообщений: 905
Награды: 82
Репутация: 64
Статус: Offline
kosmas, как вариант можно каждый датчик привязать к своей ячейки в еепром.
На приборке вывести на отдельной шине onewire разъем под датчик. Сделать эту линию с авто определением.
Поставили в разъем датчик - на дисплее его ID - с меню занесли в нужную ячейку - установили датчик в соответствующее место.
При включении в массивы заносятся данные из своих еепром ячеек, сканирование не нужно, датчики можно менять без пере заливки контроллера.
Да и вся эта канитель с авто опросом "еще та песня". На длинных линиях с кучей датчиков этот процесс очень длительный,
и не всегда с одного раза все это правильно определяется, может быть больше проблем чем пользы.


Win7-32, FLProg (portable)
 
kosmas Дата: Пятница, 18.08.2017, 20:24 | Сообщение # 13
Рядовой
Группа: Проверенные
Сообщений: 29
Награды: 0
Репутация: 0
Статус: Offline
Всем спасибо! Понятно, что руками проще. Тем более что сломать датчик дело непростое, если он дома стоит... Хотя...
 
Форум » Основной » Спросить у знатоков » OneWire - баг или фича?
Страница 1 из 11
Поиск:

FLProg © 2017
Яндекс.Метрика