Telaire T6703

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Есть ли альтернатива Winsen MH-Z19B? Проверяем...

sadman41
Онлайн
Зарегистрирован: 19.10.2016
Большая просьба не комментировать этот пост, так как возможны дополнение и актуализация сведений, приведенных в нем.
 
Думаю не сильно ошибусь, если напишу, что сразу же после измерения уличных, комнатных и собственных температуры, влажности и давления каждый ардуинщик, считающий себя приличным, начинает анализировать какой-нибудь газ, летающий вокруг него. И чаще всего под руку попадается диоксид углерода, в простонародье называемый Co2.
 
Случается это, как минимум, по двум причинам: во-первых - данная процедура кажется простой и доступной, во-вторых - на каждом углу интернетах пишут, что без fart-o-meter'a никакая метеостанция не может считаться завершённой, вследствие чего жизнь должна быть серой и унылой. Посему не буду подробно расписывать, что такое Co2 и с чем его едят - до меня уже многие постарались.
 
Впрочем, как показывает практика, простому или продвинутому мигателю неонкой достаточно знать ответ на два вопроса: при каком значений метрики полагается включать аварийную сирену и откуда эту метрику выудить.
 
Ответ на первый находим, например, в статье Тион-а"В российском ГОСТ 30494–2011 «Здания жилые и общественные. Параметры микроклимата в помещениях» указаны четыре класса помещений, в зависимости от уровня СО2. В двух словах эти классы выглядят так:
 
1 класс: СО2 до 400 ppm – отличный воздух, дышите на здоровье!
2 класс: СО2 от 400 до 600 ppm – хороший воздух, дышать легко.
3 класс: СО2 от 600 до 1 000 ppm – на нижней границе воздух еще нормальный, на верхней уже так себе.
4 класс: СО2 больше 1 000 ppm – недопустимое качество воздуха, срочно проветривать!"
 
Второй же вопрос может быть рассмотрен только в экспериментальном порядке, что я и попытаюсь проделать.
 
Варианты
 
Следом за возникновением желания измерить что-нибудь газообразное, витающее вокруг нюхательной области головы, либо же в теплице с огурцами, грибами и прочей флорой, у пытливого самодельщика немедля возникает вопрос - какие датчики по сходной цене он может раздобыть? Отвечаю:
 
1) Самые простые, дешёвые и, на мой взгляд, абсолютно бесполезные - из серии MQ, например MQ-135. Это электрохимические датчики, эксплуатирующие принцип изменения сопротивления проводника, покрытого оксидом олова (SnO2), при контакте с обнаруживаемым газом. Требуют предварительного прокаливания перед эксплуатацией (24 часа минимум), относительно длительного прогрева перед замерами, при этом не имеют никакой коррекции по температуре/влажности в точке замера, контактируют с чем попало - бензином, алкоголем и дымом, вследствие чего спиваю... деградируют с неприличной скоростью. Единственный видимый плюс такового датчика: простота считывания значений с него - обычным analogRead();
 
2) Поначалу вызывающие доверие своей стоимостью и подкупающие остальными параметрами MEMS(MOX)-датчики, разработанные для контроля качества воздуха (Air quality sensors) - AMS CCS811, Sensirion SGP-30 (о котором я уже писал) либо схожие. В сущности же они являются миниатюрными эквивалентами представителей семейства MQ, но уже снабжены цифровым интерфейсом (I2C/UART/PWM/etc). Так же в них применены продвинутые методы самоконтроля, калибровки и коррекции показаний в зависимости от иных параметров окружающей среды. Однако, селективность MOX-датчиков, как и у их прародителей, оставляет желать лучшего - они точно так же измеряют концентрацию множества летучих (ЛОС / VOC) органических соединений, хитроумным способом выводя из них эквивалент CO2 (а это не то же самое, что настоящий CO2). Более подробно см. в посте про Sensirion SGP-30;
 
3) Считающиеся наиболее точными на данный момент NDIR-сенсоры, об одном из которых и пойдёт речь далее. 
 
Внутренний мир NDIR-сенсора
 
Формулируя кратко можно описать его так: заключенная в корпус инфракрасная лампа периодически светит на детектор через фильтр, а некая микросхема превращает показания фотоэлемента в значения концентрации целевого газа (Co2).
 
