Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы с Далласами
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Метрология, датчики, измерительная техника
GrayCat
Приколы какие-то с этими Далласами, DS18S20 и DS18B20. У нас они в системе термометрии зернохранилищ, так что статистика есть по нескольким сотням штук.
  1. "Портятся". Некоторые датчики (замечено за серией DS18S20) вдруг, начиная с некоторого момента, начинают "врать": показывать температуру T°±X, где X - случайно, да еще иногда и меняется. Поначалу грешили на переполюсовку, на статику, на повышенную нагрузку (1к1 в "подтяжке" это 4мА - на пределе, по даташиту)... Но последний случай это опроверг: только что датчик показывал комнатную температуру, через 10 минут гляжу: "-3.3°" ! При этом ничего не делалось, не переключалось, коробочка лежала на столе. Загадка...
  2. Еще одна странность: некоторые DS18B20 при некоторых температурах начинают "дрожать" в пределах 2°. Т.е., например, 17° показывают стабильно, 18°, 22° и выше - стабильные показания. А в интервале 19°...21° - с каждым считыванием выдает "псевдослучайное" число из этого промежутка. При том, что все остальные датчики в этой шине ведут себя нормально.
Кто-нибудь с таким сталкивался? Это лечится?
Andy-L
Цитата(GrayCat @ Mar 6 2007, 12:29) *
Приколы какие-то с этими Далласами, DS18S20 и DS18B20. У нас они в системе термометрии зернохранилищ, так что статистика есть по нескольким сотням штук.
  1. "Портятся". Некоторые датчики (замечено за серией DS18S20) вдруг, начиная с некоторого момента, начинают "врать": показывать температуру T°±X, где X - случайно, да еще иногда и меняется. Поначалу грешили на переполюсовку, на статику, на повышенную нагрузку (1к1 в "подтяжке" это 4мА - на пределе, по даташиту)... Но последний случай это опроверг: только что датчик показывал комнатную температуру, через 10 минут гляжу: "-3.3°" ! При этом ничего не делалось, не переключалось, коробочка лежала на столе. Загадка...
  2. Еще одна странность: некоторые DS18B20 при некоторых температурах начинают "дрожать" в пределах 2°. Т.е., например, 17° показывают стабильно, 18°, 22° и выше - стабильные показания. А в интервале 19°...21° - с каждым считыванием выдает "псевдослучайное" число из этого промежутка. При том, что все остальные датчики в этой шине ведут себя нормально.
Кто-нибудь с таким сталкивался? Это лечится?

Сталкивались... У нас в морозильных камерах (склады мороженного) DS18S20 дохнут через месяца 3-4. Видимо никто их не гонял при таких температурах долго (-35 С), причем скачков температуры нет - она всегда в таких пределах. Датчик вообще перестает отвечать. Точность у всех датчиков за год работы убежала (у некоторых до 3 градусов). Пришлось вводить программную калибровку. Скачки при измерениях тоже бывают - раздражали резкие пики на графиках. Победили тоже программно - если есть резкий скачок температуры (десяток и более градусов - значение подбирайте сами по инерционности объекта), то сразу это в базу данных не пишется - только после нескольких (5-8) измерений подряд - ну вдруг реально произошел такой скачок :-) Такие дефекты при лабораторных испытаниях не вылазили - ну померили чуток и все довольны. А вот когда взяли результаты измерений за неделю в условиях заводского цеха - тогда и увидели эти скачки. Причем это не ошибки - КС всегда совпадала. Видимо срывало "крышу" контроллера внутри датчика.
GrayCat
Цитата(Andy-L @ Mar 7 2007, 11:41) *
Датчик вообще перестает отвечать.
[---]
Причем это не ошибки - КС всегда совпадала. Видимо срывало "крышу" контроллера внутри датчика.
Мы наблюдаем, что ответ есть, он правильный с "цифровой" точки зрения (CRC совпадает), но он неверный по температуре. Что-то в области самого преобразования "температура→код".

...вот, только что еще один датчик "скакнул" с комнатной на 88°... ninja.gif
GrayCat
Вот, нашел:
Нажмите для просмотра прикрепленного файла

Вкратце: в моменты подачи питания может нарушаться содержимое ячеек EEPROM с калибровочными константами. Предлагают "сбрасывать" эти коэффициенты на дефолтные, получая "некалиброванную" точность +- 2 градуса.
zltigo
Цитата(GrayCat @ Mar 6 2007, 15:29) *
Приколы какие-то с этими Далласами,

