Автор: Alex-smu-smu
Дата: 08.03.19 23:33
И так.
Для того, чтобы написать запрос в устройство, для начала нужна терминальная программа.
Потом нужен преобразователь интерфейса с RS232 на RS485
Нужна программа qmodmaster. Она бесплатна и её можно найти в интернете.
Далее запускаем её...
Выбираем в настройках Options пункт modbus RTU. Выбираем номер com-порта. Скорость и жмем ок.
Далее выбираем ModbusMode - RTU
Slave адрес устройства. Если вы купили устройство только что и оно у вас новое, то по умолчанию оно идет под номером 1.
Время сканирования стоит 1 секунда.
Далее выбирается функция. Согласно протоколу их 8. Ссылка на них ниже...
(https://ipc2u.ru/articles/prostye-resheniya/modbus-rtu/ )
нам нужна функция чтения входа-регистра. У каждого микроконтроллера есть входы и выходы.
Согласно описанию к устройству дана таблица регистров с назначением каждого.
В нашем устройстве указано, что по адресу 0001 опрашивается температура, а по адресу 0002 - влажность.
В поле Start addres выбирается адрес начала, с которого будет начинаться опрос. Ставим 1.
Следующее поле Number of coils, в котором нужно указать количество регистров. Это количество придет в виде значений кода равным 32бит.
Ведем опрос...
По адресу, по функции, по регистру, согласно длины, контроллер... проверь ошибку CRC
01 04 00 01 00 02 20 0b
вводим
Ошибка CRC верна если
получаем возврат...
По адресу, по функции, согласно длины, возвращен результат с регистра: 1, 2..., проверяем ош.CRC
01 04 04 01 31 и 02 22 2а се
данные температуры и влажности могут быть иными.
При формирование запроса нужно знать, какой результат хочешь получить. При каждом запросе требуется считать CRC.
Калькуляторы CRC доступны в интернете.
|
|