single_beam.jpg
 
Любители науки могут просветиться тут"Недисперсионные инфракрасные (NDIR) датчики представляют собой простые спектроскопические устройства, часто используемые для анализа газов. Ключевыми компонентами являются инфракрасный источник (лампа), измерительная камера или световая трубка, фильтр длины волны и инфракрасный детектор. Газ накачивается или попадаем естественным образом в измерительную камеру, затем концентрация газа измеряется электрооптическим путем, благодаря поглощению определенной длины волны в инфракрасном спектре (ИК)."
 
Одним из неоспоримых достоинств датчиков, основанных на оптическом принципе измерения, является их долгая жизнь. Впрочем, в каждом справочном листе по датчику из семейства MQ так же приведена фраза "Stable and long life". Однако, мне с ходу не удалось найти время этой долгой и стабильной жизни...
 
Производители же NDIR-датчиков открыто заявляют о годах: Winsen MH-Z19B - 5 лет и более, Telaire 67xx - порядка 15 лет.  Однако, они не скрывают, что проблема деградации измерительной части существует и пытаются с ней бороться. Одним из таких способов является применение второго, контрольного, луча: "A dual channel sensor is made by two separate emitters, where one main emitter is doing the continuous measurements and the reference emitter will measure at lesser time intervals (e.g. once/day). The idea is that the wear and deterioration in the reference emitter will be negligible compared to the main one so that the sensor for the reference emitter can assume a fixed reference state from its factory calibration. The main emitter could light up about 40,000 more times than the reference emitter over the NDIR sensor lifespan. Receiving energy from the reference emitter, and comparing it to the main one, can then be used to predict and offset the resulting deterioration in the signal strength of the main emitter. "
 
Подробнее с вопросом можно ознакомиться в статье SINGLE BEAM VS. DUAL BEAM, из которой наверняка можно узнать о том, почему стоимость некоторых похожих друг на друга сенсоров может отличается в разы (Single channel T6703-5K стоит $25, а dual channel T6615-5K уже $85).
 
Во избежание совершения эмоциональных покупок и неоправданных растрат обращаю ваше внимание на заключение: "However, this does not work very well in practice, since there are many more causes to drift and ageing than only from emitter signal deterioration. Additionally, this setup comes with a higher price and makes for more cramped electronics or larger total sensor size."
 
T6703
 
Два года назад я, в режиме 24/7, начал эксплуатировать датчик MH-Z19B от компании Winsen. До сих пор этот датчик жив и показывает что-то похожее на правду (сверять не с чем, кроме своих собственных ощущений). На время покупки Z19B был, пожалуй, единственным приемлемым по цене (~$30) предложением на Aliexpress.
 
Сейчас его цена ниже примерно на треть ($18), что позволяет сенсору от Winsen сохранить лидерство среди NDIR-датчиков начального уровня. Тем не менее, определённые недостатки не давали ему стать моим кумиром и заставляли меня искать альтернативы. И, похоже, на рынке появился неплохие варианты для замены старичка Z19 - Senseair S8 и Telaire T6703. Стоимость обоих изделий в районе $25-$28, но, при этом, пользователь получает более совершенный в технологическом плане сенсор. 
 
Изучив справочные материалы и подкинув монетку, я решил начать испытания с T6703-5K (модификация с пределом измерения в 5000 PPM) . В ходе которых выяснил, что он, так же, как и MH-Z19B:
 
- Является одноканальным (single beam) датчиком;
- Питается от 5V и потребляет 200mA в пике;
- Выдаёт данные по интерфейсу UART/PWM;
- Имеет механизм самокалибровки (ABC logic);
- Выпускается в разных исполнениях: с пределом измерения 2000PPM, 5000PPM. 
 
При этом ещё и отличается в лучшую сторону:
 