Несколько лет назад обычный домашний холодильник Elecrolux в основной камере после отключения/включения электроэнергии начал ругаться на температуру выше 9 градусов. Был в отезде, жена вызвала мастера - заменили датчик. Как-то разобрал его - внутри Dallas 18S20, рабочий, но врет на пару десятков градусов. Кабель от датчика до контроллера метр с небольшим.
Короче, бывает sad.gif и в более мягких условиях эксплуатации.
Zoro
оо хорошо что наткнулся очередной раз на эту тему...
хотел использовать такие датчики в холодильной технике...
Вопрос а какие вы посоветуете smile.gif? из серии DS...? просто вариант одна шина и 4ре датчика меня устраивает полностью smile.gif
есть еще один момент smile.gif (работал только один раз и то использовал библиотеку), а нельзя ли прочитать-записать эти калибровочные константы? просто есть идея запомнить их во время первоначальной установки-обучении контроллера, а далее при запуске-или через определенное время сверять их? если изменились то он негодный либо заново записать константу... либо вычислить разницу и своей программой уже исправлять?
ASZ
Цитата(Zoro @ Jul 23 2007, 16:39) *
оо хорошо что наткнулся очередной раз на эту тему...
хотел использовать такие датчики в холодильной технике...
Вопрос а какие вы посоветуете smile.gif? из серии DS...? просто вариант одна шина и 4ре датчика меня устраивает полностью smile.gif

...

ИМХО, нет ничего надежнее доброго старого термометра ТСМ или ТСП...
Конечно, не везде воткнешь в промышленной арматуре, но ведь существуют разные исполнения.
Georgy
Cлава богу что в своё время сей девайс не применён а ведь тоже позарился.
Теперь о нем Максим пишет DS1820 No Longer Available: Use Recommended Replacements
В его кишках наворотили... мама не горюй а вывод один.
Искать замену.
zltigo
Цитата(Georgy @ Jul 25 2007, 19:05) *
Теперь о нем Максим пишет DS1820 No Longer Available: Use Recommended Replacements

DS18S20 это другой.
SALOME
Цитата(Georgy @ Jul 25 2007, 23:05) *
Cлава богу что в своё время сей девайс не применён а ведь тоже позарился.

Мы тоже собирались применить данное изделие. В лабораторных условия вроде работает без ошибок. Однако теперь насторожены. А может какие-то особые условия влияют. Предположу, что на самом деле - зернохранилища и промышленные хладокамеры изобилуют разными ЭМС сюрпризами (Мне так кажется smile.gif ). Может преждевременно на них крест ставить? У кого есть положительный опыт?
Zoro
а какие датчики от далоса более стабильны-живучи? просто требуется целая линейка датчиков... для контроля температуры(-20С ) во всём помещении(длина около 70м, датчиков штук 20)
GrayCat
Последним ~пяти ораторам:

Почитайте внимательно выложенный сюда документ APP247. Там более-менее подробно расписано, что и отчего. У нескольких партий датчиков выпуска 2004 года (а у нас именно они) повышена вероятность слета EEPROM в момент подачи питания. Небось, со встроенным Brown-out намутили.

В документе приводятся последовательности команд для считывания калибровочных констант, и для их записи. Даны также "усредненные" константы, которые гарантируют "некалиброванную" точность ±2°. Показано, как определить, "съехала крыша" у конкретного датчика, или нет (соответствие считанных констант неким маскам).

По результатам моих экспериментов, команды записи пишут именно в EEPROM датчика, так что после этой процедуры датчик становится "полноценным", но с гарантированной точностью ±2° вместо "калиброванных" ±0.5°. Нас это устраивает. Контроллер при старте запрашивает константы у всех датчиков, и если у какого-то сбой - перепрошивает "усредненные".

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

А что касается альтернатив - есть ли в природе другие варианты, как промерять температуру в нескольких точках (~15шт.) на некоей длине (~30м), не протягивая туда жгута из десятка проводов? Далласы это обеспечивают, хоть и не безгеморройно.
rezident
Цитата(GrayCat @ Jul 30 2007, 00:24) *
А что касается альтернатив - есть ли в природе другие варианты, как промерять температуру в нескольких точках (~15шт.) на некоей длине (~30м), не протягивая туда жгута из десятка проводов? Далласы это обеспечивают, хоть и не безгеморройно.

Дык при такой постановке задачи у вас проблема в линиях связи видимо, а не измерения. Можно ведь использовать интеллектуальные измерители температуры и другой интерфейс связи. Из двупроводных промышленных - RS485 или токовая петля, например.
GrayCat
Цитата(rezident @ Jul 29 2007, 23:24) *
Дык при такой постановке задачи у вас проблема в линиях связи видимо, а не измерения. Можно ведь использовать интеллектуальные измерители температуры и другой интерфейс связи. Из двупроводных промышленных - RS485 или токовая петля, например.

