Вопрос по блоку сканирование OneWare

Использование протоколов Modbus, SPI, I2c и прочих, проблемы и решения
Ответить
Oleg1345140
Лейтенант
Сообщения: 538
Зарегистрирован: 06.09.2015{, 07:09}
Репутация: 1
Откуда: Курган

Вопрос по блоку сканирование OneWare

#1

Сообщение Oleg1345140 » 29.10.2016{, 12:00}

Добрый день. Ситуация следующая: Добавляю блок сканирование OneWare, в нем создал два массива (два датчика). В самой программе также создал два датчика и указал в настройках в качестве адресов соответствующие массивы. Программа записала адрес одного датчика в оба массива. Я делаю что то не правильно? Прикладываю программу с блоком сканирования и выводом в компаорт значений массивов.
Для скачивания вложений Вы должны быть зарегистрированы.

Аватара пользователя
slavas
Лейтенант
Сообщения: 568
Зарегистрирован: 14.09.2015{, 22:29}
Репутация: 0
Откуда: Санкт-Петербург

Вопрос по блоку сканирование OneWare

#2

Сообщение slavas » 29.10.2016{, 13:50}

Так и должно быть, блок не различает датчики. Чтобы их точно привязать нужно создать столько массивов сколько датчиков и привязать их каждый к своему цифровому входу контроллера.

Oleg1345140
Лейтенант
Сообщения: 538
Зарегистрирован: 06.09.2015{, 07:09}
Репутация: 1
Откуда: Курган

Вопрос по блоку сканирование OneWare

#3

Сообщение Oleg1345140 » 29.10.2016{, 14:15}

slavas писал(а):Так и должно быть, блок не различает датчики. Чтобы их точно привязать нужно создать столько массивов сколько датчиков и привязать их каждый к своему цифровому входу контроллера.
Но данная шина умеет параллельное включение и при помощи инструмента сканировании все датчики определяются верно.

Аватара пользователя
slavas
Лейтенант
Сообщения: 568
Зарегистрирован: 14.09.2015{, 22:29}
Репутация: 0
Откуда: Санкт-Петербург

Вопрос по блоку сканирование OneWare

#4

Сообщение slavas » 29.10.2016{, 16:03}

Вам же в другой ветке всё объяснили, нет возможности просто определить местоположение датчика. Это особенность работы шины.

Добавлено (29.10.2016, 16:03)
---------------------------------------------
Oleg1345140 писал(а):все датчики определяются верно. При следующем сканировании порядок определившихся датчиков изменится и соответственно если вы их уже привязали к месту то они перепутаются.

Oleg1345140
Лейтенант
Сообщения: 538
Зарегистрирован: 06.09.2015{, 07:09}
Репутация: 1
Откуда: Курган

Вопрос по блоку сканирование OneWare

#5

Сообщение Oleg1345140 » 29.10.2016{, 20:18}

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

Lazary
Рядовой
Сообщения: 21
Зарегистрирован: 24.10.2016{, 13:47}
Репутация: 0

Вопрос по блоку сканирование OneWare

#6

Сообщение Lazary » 30.10.2016{, 22:51}

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

Аватара пользователя
eugeneb
Лейтенант
Сообщения: 475
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 16
Откуда: Нижний Новгород
Имя: Евгений

Вопрос по блоку сканирование OneWare

#7

Сообщение eugeneb » 31.10.2016{, 18:17}

Lazary писал(а):Здравствуйте, да, было бы интересно как сделать авто поиск датчика, к примеру загрузили скетч не зная за ранее адрес датчика при подключении был авто поиск и датчик работал. Скажем все собрано скетч загружен, вдруг датчик вышел из строя скетка нет под рукой, подключаем новый датчик и происходит авто поиск адреса и датчик работает, нет необходимости перезаливать скетч.
Когда у вас не более одного датчика на линии - пожалуйста.
Вот и обучающее видео есть:

http://flprog.ru/video/vip/22/video_les ... ie_ds18b20

Нигде не придётся вводить адреса датчиков.

Lazary
Рядовой
Сообщения: 21
Зарегистрирован: 24.10.2016{, 13:47}
Репутация: 0

