Недавно я впервые столкнулся с датчиками температуры и влажности SM-100 и SM-200 украинского производства. Это девайсы с герметичным корпусом IP67, питанием 12 V и портом RS-485 с протоколом Modbus RTU:
Характеристики
Название | SM-100, SM-200 | ||
Назначение | SM-100 | датчик температуры воздуха | |
SM-100.W | датчик температуры воздуха/почвы/жидкости | ||
SM-200 | датчик температуры и влажности | ||
SM-100 | Диапазон и точность измерения температуры | -40… +60 °C, ±0.5 °C | |
SM-100.W | -55… +125 °C, ±0.5 °C | ||
SM-200 | Диапазон и точность измерения температуры | -40… +60 °C, ±0.5 °C | |
Диапазон и точность измерения влажности | 0… 100 %, ±4.5 % | ||
Интерфейс передачи данных | RS-485 | ||
Протокол передачи данных | Modbus RTU | ||
Скорость передачи данных | 2400 bps | ||
Питание | 12 V DC | ||
Габариты корпуса | 58 x 64 x 35 mm | ||
Степень защиты | IP67 | ||
Исполнение корпуса | крепление на стену | ||
Цена | SM-100 | 49 $ | |
SM-100.W | |||
SM-200 | 79 $ | ||
Сайт производителя | http://softron.com.ua/ |
Конструкция
Датчики смонтированы в одинаковые герметичные корпуса с прозрачной передней панелью:
Панель прозрачная для того, чтобы были видны на плате датчика светодиоды питания(зеленый) и передачи данных(красный). В серии SM-100 температурные сенсоры установлены в металлические штыри, которые вмонтированные в корпус(SM-100), либо вынесены из корпуса на кабеле(SM-100.W). Клемм подключения у SM-100/200 нет, вместо него торчит хвост из 4-х проводков:
- Синий- RS-485 A+
- Желтый- RS-485 B-
- Красный- +12 V DC
- Черный- GND
В SM-100 используются сенсоры DS18B20, в SM-200 сенсоры SHT10/SHT21.
Плата датчика SM-100 сложностью не отличается:
Гальванической развязки RS-485 нет:
Микросхема ST GK332(в правильности маркировки не уверен- плохо читается под лаком) скорее всего, преобразователь питания в 3.3 V.
Микроконтроллер STM8L152С6 для такой простой системы избыточен, почти все ноги не задействованы:
Вместо него хватило бы какого-нибудь слабого микроконтроллера типа atmega8(даже attiny2313), но парадокс в том, что цены на мощный STM8L152C6 и хиленький atmega8 почти одинаковы.
Опыт применения
Датчики SM-100/200 позиционируют не просто девайсами, но как программно-аппаратный комплекс в составе самих датчиков и программы мониторинга «Страж климат». О возможностях сего софта можно справиться на сайте производителя датчиков. Для меня же они остались за кадром, т.к. нужно было подключить датчики не к компьютеру а к ОВЕН ПЛК110-60.
Вот тут и крылась засада- SM100/200 передают данные по Модбас на фиксированной скорости 2400 бод а ПЛК110-60 не работает на такой скорости: http://plc-blog.com.ua/owen-plc-110-60-bag-n3
2400 это скорость зари автоматизации и компьютерного средневековья, такую скорость давно никто не применяет. Вдвойне странно, что при мощном процессоре, который задействован, дай бог на 2% своих возможностей, не предусмотрели возможность изменения скорости передачи данных.
Хорошо, что производители мне пошли на встречу и быстро и бесплатно перешили скорость на 19200. Но тем самым я из серийных устройств(пусть серия и маленькая) получил уникальные датчики- прошивки под свою скорость в открытом доступе нет, сменить ее могут только сами разработчики.
Могу предположить, что скорость 2400 выбрана потому, что многие потенциальные пользователи, покупающие для дома датчики и подключающие их к компьютеру, слабо понимают что такое RS-485 и какой кабель для него нужен. Вплоть до того, что могут подключить датчики по телефонной лапше и тогда будут потери при передаче данных. Работая же на низкой скорости 2400, связь будет устойчивой даже без применения витой пары. Ну, на расстоянии до 100 метров точно.
Таким образом, параметры передачи данных по RS-485:
- Modbus RTU
- 2400 bps
- 8 бит, 1 стоповый, контроля четности нет
Основные регистры Modbus:
Параметр | Адрес регистра,SM-100 | Адрес регистра,SM-200 | Тип данных | Функция чтения |
Статус | 30000 | 30000 | int16 | 4x |
Температура x100 | 30004 | 30002 | int16 | 4x |
Влажность x100 | — | 30003 | int16 | 4x |
Данные измерений температуры и влажности являются правдивыми, когда Статус=1 и значение параметра<> -32767. Если значения температуры или влажности= -32767, то данные измерения не готовы по той или иной причине.
Обращаю внимание, что адрес регистра температуры у SM-100 и SM-200 разный.
Датчики поддерживают групповые запросы по Мобдас. Например, в своей программе я вместо 3-х запросов по отдельным регистрам статуса, температуры и влажности SM-200, делаю 1 групповой на адреса от 30000 до 30004.
Еще момент: как видно, значения температуры и влажности передаются с 2 точками после запятой. Но толку от этого никакого нет- точность измерения температуры, напомню из характеристик, составляет ±0.5 °C. Это значит, что 2 абсолютно одинаковых и исправных датчика, лежащих рядом, могут показывать температуру с разницей в 1 °C относительно друг друга и будут при этом находиться в допустимых границах точности. Так какой смысл тогда в передаче значений с двумя знаками после запятой? Вот принял ты значение температуры, например, в 19.27 °C, а при этом реальная температура может быть и 19.77 °C и 18.77 °C. В этом случае сотые доли градуса могут только ввести в заблуждение.
У меня самого 3 рядом лежащих датчика показывали одновременно 14.3, 14.6 и 15.1 °C. При этом тут же лежащий спиртовый градусник держал спирт где-то между черточками в 14 и 15 градусов.
При измерении влажности точность ±4.5 %. Тут уже и десятые доли процента передавать не обязательно.
Для лабораторных исследований такой точности не хватит, но для типичных бытовых и производственных нужд вполне достаточно.
Я тестировал работу ПЛК с датчиками более недели. Датчики работали, данные по Модбас передавались, проблем замечено не было.
Посмотрел на сайте производителя — питание всех датчиков производится от одного блока питания, а для чего тогда нужна гальваническая развязка?
Я просто констатировал отсутствие гальванической развязки RS-485. Во многих промышленных приборах ее тоже нет. Например в Adam-4017+: http://plc-blog.com.ua/obzor-adam-4017
Ставить надо свой блок питания на группу датчиков. Допустим 15 ватный блок питания на группу до 10 датчиков. Если больше надо датчиков — еще блоки питания