Та мы ж и не против!!! 1111493779.gif Одна из самых больших проблем MicroLAN - невозможность нормальной терминации, и ТТЛ-уровни не только на передачу, но и на прием (в отличие от тех же RS232, RS-485, где приемник -- компаратор с "нулем"). Как всегда, недостатки любого технического решения - продолжение его достоинств.

Конечно, очень привлекательной альтернативой Далласам выглядит исполнение каждой "точки измерения" на МК + термистор/термопара/RTD навешенной на RS-485. Дороговато, конечно, по сравнению с DS18*20, и гарантии отсутствия кучи специфических проблем не дает.

Но дело не в этом. В нашем случае (зернохранилища) такое не пройдет: "термоподвеска" (например, полый металлический трос с гирляндой датчиков внутри) должна быть как можно тоньше, дабы трение об зерно было поменьше. Имеющиеся конструкции (трос наружным диаметром порядка 20мм) испытывают при выгрузке зерна нагрузки порядка тонны, и их узел крепления к крыше частенько не выдерживает. Если же каждая "точка" будет целой печатной платой, такую конструкцию сметет в момент!

Короче, Далласы нас почти устраивают. Да и с проблемой недержания EEPROM мы уже научились бороться. Дальше у нас по плану -- корреляционный алгоритм приема бита от датчика... 07.gif wink.gif
Rst7
Цитата(GrayCat @ Jul 30 2007, 09:54) *
Та мы ж и не против!!! 1111493779.gif Одна из самых больших проблем MicroLAN - невозможность нормальной терминации, и ТТЛ-уровни не только на передачу, но и на прием (в отличие от тех же RS232, RS-485, где приемник -- компаратор с "нулем"). Как всегда, недостатки любого технического решения - продолжение его достоинств.


Я бы не говорил так категорично - RS485 в этом отношении с порогом 50мв имеет свои грабли - дабы в период тишины на линии не ловить начало пакета от помех надо либо делать некоторую принудительную поляризацию линии (ну допустим до уровня 0.7вольт, чтобы четко удержать лог. 1 на выходе приемника, пока нет никакой передачи), либо добавлять специальный байт 0xFF перед пакетом, причем при приеме его отбрасывать (передача такого байта обеспечит правильное определение старта для следующего байта независимо от состояния линии до начала передачи). Вообщем проблем тоже как грязи... Идеального ничего нет...

Цитата
Короче, Далласы нас почти устраивают. Да и с проблемой недержания EEPROM мы уже научились бороться. Дальше у нас по плану -- корреляционный алгоритм приема бита от датчика... 07.gif wink.gif


Можно конечно попробовать... Но не стоит забывать, что сам датчик принимает информацию именно по семплу в одной точке... Так что таким образом можно подлечить канал только наполовину wink.gif
GrayCat
Цитата(Rst7 @ Jul 30 2007, 10:15) *
Я бы не говорил так категорично - RS485 в этом отношении с порогом 50мв имеет свои грабли

Вот именно, как я уже говорил про "продолжение достоинств" wink.gif
Цитата
- дабы в период тишины на линии не ловить начало пакета от помех надо либо делать некоторую принудительную поляризацию линии (ну допустим до уровня 0.7вольт, чтобы четко удержать лог. 1 на выходе приемника, пока нет никакой передачи)

Ну так эти "растяжки" -- совершенно стандартный элемент схемотехники RS-485, вплоть до включения их в состав микросхем.
Цитата
, либо добавлять специальный байт 0xFF перед пакетом, причем при приеме его отбрасывать

Не надо ничего "добавлять" и "выбрасывать". Достаточно включать передатчик на передачу лог. "1" за пару "байт" до собственно посылки информации в линию. Именно это предусмотрено, например, протоколом MODBUS RTU. Тогда низкий импеданс передатчика удавит помехи, а тот "мусор", который успел принять приемник до включения передатчика, будет отброшен алгоритмом по таймауту.
Цитата
Вообщем проблем тоже как грязи... Идеального ничего нет...


Вот именно! НО! Для того же RS-485 эти проблемы тем или иным образом решаемы. Хотя бы, в крайнем случае, понижением скорости обмена. А у 1-wire -- принципиально нерешаемы. Никак sad.gif

Цитата
Можно конечно попробовать... Но не стоит забывать, что сам датчик принимает информацию именно по семплу в одной точке... Так что таким образом можно подлечить канал только наполовину wink.gif

Вот именно это (низкая помехоустойчивость самих датчиков) я и имел в виду, когда говорил о "принципиальной нерешаемости".
Rst7
Цитата(GrayCat @ Jul 31 2007, 23:00) *
Ну так эти "растяжки" -- совершенно стандартный элемент схемотехники RS-485, вплоть до включения их в состав микросхем.


