Настройка WB как Slave в сети RS-458 (modbus)

Обратил внимание, настройки параметров, такие как порядок порядок байт в словах и тип данных абсолютно никак не влияют на ответ с контроллера 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, после этих манипуляций все заработало

1 лайк