- Подтверждённой службой поддержки и экспериментом толерантностью к 5V на цифровом интерфейсе. MH-Z19 таковым свойством официально не обладает, в datasheet приведён TTL level - 3.3V. Для модификации MH-Z19B в справочном листе есть примечание "Compatible with 5V", но я не рискнул палить свой единственный датчик;
- Дополнительными цифровыми интерфейсами I2C и UART с поддержкой RS-485 приёмопередатчиков;
- Полноценным ModBus протоколом;
- PWM 25kHz, позволяющим формировать аналоговое представление концентрации Co2;
- Статусными регистрами, отражающими "здоровье" датчика;
- Улучшенной ABC logic - самокалибровка производится на основании данных за 7 дней, а не за сутки, как у MH-Z19B. За счёт этого прибор должен выдавать более точные показания в редко вентилируемых помещениях;
- Выравниванием в течении первых 24-х часов работы функцией ABC "сдвига калибровки", вызываемого монтажными работами (например, пайкой);
- Увеличенным временем жизни. "15 years typical"  против "> 5 years" у MH-Z19B;
- Способностью работать до -10 градусов Цельсия;
- Чуть меньшим размером;
- Нормальной посадкой на сетку 2.54мм. У MH-Z19B приходилось подгибать выводы для закрепления на макетной плате.
- Отличной документацией от производителя;
 
Получение данных
 
В связи с тем, что датчик поддерживает протокол ModBus и имеет интерфейс UART, любой разумный человек имеет шанс за пять минут приделать его к переходнику USB-TTL и опросить чем-то вроде modpoll. Опытные ардуинщики легко подключат к делу библиотеку ModbusRTU и вытащат с сенсора всё, что душе заблагорассудится. 
 
Неопытным же предлагаю простенькую функцию, взаимодействующую с сенсором по протоколу I2C.
 
#include <Wire.h>

#define T67XX_I2C_ADDRESS                                       (0x15)

#define T67XX_I2C_REQUEST_SIZE                                  (0x05)
#define T67XX_I2C_RESPONSE_SIZE                                 (0x04)

#define T67XX_I2C_RESPONSE_DELAY                                (0x0A)

#define T67XX_I2C_FIELD_FUNCTION_CODE                           (0x00)
#define T67XX_I2C_FIELD_BYTES_COUNT                             (0x01)
#define T67XX_I2C_FIELD_DATA_MSB                                (0x02)
#define T67XX_I2C_FIELD_DATA_LSB                                (0x03)


uint8_t getT67XXMetric(uint8_t _i2cAddress, uint16_t* _value) {
  uint8_t rc = false;
  uint8_t rawData[T67XX_I2C_REQUEST_SIZE] = {0x04, 0x13, 0x8B, 0x00, 0x01};

  // Take PPM
  Wire.beginTransmission(_i2cAddress);
  Wire.write(rawData, T67XX_I2C_REQUEST_SIZE);
  Wire.endTransmission();

  delay(T67XX_I2C_RESPONSE_DELAY);

  if (T67XX_I2C_RESPONSE_SIZE != Wire.requestFrom(_i2cAddress, T67XX_I2C_RESPONSE_SIZE)) {
    goto finish;
  }

  for (uint8_t i = 0x00; T67XX_I2C_RESPONSE_SIZE > i; i++) {
    rawData[i] = Wire.read();
  }

  if (0x04 != rawData[T67XX_I2C_FIELD_FUNCTION_CODE] || 0x02 != rawData[T67XX_I2C_FIELD_BYTES_COUNT]) {
    goto finish;
  }

  *_value = ((uint16_t) rawData[T67XX_I2C_FIELD_DATA_MSB] << 8) | rawData[T67XX_I2C_FIELD_DATA_LSB];

  rc = true;

finish:
  return rc;
}


void setup() {
  uint8_t rc;
  uint16_t co2ppm = 0x00;

  Wire.begin();

  Serial.begin(115200);
  Serial.println("Telaire T6703 demo\n----------------------");

  while (true) {
    rc = getT67XXMetric(T67XX_I2C_ADDRESS, &co2ppm);
    if (rc) {
      Serial.print("["); Serial.print(millis()); Serial.print("] "); Serial.print("Co2 PPM: "); Serial.println(co2ppm);
    } else {
      Serial.println("Sensor failure");
    }
    delay(5000);
  }
}

void loop() { }

 

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

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Эксперимент #1. Жилая комната

