1

Тема: CANNY5 nano: Работа с несколькими датчиками DS18B20 на одной шине

При решении задач мониторинга и организации сетей датчиков широкое распространение получил протокол Dallas 1-Wire, позволяющий организовывать сети протяженностью от нескольких десятков (в самом простом варианте) до нескольких сотен метров, при этом на одной шине 1-Wire может находиться нескольких десятков, а в отдельных случаях до нескольких сотен датчиков.

Пример иллюстрирует решение задачи получения данных от двух цифровых датчиков температуры DS18B20, подключенных к одной шине 1-Wire.
В общем случае решение состоит из 2х этапов:
1. Определение уникального 64-битного ROM-кода (серийного номера) датчиков;
2. Адресный опрос датчиков: последовательное обращение к каждому конкретному датчику по известному ROM-коду для получения от него необходимых данных.

Для реализации этапа 1 необходимо выполнить считывание 64-битного ROM-кода каждого датчика, воспользовавшись диаграммой c5nano_dallas_address_reader.cfd из состава проекта примера. Считанные коды контроллер передает в формате ASCII в терминал персонального компьютера по UART.

Схема подключения:
http://forum.canny.ru/misc.php?action=pun_attachment&item=611

Функциональная диаграмма c5nano_dallas_address_reader.cfd:
http://forum.canny.ru/files/c5nano_address_reader_cfd.png

Окно терминала ПК в процессе работы диаграммы:
http://forum.canny.ru/files/c5nano_reader_terminal.png


Для реализации этапа 2 необходимо воспользоваться диаграммой c5nano_ds18b20x2.cfd из состава проекта примера. Данные температуры, полученные от датчиков, контроллер передает в формате ASCII в терминал персонального компьютера по UART.

Схема подключения:
http://forum.canny.ru/misc.php?action=pun_attachment&item=612

Функциональная диаграмма c5nano_ds18b20x2.cfd:
http://forum.canny.ru/files/c5nano_ds18b20x2_cfd.png

Окно терминала ПК в процессе работы диаграммы:
http://forum.canny.ru/files/c5nano_ds18b20x2_terminal.png

Функциональная диаграмма c5nano_ds18b20x2.cfd может быть легко модернизирована для работы с большим количеством датчиков.

Архив с исходными файлами проекта и краткими описаниями диаграмм:
http://forum.canny.ru/files/c5nano_1wire.zip

UPD 31.10.2016: Добавлены диаграммы, актуализированные для CannyLab версии 1.24.

UPD 24.05.2018: Изменены картинки схем подключения термодатчиков к контроллеру.

Вложений в сообщении

Иконка вложения c5nano_dallas_address_reader.png 6.27 кб, скачивался 166 раз, последний раз 2018-05-24 

Иконка вложения c5nano_dallas_address_reader_v124.cfd 8.86 кб, скачивался 596 раз, последний раз 2016-10-31 

Иконка вложения c5nano_ds18b20x2.png 7.76 кб, скачивался 154 раз, последний раз 2018-05-24 

Иконка вложения c5nano_ds18b20x2_v124.cfd 3.37 кб, скачивался 619 раз, последний раз 2016-10-31 

2

Re: CANNY5 nano: Работа с несколькими датчиками DS18B20 на одной шине

А как с этой диаграммы получить разные каналы от разных датчиков для исполнительных устройств пробую Комм 1:2 во вход (даллас Т цел) а в индекс № датчика о с каждого выхода жду свои данные каждого датчика при привышении определенной температуры должен загореться светодиод при минимальной температуре он не светится а как дойдет температура он моргает а нужно что бы горел постоянно пока не снизится температура задержка не помогает

3

Re: CANNY5 nano: Работа с несколькими датчиками DS18B20 на одной шине

gavralex пишет:

А как с этой диаграммы получить разные каналы от разных датчиков для исполнительных устройств...

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

Сохранить данные с каждого датчика в отдельности можно, например, с помощью D-триггеров (смотри вложение).

Вложений в сообщении

