Alxprv
July 24, 2021, 6:07pm
1
Добрый день,
Пытаюсь дать команду на запоминание регистров на реле WB-MRC6v2 подключенное через TCP/IP (модуль WB-MIO-У)
Ранее обычно использовал modbus-rtu с командой:
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a218 -t0x10 -r6 1
Вроде сделал по мануалу:
modbus_client --debug -mtcp -p20108 10.0.0.2 -a75 -t0x10 -r6 1
Возвращает ошибку (не видит IP адрес модуля):
modbus_client --debug -mtcp -p20108 10.0.0.150 -a75 -t0x10 -r6 1
Data to write: 0x000a 0x0001
Connecting to 0.0.0.0
Connection failed: Connection refused
Что указано не так?
Добрый день.
Modbus_client не умеет работать с протоколом Modbus over TCP, можно использовать для настроек параметров реле стандартную серкцию “setup” интерфейса wb-mqtt-serial.
Ну или пробросить порт так:
https://wirenboard.com/wiki/Доступ_к_порту_RS-485_контроллера_Wiren_Board_с_компьютера
Alxprv
July 26, 2021, 1:23pm
3
В Wiki (на мой взгяд) описано отвратительно, без понятных примеров да и структурировано плохо.
Вот так понятнее оказалось:
Здравствуйте! Способы указаны в соседней теме:
То есть, например, адрес MIO-E у вас 192.168.0.7, тогда в одном терминале на контроллере выполнете команду:
socat -d -d -d -x PTY,raw,ispeed=9600,ospeed=9600,parenb=0,cstopb=1,cs8,link=/dev/ttyRS485-5 tcp:192.168.1.7:20108&
В системе появляется виртуальный порт /dev/ttyRS485-5, с которым можно работать как с локальным, используя утилиту modbus_client и обычные адреса устройств. Для этого открываете второй терминал и настраиваете работу устройст…
Судя по количеству постоянных однотипных вопросов на данную тему, от этого костыля пора избавляться…
Да, в “генеральных планах” есть вообще включение “пользовательских” запросов в очередь wb-mqtt-serial.
Лучше через виртуальные последовательные порты - socat или аналогично. Рассосется около 100% геморроев, связанных с костыльной реализацией “rs485 over tcp”.