MH-Z19B работал в составе "станции наблюдения", т.е. находился в боксе, который принудительной вентиляции не имел. T6703 стоял рядом с этим боксом, на открытом бредборде, и обдувался естественным образом при циркуляции воздушных масс по комнате. Днём я оставлял балконную дверь приоткрытой. Газового "застоя" не происходило и были созданы все условия для срабатывания ABC (Automatic Baseline Correction). Это можно видеть на втором графике - коррекция произошла где-то через сутки после первого включения. Как сенсор это отсчитал - для меня загадка, потому что часть этого времени он был обесточен.

График за 2 дня, на котором видно, что показания MH-Z19B и T6703 сначала различались на некоторую константу, затем сошлись.

Момент срабатывания ABC (Automatic Baseline Correction) в ~15:00

За 4 часа (с уже сработавшей ABC) - показания отличаются на пренебрежимо малую величину.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Надеюсь не испорчу тему. Потом удалю, если что. Просто факты. У меня станция Netatmo с измерением в т.ч. CO2. Читал в описаниях где то, что за "ноль" считается объем CO2 на улице и это считается значением около 400ppm (точно не помню). Вполне возможно "датчик", увидев, что примерно 500ppm было достаточно длительное время (явное дно на графике, а оно просто так (минимальное значение) вряд ли возможно), посчитал это "нулем" и внёс коррекцию. Я на своей станции этот процесс не наблюдал, впрочем и не был нужды. Работает вполне нормально, в openHab графики сохраняю, температуры, СО2. Так, иногда анализирую. CO2 - очень полезная информация для меня. Всё жалею, что не смог принудительную вентиляцию сделать в хате, временами дышать не чем, а окна не откроешь.

 

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Вообще, все эти ABC logic - штуки "секретные" и патентованные, но в общем всё работает примерно так: есть некоторый период сбора данных, по прошествии которого из ряда семплов (конечно, наверняка не по единственному выбросу) выбирается наименьший и на основании его вычисляется поправочный коэффициент, который приводит то самое наименьшее значение к 400 PPM. Данный коэффициент действует на все выдаваемые наружу значения до очередной коррекции. 400 PPM - это некая договорная величина, которая в какой-то там год соответствовала "средепланетарному" уровню CO2. Этот "нормальный" уровень, конечно, мотает туда-сюда (см. https://www.climatecentral.org/news/world-passes-400-ppm-threshold-permanently-20738)... Дополнительной остроты в проблему реальности уровня Co2 добавляет факт того, что не у всех пользователей датчиков за период сбора нижняя граница будет 400PPM.

Поэтому всякие S8 с периодом сбора данных для ABC в 21 день, Telaire с периодом в 7 дней и пр. при определённых условиях будут несколько точнее, чем MH-Z19B. Однако, для пользователей, которые не живут в ямах с CO2 или около мусоросжигательных заводов и, хотя бы ненадолго, открывают окна (либо используют советские, "с естественным притоком") проблема занижения показаний является незначительной. У меня, к примеру, даже с закрытым окном, в течении рабочего дня, пока дома только кошка пукает, вполне себе наблюдается ~400PPM. Так что сенсору есть на что ориентироваться.

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

Есть аппнота от Telaire по ABC logic, можно углубиться в алгоритм работы при наличии желания: http://www.powerandsignal.com/images/pdfs/AASTelaireABCLogic.pdf

ev3658
ev3658 аватар
Offline
Зарегистрирован: 25.04.2019

Создал простую программу для MH-Z19B для калибровки и проверки датчика: https://yadi.sk/d/Ih0MGx6P7D5rRQ

Надеюсь всё работает, вложил не задокументируемые функции. У меня датчик меньше 400 ни разу не показал.

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Для пользователей опишите подключение к ПК.

ABC logic умеет отключать утилита?

ev3658
ev3658 аватар
Offline
Зарегистрирован: 25.04.2019

Я её особо не проверил. По ссылке буду обновлять если чего найду, хотелось бы по быстрей её допилить, так как позже придётся опять вкуривать в код.

Переключения диапазона в двух вариантах:

По поводу калибровки, тут есть вопросы, собственно и хочется это допилить:

 

Подключение простое, 5в. RX в TX и TX в RX - толерантен к ТТЛ уровню, но если переходник USB-RS232 имеет возможность переключение в 3.3в., грех ей не воспользоваться.

 

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Это я к тому, что для MH-Z19B толерантность к 5V заявлена, а вот для MH-Z19 - нет. 

Насколько я читал - калибровкой можно угробить датчик (не "физически", а в смысле "способность к адекватному замеру"), так что неплохо бы предупреждение подвесить, думаю. Вкл/выкл ABC Logic безопасно, а вот остальное...

ev3658
ev3658 аватар
Offline
Зарегистрирован: 25.04.2019

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

В предупреждении нет смысла, но всё-же рассмотрю вариант. Добавил сброс, вроде у меня его сбросило после спонтанных калибровок.

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

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Так и калибровать его надо "в среде" - вот где засада.

ev3658
ev3658 аватар
Offline
Зарегистрирован: 25.04.2019

Добавил предупреждения, заодно и сообщение об отправленной команде.

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

sadman41
Онлайн
Зарегистрирован: 19.10.2016

MH-Z14 имеет такой же протокол, к слову... Можете расширить диапазон датчиков. Но он, по даташиту, не толерантен к 5V.

ev3658
ev3658 аватар
Offline
Зарегистрирован: 25.04.2019

Азот не нашел, аргон есть или можно гелий? Просто азот есть в атмосфере в большом объеме, по нему точнее калибровать.

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Я, конечно, не химик, но если датчик должен измерять CO2, то зачем его калибровать по гелию?

ev3658
ev3658 аватар
Offline
Зарегистрирован: 25.04.2019

Сам смысл откалибровать на отсутствие СО2, лучше для этого использовать азот, его в воздухе полно.
Может я чего путаю, но у датчика при замыкании контакта калибровки на 7 сек.-калибровка на 400, при замыкании от 22 сек. калибровка на ноль СО2.
Автокалибровка не позволяет точно калибровать для использования вне жилого помещения.

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Ну, если на ноль, тогда логика прослеживается.

Я подумал, что в отсутствии CO2 на "нормальный" уровень (400PPM) планируется вывести.

ev3658
ev3658 аватар
Offline
Зарегистрирован: 25.04.2019

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

А вот если в теплице или на улице (в подготовленной атмосфере), то тут уже нужно отключать автокалибровку и заранее откалибровать датчик, там в документаци написано.

ФАРХОД МИРТОЛИБ...
Offline
Зарегистрирован: 29.08.2018

как подключается через ардуино?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ev3658 пишет:

Азот не нашел, аргон есть или можно гелий? Просто азот есть в атмосфере в большом объеме, по нему точнее калибровать.

Азот есть на шиномонтаже, закачивают в колёса

sadman41
Онлайн
Зарегистрирован: 19.10.2016

ФАРХОД МИРТОЛИБОВИЧ МИРТОЛИБОВИЧ Абдуллаев пишет:

как подключается через ардуино?

Что подключается? Про T6703 в первом посте написан раздел "Получение данных". Подробнее, со схемой - в datasheet.

atomshick
Offline
Зарегистрирован: 23.12.2020

Добрый день. Подскажите, пожалуйста, схему подключения T6703 к Modbus. 

sadman41
Онлайн
Зарегистрирован: 19.10.2016

atomshick пишет:

Добрый день. Подскажите, пожалуйста, схему подключения T6703 к Modbus. 

https://www.amphenol-sensors.com/en/telaire/co2/525-co2-sensor-modules/3215-t6700 -> "Telaire T67XX CO2 Sensor Module - Application Note",

стр.12:

Стр. 6

Стр. 8

atomshick
Offline
Зарегистрирован: 23.12.2020

sadman41 пишет:

atomshick пишет:

Добрый день. Подскажите, пожалуйста, схему подключения T6703 к Modbus. 

https://www.amphenol-sensors.com/en/telaire/co2/525-co2-sensor-modules/3215-t6700 -> "Telaire T67XX CO2 Sensor Module - Application Note",

стр.12:

Стр. 6

Стр. 8

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

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Мой хрустальный шар ясновидения отключился в 20:00 по Москве и куда вы собрались подключать сенсор - мне не видно.

Если к ПК, то через адаптер USB-TTL типа такого: 

RX/TX/GND/VCC на T6703 по первой схеме.

atomshick
Offline
Зарегистрирован: 23.12.2020

sadman41 пишет:

Мой хрустальный шар ясновидения отключился в 20:00 по Москве и куда вы собрались подключать сенсор - мне не видно.

Если к ПК, то через адаптер USB-TTL типа такого: 

RX/TX/GND/VCC на T6703 по первой схеме.

Не. Надо подключить к ПЛК (ПР200) по modbus.

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Тогда драйвер RS485 потребуется, стоит полагать. Для ардуины такие есть, незамысловатые.

atomshick
Offline
Зарегистрирован: 23.12.2020

sadman41 пишет:
Тогда драйвер RS485 потребуется, стоит полагать. Для ардуины такие есть, незамысловатые.

такой есть. надо только правильную схему.

ev3658
ev3658 аватар
Offline
Зарегистрирован: 25.04.2019

atomshick пишет:

sadman41 пишет:
Тогда драйвер RS485 потребуется, стоит полагать. Для ардуины такие есть, незамысловатые.

такой есть. надо только правильную схему.


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

atomshick
Offline
Зарегистрирован: 23.12.2020

ev3658 пишет:
atomshick пишет:

sadman41 пишет:
Тогда драйвер RS485 потребуется, стоит полагать. Для ардуины такие есть, незамысловатые.

такой есть. надо только правильную схему.

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

 

а какую плату-переходник посоветуете? только не USB. мне же надо RS485

sadman41
Онлайн
Зарегистрирован: 19.10.2016

В данной ситуации я вижу два варианта выявления "правильной схемы":
1) Самостоятельно провести эксперимент, соединив провода по Fig.4;
2) Обратиться, например, в "Ищу исполнителя" с тем, чтобы данный эксперимент провёл кто-то другой.

