Купил реле. Как им управлять через RS485 Modbus?

Обсуждаем Arduino, Raspberry Pi и другие электронные компоненты и проекты DIY
Тима
Сообщения: 131
Зарегистрирован: 16 ноя 2012, 21:03

Купил реле. Как им управлять через RS485 Modbus?

Сообщение Тима »

Добрый вечер.
Купил реле, управляемое по RS485.
https://www.cicig.co/product/yid1aujvx#
Вот такое.
1-Modbus-Rtu-1-12.jpg
1-Modbus-Rtu-1-12.jpg (63.83 КБ) 4825 просмотров
вот это в описании
H8d6d5cef9d95422d9a059350c44da0b5I.jpg
Как можно им управлять по модбас? Что-то не могу разобраться с кодом.
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 904
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

Re: Купил реле. Как им управлять через RS485 Modbus?

Сообщение Mr.Kubikus »

Отделил тему для начала
С уважением, Григорий
GitHub FB ВК TW
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 904
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

Re: Купил реле. Как им управлять через RS485 Modbus?

Сообщение Mr.Kubikus »

В таблице присутствуют следующие команды MODBUS RTU:
1 - Read Coils
5 - Write Single Coil
3 - Read Multiple Holding Registers
16 - Write Multiple Holding Registers

Соответственно надо использовать их для работы с устройством.
С уважением, Григорий
GitHub FB ВК TW
Тима
Сообщения: 131
Зарегистрирован: 16 ноя 2012, 21:03

Re: Купил реле. Как им управлять через RS485 Modbus?

Сообщение Тима »

В первой табличке к описанию модуля, в первых трех строках указано задание адреса устройства, на сколько я понял. В четвертой строке запрос на считывание адреса устройства. Интересно, это значит в сети можно разместить только три устройства?
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 904
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

Re: Купил реле. Как им управлять через RS485 Modbus?

Сообщение Mr.Kubikus »

Для изменения адреса там используется команда 16 - Write Multiple Holding Registers:
Команда состоит из адреса элемента, количества изменяемых элементов, количества передаваемых байт устанавливаемых значений и самих устанавливаемых значений. Данные упаковываются так же, как в командах чтения данных.

Ответ состоит из начального адреса и количества изменённых элементов.
Используйте в качестве передаваемого значения нужный вам адрес в диапазоне от 1 до 247. Адрес 0 используется для широковещательной передачи, его распознаёт каждое устройство,
С уважением, Григорий
GitHub FB ВК TW
Тима
Сообщения: 131
Зарегистрирован: 16 ноя 2012, 21:03

Re: Купил реле. Как им управлять через RS485 Modbus?

Сообщение Тима »

вот запрос на установку адреса 01. 00 10 00 00 00 01 02 00 01 6A 00
красный это адрес устройства. а что содержится в последних регистрах? Они разные для разных адресов.
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 904
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

Re: Купил реле. Как им управлять через RS485 Modbus?

Сообщение Mr.Kubikus »

Два последних байта - контрольная сумма CRC16 для проверки отсутствия ошибок в кадре. Смотрите алгоритм в описании протокола MODBUS RTU - https://modbus.org/docs/Modbus_Applicat ... V1_1b3.pdf.
Еще можно воспользоваться онлайн сервисом - https://crccalc.com/
С уважением, Григорий
GitHub FB ВК TW
Тима
Сообщения: 131
Зарегистрирован: 16 ноя 2012, 21:03

Re: Купил реле. Как им управлять через RS485 Modbus?

Сообщение Тима »

Спасибо. Буду изучать.
Тима
Сообщения: 131
Зарегистрирован: 16 ноя 2012, 21:03

Re: Купил реле. Как им управлять через RS485 Modbus?

Сообщение Тима »

Итак, изучил описание расчета контрольной суммы из разных источников. В общих чертах понял. Попробовал использовать калькулятор. Вроде освоил.
Теперь опишу мои "хотелки"...
Имеем: ардуино мега, экран nextion, преобразователь ttl<=>rs485 и несколько modbus-реле. Это будет контроллер управления поливом в саду. Реле будут стоять в поле и открывать/закрывать клапана полива.
Как это можно реализовать?
Давно не писал программы для дуины, знания немного "заржавели". :oops:
В последний раз писал программу на Flprog...

P.S. Еще хорошо было бы иметь возможность настраивать адреса самих реле с этого контроллера, задавая его адрес через nextion.
Тима
Сообщения: 131
Зарегистрирован: 16 ноя 2012, 21:03

Re: Купил реле. Как им управлять через RS485 Modbus?

Сообщение Тима »

Mr.Kubikus писал(а):Два последних байта - контрольная сумма CRC16 для проверки отсутствия ошибок в кадре. Смотрите описание алгоритма в описании протокола MODBUS RTU - https://modbus.org/docs/Modbus_Applicat ... V1_1b3.pdf.
Еще можно воспользоваться онлайн сервисом - https://crccalc.com/
Читаю про эти реле на форумах, оказывается у них в расчете контрольной суммы младший и старший байты попутаны местами...
Ответить