Вопрос по блоку сканирование OneWare

#8

Сообщение Lazary » 31.10.2016{, 19:06}

eugeneb, Спасибо, єто решит мою задачу.

Oleg1345140
Лейтенант
Сообщения: 538
Зарегистрирован: 06.09.2015{, 07:09}
Репутация: 1
Откуда: Курган

Вопрос по блоку сканирование OneWare

#9

Сообщение Oleg1345140 » 01.11.2016{, 16:22}

Чисто технически существует возможность поиска всех ромов на линии. И автор флпрог вроде как реализовывал в блоке на сколько я понял, просто блок работает не корректно. надо уточнить у автора и в багрепорт направить.

Аватара пользователя
eugeneb
Лейтенант
Сообщения: 475
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 16
Откуда: Нижний Новгород
Имя: Евгений

Вопрос по блоку сканирование OneWare

#10

Сообщение eugeneb » 02.11.2016{, 00:54}

Oleg1345140

О, господи!
Вам 500 раз сказали, что это невозможно.. Автор читает адреса. В его массивах адреса.
Просто эти массивы тоже имеют размер 9 байт. Совпадение, однако.

Потом по этим адресам можно прочитать ромы. Автор в своём блоке DS18* читает ром,
но выводит только температуру.

Ваш алгоритм вероятно должен быть такой:
1. сканируете все датчики в шлейфе. получаете 20 адресов.
2. по этим адресам читаете 20 ромов. При этом в ромах (в байтах 2 и 3) должны быть заранее записаны номера датчиков в шлейфе.
3. по этим ромам определяете кто из адресов первый, кто второй, а кто двадцатый в шлейфе. И составляете временную базу данных (таблицу) "номер в шлейфе - адрес".
4. далее, пользуясь этой таблицей вы можете читать температуру с любого датчика в шлейфе,
обращаясь к нему по адресу, но уже зная его номер в шлейфе.

Как-то так.

Не вижу, чем тут могут помочь блоки автора. И там нет ошибок.
Вам всё придётся написать самому.

Oleg1345140
Лейтенант
Сообщения: 538
Зарегистрирован: 06.09.2015{, 07:09}
Репутация: 1
Откуда: Курган

Вопрос по блоку сканирование OneWare

#11

Сообщение Oleg1345140 » 02.11.2016{, 04:56}

Собственно этого и хочу добиться от имеющегося блока. Что бы он правильно считал все РОМ и записал их в массивы. Просто этот блок почему то записывает во все массивы одно и тоже значение.

Аватара пользователя
eugeneb
Лейтенант
Сообщения: 475
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 16
Откуда: Нижний Новгород
Имя: Евгений

Вопрос по блоку сканирование OneWare

#12

Сообщение eugeneb » 02.11.2016{, 08:03}

Да не может он этого сделать! Автор объясняет это прямо в фильме.
Он может это сделать при условии, что на каждом  пине ардуины висит по одному датчику.
Это не ваш случай.

Oleg1345140
Лейтенант
Сообщения: 538
Зарегистрирован: 06.09.2015{, 07:09}
Репутация: 1
Откуда: Курган

Вопрос по блоку сканирование OneWare

#13

Сообщение Oleg1345140 » 02.11.2016{, 16:40}

Вот этим скетчем считываю все ромы на шине (все на одном пине), скетч взят из примеров в ИДЕ ардуеновской
Для скачивания вложений Вы должны быть зарегистрированы.

Аватара пользователя
eugeneb
Лейтенант
Сообщения: 475
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 16
Откуда: Нижний Новгород
Имя: Евгений

Вопрос по блоку сканирование OneWare

#14

Сообщение eugeneb » 02.11.2016{, 19:47}

Дк я ж и говорю: "Пишите на ардуинском С"

Потом, может быть, года через два, когда запрограммируете все датчики в полях, перепишете на FLProg

Oleg1345140
Лейтенант
Сообщения: 538
Зарегистрирован: 06.09.2015{, 07:09}
Репутация: 1
Откуда: Курган

Вопрос по блоку сканирование OneWare

#15

Сообщение Oleg1345140 » 02.11.2016{, 19:54}

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

Ответить

Вернуться в «Протоколы»