ev3658
ev3658 аватар
Offline
Зарегистрирован: 25.04.2019

Нечего экспериментировать.
Это логическая логика, тут либо да, либо нет.
Проблема тут скорей во времени переключении режима приема/передачи. Х.з. отдельное управление лучше, чем просто тупо включать по сигналам TX.
https://yandex.ru/images/touch/search?text=%D0%B2%D0%BA%D0%BB%D1%8E%D1%8...

https://yandex.ru/images/touch/search?text=%D0%B2%D0%BA%D0%BB%D1%8E%D1%8...

sadman41
Онлайн
Зарегистрирован: 19.10.2016

В этом и эксперимент - определить конфигурацию, при которой "да".

atomshick
Offline
Зарегистрирован: 23.12.2020

Так что делать? Неужели никто не запускал чистый modbus на этом датчике?

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Я читал с него регистры через USB-TTL.

atomshick
Offline
Зарегистрирован: 23.12.2020

sadman41 пишет:

Я читал с него регистры через USB-TTL.

 

это самое простое. надо же запустить чистый modbus .

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Не сваливайте в одну кучу модбас и rs485. Это протоколы разных уровней. Первый прекрасно живёт без второго на чистом UART. Никакого "чистого модбаса" не существует.

Вам нужно подключить модуль датчика по RS485. Как это сделать - написано выше несколько раз.

