Добрый день, подключаюсь к станции Сокол М через преобразователь RS485 - Ethernet (WB-MIO) по Модбасу, стандартный шаблон работает и всё считывается хорошо. Но мне хочется узнать как при таком подключении считать регистры напрямую через Modbus Client.
Адрес преобразователя: 192.168.1.170
Порт преобразователя: 33
Адрес устройства (станции): 1
Ввожу команду:
modbus_client --debug -mtcp -a1 -t0x03 -r1 -c12 -p33 192.168.1.170
в ответ ошибка
Подскажите пожалуйста в чем ошибка моей команды
Добрый день.
Для примера:
modbus_client --debug -mtcp 10.0.0.71 -p 502 -a11 -t 0x03 -r 0x80
Connecting to 10.0.0.71:502
[00][01][00][00][00][06][0B][03][00][80][00][01]
Waiting for a confirmation...
<00><01><00><00><00><05><0B><03><02><00><0B>
SUCCESS: read 1 of elements:
Data: 0x000b
А какая ошибка возвращается?
modbus_client --debug -mtcp 192.168.1.170 -p33 -a1 -t0x03 -r1 -c12
Connecting to 192.168.1.170:33
[00][01][00][00][00][06][01][03][00][01][00][0C]
Waiting for a confirmation...
ERROR Connection timed out: select
ERROR occured!
При этом

wirenboard всё прекрасно считывает
можно ли как то посмотреть какой запрос отправляет wirenboard
У вас настроен шлюз в режиме Modbus over tcp.
Для того чтобы работать через данный режим надо предварительно отобразить сокет в “виртуальный” порт, например так: Утилита socat — Wiren Board
Ну и - если у вас за шлюзом используются только Modbus устройства то использование этого режима не имеет смысла… Лучше - перенастроить на Modbus TCP и использовать стандартный порт 502.

В таком режиме данные с устройства не отображаются
Перенастроен ли сам шлюз в соответствии с изменениями в драйвере?
Я правильно понимаю что это настраивается где то здесь
Да, совершенно верно. Рабочий режим следует выбрать “Modbbus TCP”.
Благодарю, запросы через modbus_client отрабатывают, единственное настройки шлюза WB MIO (скрин выше) отличаются от настроек шлюза для Сокол М (скрин ниже) и чтобы перейти в режим Modbus TCP нужно установить эти галочки (определил методом тыка) и может кому-то пригодится
1 лайк