c5nano_ds18b20x2_store.png, 18.73 кб, 702 x 148
c5nano_ds18b20x2_store.png 18.73 кб, скачивался 513 раз, последний раз 2016-07-06 

4

Re: CANNY5 nano: Работа с несколькими датчиками DS18B20 на одной шине

Отлично спасибо все получилось.

5

Re: CANNY5 nano: Работа с несколькими датчиками DS18B20 на одной шине

Добрый день подскажите при отключении датчика температура останавливается на последних данных принятых с датчика как можно что бы система отключилась при обрыве датчика?

Денис, CANNY пишет:
gavralex пишет:

А как с этой диаграммы получить разные каналы от разных датчиков для исполнительных устройств...

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

Сохранить данные с каждого датчика в отдельности можно, например, с помощью D-триггеров (смотри вложение).

6

Re: CANNY5 nano: Работа с несколькими датчиками DS18B20 на одной шине

Можно сделать так (смотри рисунок): при регулярном получении данных от датчика в именованные сети будут передаваться значения температуры, полученные от него; если от датчика (конкретного) не будет ответа в течении более чем 2 секунд (в течение более чем одного цикла опроса всех датчиков), то в именованную сеть будет записано значение 0 (или другое значение, указывающее что ответа от датчика нет, например 999).

Вложений в сообщении

Иконка вложения c5nano_ds18b20x2_store1.png 34.01 кб, скачивался 195 раз, последний раз 2018-05-16 

7

Re: CANNY5 nano: Работа с несколькими датчиками DS18B20 на одной шине

Спасибо появилась еще одна проблема при подключении датчика на контакт  С7 при обрыве + он показывает 85 градусов показывает hyperterminal и температура не меняется светодиод моргает в том же режиме получаются данные идут как с этим бороться 

Денис, CANNY пишет:

Можно сделать так (смотри рисунок): при регулярном получении данных от датчика в именованные сети будут передаваться значения температуры, полученные от него; если от датчика (конкретного) не будет ответа в течении более чем 2 секунд (в течение более чем одного цикла опроса всех датчиков), то в именованную сеть будет записано значение 0 (или другое значение, указывающее что ответа от датчика нет, например 999).

8

Re: CANNY5 nano: Работа с несколькими датчиками DS18B20 на одной шине

Не совсем понятно о чем идет речь, пришлите диаграмму и схему подключения датчика к контроллеру.
Приведенные в данной теме схемы подключения были не совсем корректны (исправлено). Правильнее было бы для подтяжки линии данных датчика к +5В использовать не внутреннюю подтяжку каналов контроллера, а внешний резистор номиналом 4к7.

9

Re: CANNY5 nano: Работа с несколькими датчиками DS18B20 на одной шине

При отключении дата провода и - все в порядке при отключении + температура 85 завтра попробую с подтяжкой и видео сниму

10 (11-07-2021 13:37:38 отредактировано tachometer)

Re: CANNY5 nano: Работа с несколькими датчиками DS18B20 на одной шине

простите, чем можно подключиться к пресловутому UART1?
Никак не понимаю, что за уровни там.

ADAM-4561 нормально будет (наверное, нет: он же на 12В по 232....)?

Или можно просто перевести в режим работы (перемычкой) и включа какую-то смотрельню порта на тот виртуальный порт, через который программировали, будем получать последовательности?

Гипертерминала нету, ComPort Toolkit нормально будет?

так, понятно.
порт - тот, через который контроллер шьем, т.е. надо после снятия перемычки (для запуска), обратно юсб воткнуть.
Понятно, при снятом внешнем питании, чтоб уравнительный ток не вынес ничего...

гипертерминал для семёрки гуглиться по словам:
" Для тех счастливчиков, которые уже полностью мигрировали на Windows 7 и в чьем ведении не осталось Xp-шек, в архиве публикую все необходимые файлы.

Скачать hyperterminal  для windows 7:  HyperTerminal_for_win7.zip (215 Кб)"

запускать ГТ при воткнутом в контроллер юсб, тогда при запуске будет доступна опция соединиться через порт. Надо будет поставить те же настройки, которые в программе для canny - по-умолчанию в ГТ они другие...