nik182
Offline
Зарегистрирован: 04.05.2015

А как "чистый" modbus связан с 485? Это ж протоколы совершенно разного уровня. Модбасу всё равно по каким проводам общаться. Ему надо только получить строку символов за определённое время. Прочитать регистры и есть пообщаться по чистому модбасу. В #22 на схеме даже нога управлением направления передачи 485 нарисована, что бы не было вопросов как.  

atomshick
Offline
Зарегистрирован: 23.12.2020

sadman41 пишет:
Не сваливайте в одну кучу модбас и rs485. Это протоколы разных уровней. Первый прекрасно живёт без второго на чистом UART. Никакого "чистого модбаса" не существует. Вам нужно подключить модуль датчика по RS485. Как это сделать - написано выше несколько раз.

на сколько мне известно, но RS485 это физический уровень связи, modbus это протокол обмена данных по этому каналу связи.

Данный датчик так же работает по протоколу modbus. есть адрес и регистры.

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

atomshick
Offline
Зарегистрирован: 23.12.2020

nik182 пишет:

А как "чистый" modbus связан с 485? Это ж протоколы совершенно разного уровня. Модбасу всё равно по каким проводам общаться. Ему надо только получить строку символов за определённое время. Прочитать регистры и есть пообщаться по чистому модбасу. В #22 на схеме даже нога управлением направления передачи 485 нарисована, что бы не было вопросов как.  

