Обратил внимание, настройки параметров, такие как порядок порядок байт в словах и тип данных абсолютно никак не влияют на ответ с контроллера WB. Какие еще настройки могут влиять на организацию работы в режиме Slave?
Посмотрите, у меня:
[E2][04][E8][72][00][01][B2][22]
Как видно я запрашиваю один регистр.
Получаю ожидаемый ответ.
Я отправляю один раз запрос - получаю один раз ответ.
Это что-то под Windows, если смогу запустить - попробую.
Покажите пожалуйста crc который рассчитывается неверно. Ну и код которым его рассчитываете.
Еще раз: Сделайте один запрос. Посмотрите на полученный ответ. Еще лучше - если сделаете его прямо с контроллера.
Да, это Windows
Tx:8-17:55:12.998-0A 04 00 09 00 01 E0 B3
Rx:9-17:55:13.030-7D 9F ED FF FD
https://www.sekerak.eu/modbus/index.php
Не совсем понятно, зачем опрашивать контроллер с самого контроллера, если мне необходимо получить данные с ПК под управлением Windows
Нашел интересные ветки, в которых обсуждается схожие вопросы
и еще одна ветка
Т.к. с момента появления вопроса прошло уже очень много времени, уместно спросить, была ли включена данная опция в базовый функционал контроллера?
Это - некорректный ответ.
Еще раз проверьте соответствие настроенным параметрам связи, у меня:
{
"debug": false,
"modbus": {
"baud_rate": 9600,
"data_bits": 8,
"parity": "N",
"path": "/dev/ttyRS485-2",
"stop_bits": 1,
"type": "rtu"
},
Именно с такими я и подключаюсь. Судя по картинкам у вас выставлен бит четности.
Это нормально, я руками выставил.
Проблема решилась. Включил порт на опрос устройства, настроил чтение данных, потом отключил и еще раз проверил в режиме Slave, после этих манипуляций все заработало