Криво это все... И, кстати, лишнее потребление от этих растяжек (ведь надо пересилить 60ом двух терминаторов (обычно), по 10 ком в + и в - речь не идет, это только если обрыв происходит)....


Цитата
Не надо ничего "добавлять" и "выбрасывать". Достаточно включать передатчик на передачу лог. "1" за пару "байт" до собственно посылки информации в линию. Именно это предусмотрено, например, протоколом MODBUS RTU. Тогда низкий импеданс передатчика удавит помехи, а тот "мусор", который успел принять приемник до включения передатчика, будет отброшен алгоритмом по таймауту.


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

Цитата
Вот именно! НО! Для того же RS-485 эти проблемы тем или иным образом решаемы. Хотя бы, в крайнем случае, понижением скорости обмена. А у 1-wire -- принципиально нерешаемы. Никак sad.gif
Вот именно это (низкая помехоустойчивость самих датчиков) я и имел в виду, когда говорил о "принципиальной нерешаемости".


согласен.
GrayCat
Цитата(Rst7 @ Aug 1 2007, 10:24) *
Криво это все...


Не более криво, чем "лог.1" по умолчанию на висящем ТТЛ-входе wink.gif :D

Цитата
И, кстати, лишнее потребление от этих растяжек (ведь надо пересилить 60ом двух терминаторов (обычно), по 10 ком в + и в - речь не идет, это только если обрыв происходит)....


Та ладно, обычно там где RS-485, лишние пара мА не проблема.

Цитата
А вот такие вещи не работают, если делаешь репитер с автоматическим переключением направления...

Наверное, да. Нам пока что репитеры без надобности. А если и понадобится -- уже есть отработанная схема "свича" RS232/422/485 <-> RS422/485, на "двухпортовом" микроконтроллере, который сам все необходимые времянки отработает.

Но, увы, Далласам это уже никак не поможет... angry.gif
_Pasha
Только что, изрядно помучившись, запустил девайс с DS18B20.
Грабли заключались в том, что вроде бы не связанные команды RECALL_E2 и следующая за ней CONVERT_T оказались логически несовместными. Без RECALL_E2 - все нормально. А с RECALL_E2 получаем значение температуры = 85 градусов, т.е. значение после POWER ON. И никакие CONVERT_T не сбивают эти 85 градусов.
В доке об этом , ессно, ничего.
Во как!
AnV22
Мы тоже используем DS18b20, причем длина провода до датчика - около 100м. Питание-постоянное 5В, не паразитное. Производим мониторинг температуры в пропарочных камерах. После полугода работы начались проблемы с датчиками - непонятно откуда берутся пики температуры амплитудой от 10 до 50 град плюсом к текущей температуре, длительностью 3-5 секунд. Пока частично решили проблему установкой непосредственно возле датчика электролита и керамического конденсатора. Кто что думает, почему такое происходит? Чувствительность датчика к помехам?Просадка питания на длинном проводе, соединяющем датчик и контроллер?
GrayCat
Кто-то здесь упоминал, что Далласы очень "не любят" грязи и прочие там влажности...
_Pasha
Цитата(GrayCat @ Nov 4 2007, 02:00) *
Кто-то здесь упоминал, что Далласы очень "не любят" грязи и прочие там влажности...


Не может быть. Имеется с десяток устройств, где оные условия функционирования. Работают уже по полтора года.
Конечно, не всякая грязь целебна smile.gif
GrayCat
Цитата(_Pasha @ Nov 5 2007, 18:59) *
Не может быть. Имеется с десяток устройств, где оные условия функционирования. Работают уже по полтора года.
Конечно, не всякая грязь целебна smile.gif

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

"Десяток устройств" -- не показатель wink.gif
pokos
Товарищ имел подобный опыт с Далласом. Дохли по-чёрному. Никакие аппноты не помогают до конца, дохнут и те, на которых питание постоянно есть. В результате отказались от этого барахла, стали ставить аналоговые датчики.
_Pasha
Цитата(GrayCat @ Nov 7 2007, 11:43) *
Не знаю, конкретно про грязь видел в форумах, у человека на нескольких тысячах экземпляров вылезало такое...

"Десяток устройств" -- не показатель wink.gif


smile.gif Другой бы спорил - а я не буду. Только из http://electronix.ru/forum/index.php?showtopic=25608
народ говорил, что все нормально.
Вот чего я думаю: может дело все-таки в партиях далласов? И вот как у человека на тысячах экзепляров проходили закупки? И когда это было?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.