понятно, что надо сопротивление между 4-м и 6-м.

ну а дальше?

RS-485 transceiver data-direction logic

что выступает по схеме дальше. просто к контроллеру же не подключишь.

я просто спросил готовую наглядную схему реализации обмена данных по протоколу modbus на шине rs485.

 

nik182
Offline
Зарегистрирован: 04.05.2015

Нет "готовую наглядную схему реализации обмена данных по протоколу modbus на шине rs485". Подойдет любая схема обмена по 485. https://lh3.googleusercontent.com/proxy/0Yw89EUJXDB3XmWxu8us4FXEQDhey99Nlck478nxt6ew08k6K-j-wNMV8ANwvb2zpu4feKfHod2mewpmGjlo5ppIs2vmcSYI4mjBZ0LxAI-q73bTozeXsMEzo5qGhEoUpLGsHKHsdm6n_ChQ1upwnFhHSsJpkgtdi0RLJkQPV3lZJug

Если уж совсем не в мочь, то на этой картинке левую нану надо заменить на  6703 в соответствии с #22.

 
 
ev3658
ev3658 аватар
Offline
Зарегистрирован: 25.04.2019

С тегами беда (

atomshick
Offline
Зарегистрирован: 23.12.2020

nik182 пишет:

Нет "готовую наглядную схему реализации обмена данных по протоколу modbus на шине rs485". Подойдет любая схема обмена по 485. https://lh3.googleusercontent.com/proxy/0Yw89EUJXDB3XmWxu8us4FXEQDhey99Nlck478nxt6ew08k6K-j-wNMV8ANwvb2zpu4feKfHod2mewpmGjlo5ppIs2vmcSYI4mjBZ0LxAI-q73bTozeXsMEzo5qGhEoUpLGsHKHsdm6n_ChQ1upwnFhHSsJpkgtdi0RLJkQPV3lZJug

Если уж совсем не в мочь, то на этой картинке левую нану надо заменить на  6703 в соответствии с #22.

 
 

подключил так и ничего вообще.

в чем может быть проблема?

nik182
Offline
Зарегистрирован: 04.05.2015

Что значит ничего? Второй конец линии 485 куда подключен? На какой скорости общаетесь?

atomshick
Offline
Зарегистрирован: 23.12.2020

nik182 пишет:

Что значит ничего? Второй конец линии 485 куда подключен? На какой скорости общаетесь?

Преобразователь usb-rs485

Скорость 19200

Так же запускал модбас рту сканер.

на соответствующем com порту и скорости ничего не находит.

nik182
Offline
Зарегистрирован: 04.05.2015

А резистор 10к на землю от 6 ноги есть?

atomshick
Offline
Зарегистрирован: 23.12.2020

nik182 пишет:

А резистор 10к на землю от 6 ноги есть?

нету. я думал он в драйвере реализован.

сейчас поставлю и проверю.

atomshick
Offline
Зарегистрирован: 23.12.2020

nik182 пишет:

А резистор 10к на землю от 6 ноги есть?

 

кинул сопротивление 20к.

ничего не происходит. 

даже на порту ничего не находит

atomshick
Offline
Зарегистрирован: 23.12.2020

sadman41 пишет:

Мой хрустальный шар ясновидения отключился в 20:00 по Москве и куда вы собрались подключать сенсор - мне не видно.

Если к ПК, то через адаптер USB-TTL типа такого: 

RX/TX/GND/VCC на T6703 по первой схеме.

как вы подключили и снимали через такой преобразователь?

подключал, но ничего не определяется

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

в #23 всё же написано
1 пин модуля на RXD адаптера
2 пин модуля на TXD адаптера

19200 8E1

atomshick
Offline
Зарегистрирован: 23.12.2020