Опрашиваем датчик по Modbus RTU через RS485
Схема опроса датчика Modbus RTU через Сборщик-компакт

☝ Эта инструкция подходит для любого Сборщика
Присоединим датчик к Сборщику
- На сборщике контакты называются "A" и "B"

- На датчике надо найти соответствующую «пару». Она может быть обозначена также «A/B», но часто также обозначают D+/D-
Например датчик ICPDAS DL-303

- Соединяем контакты
Контакт A - контакт D+
Контакт B - контакт D-
При длинных линиях и различных источниках питания для сборщика и датчика, рекомендуется также соединять контакты GND для согласования уровней.
В нашем примере С борщик и датчик имеют зажимные колодки, поэтому нам не нужна даже отвертка (в других датчика часто бывает зажим под винт)

Теперь "на столе" это выглядит так

Параметры датчика для опроса по ModBus RTU
В датчике DL-303 эти параметры можно менять прямо на экране датчика, но это скорее исключение из правил.

- Узнаем адрес датчика (1)
Так как возможен последовательный опрос нескольких датчиков, то важно знать адрес устройства (это цифра от 1 до 255). Все датчики по умолчанию имеют адрес "1", но у всех его можно поменять (и могли поменять до Вас)
- Узнаем параметры порта RS485 (2)
Для чтения датчика необходимо знать параметры подключения к RS485-му порту. Эта информация точно есть в документации к датчику. Скорость шины RS485 по умолчанию часто 9600, но может быть 115200. Параметры порта как правило 8N1 (8бит, без проверки четности, 1 стоп бит).
⚠️ При подключении нескольких устройств, важно чтобы на всех устройствах были одинаковые параметры RS485.
- Узнаем регистры для опроса
Здесь нам точно понадобиться документация, в которой должны быть указаны номера ModBus регистров для опроса и их тип. Если тип регистров одинаковый, то можно одной командой читать "пачку" регистров.
В нашем датчике для чтения доступны регистры
- 1 - CO (ppm)
- 2 - CO2 (ppm)
- 3 - H (влажность в %)
- 4 - Т (температура в С)
- 5 - Т (температура в F)
Читаем датчик
Когда мы знаем все необходимые параметры, можно читать датчик. Наш датчик поддерживает Modbus, будем опрашивать по протоколу Modbus RTU.
- Заходим на Сборщик по ssh (надо знать его IP)

- Запускаем утилиту modpoll (читаем сразу 5 регистров по адресу 1)
modpoll -b 9600 -p none -d 8 -m rtu -a 1 -r 1 -c 5 -t 3 /dev/ttyS3
Как установить утилиту modpoll