PDA

Просмотр полной версии : СМИ2 и ТХ01 нет связи



Ollema
13.07.2020, 23:44
СМИ2 является мастером, RTU. На запрос чтения регистра 41 всегда приходит ответ 0, независимо от показаний ТХ01.
С компьютера этим запросом нормально передаются данные на СМИ2
Компьютер тоже нормально читает 41 регистр ТХ01 - принимает показания как на дисплее.
На компе одинаковый интерфейс передачи и приема RTU, 9600.
Логический пробник показал идентичность запросов с компа с СМИ2.
Почему ТХ01 выдает нули?

Сергей0308
13.07.2020, 23:59
СМИ2 является мастером, RTU. На запрос чтения регистра 41 всегда приходит ответ 0, независимо от показаний ТХ01.
С компьютера этим запросом нормально передаются данные на СМИ2
Компьютер тоже нормально читает 41 регистр ТХ01 - принимает показания как на дисплее.
На компе одинаковый интерфейс передачи и приема RTU, 9600.
Логический пробник показал идентичность запросов с компа с СМИ2.
Почему ТХ01 выдает нули?

Мне кажется, параметры связи гораздо шире, не ограничиваются только скоростью и для идентификации устройств связи у каждого подчинённого устройства имеется свой уникальный адрес!
А при передаче значений с плавающей запятой(флоат) порядок чередования байт вообще не стандартизирован, каждый делает как хочет!

Ollema
14.07.2020, 01:18
Адрес 16. Передается 4 байтовое число. Попробовать читать другие регистры? Но при точно таком же запросе с компа (проверил логическим анализотором) данные выдаются не нулевые!

Сергей0308
14.07.2020, 01:38
Адрес 16. Передается 4 байтовое число. Попробовать читать другие регистры? Но при точно таком же запросе с компа (проверил логическим анализотором) данные выдаются не нулевые!

Для начала, настраиваете связь(убеждаетесь что связь нормально фунциклирует), можно прочитать какой либо регистр с известным значением!
У СМИ2 всего 4 разряда, можно читать младший регистр для этого делаете(настраиваете) так, чтобы передаваемое значение не превышало 4-х десятичных разрядов, всё!
Какой диапазон значений Вы планировали передавать и с какой точностью(сколько знаков после запятой)?

Ollema
14.07.2020, 05:36
Такое ощущение, что с глухим разговариваешь.

Ollema
14.07.2020, 09:29
Итак, проблема решена. Во-первых, неправильно написал - я читал не 41, а 42 регистр (в десятичной системе). Для целого 2 байтного значения в моем случае вполне достаточно.
Обмен удалось нормальзовать, подобрав терминальный резистор. Как говорится: все гениальное - просто :)