Пытаюсь добавить стороннее устройство по modbus

Добрый день,
Есть контроллер солнечной станции СЭС с возможностью мониторинга и управления по modbus tcp и rtu. начал изучать документацию сделал, добавил данные в wb-mqtt-serial.conf и сделал sinexcel_pcs.json положил в templates
Сначала пытался подключить его через существующий в системе модуль wb-mio-e-2 как устройство rtu не видит его контроллер. Затем подключился по tcp через приложение modbus poll подключается к нему (но не понял как просмотреть топики), далее в wb сделал виртуальный порт tcp 192.168.10.232 id 1 (такой адрес установил на стороннем устройстве) и добавил в него устройство раннее созданное sinexcel_pcs.json
Что не так делаю?
sinexcel_pcs.json (6,5 КБ)

Добрый день.

Этот адрес пингуется с контроллера? Данные с него, с помощью modbus_client удается прочитать?

root@wirenboard-A4ZRPMJB:~# modbus_client_rpc -m tcp -t 3 -a 1 -r 53010 -c 1 192 .168.10.232:502 --debug
2025-07-03 08:37:34,065 [DEBUG] [eb][a3][00][00][00][06][01][03][cf][12][00][01]
2025-07-03 08:37:34,068 [DEBUG] Connecting to broker unix:///var/run/mosquitto/m osquitto.sock
2025-07-03 08:37:34,072 [DEBUG] RPC Client → {‘ip’: ‘192.168.10.232:502’, 'port ': 502, ‘response_size’: 11, ‘format’: ‘HEX’, ‘msg’: ‘eba3000000060103cf120001’, ‘total_timeout’: 1000} (1000 timeout ms)
2025-07-03 08:37:34,084 [DEBUG] Options: {‘debug’: True, ‘mode’: ‘tcp’, ‘slave_a ddr’: 1, ‘read_count’: 1, ‘start_addr’: 53010, ‘func_type’: 3, ‘timeout’: 1000, ‘address_decrement’: False, ‘baudrate’: 9600, ‘data_bits’: 8, ‘stop_bits’: 1, ‘p arity_port’: 502, ‘mqtt_broker’: ‘unix:///var/run/mosquitto/mosquitto.sock’, ‘se rialport_host’: ‘192.168.10.232:502’, ‘write_data’: }
ERROR occurred
2025-07-03 08:37:35,086 [DEBUG] Error message: Server error
2025-07-03 08:37:35,087 [DEBUG] Error code: -32000
2025-07-03 08:37:35,087 [DEBUG] Error data: Validation failed.
Error 1
context:
desc: Missing required property ‘baud_rate’.
Error 2
context:
desc: Missing required property ‘data_bits’.
Error 3
context:
desc: Missing required property ‘parity’.
Error 4
context:
desc: Missing required property ‘path’.
Error 5
context:
desc: Missing required property ‘stop_bits’.
Error 6
context:
desc: Failed to validate against child schema #0.
Error 7
context: [ip]
desc: Failed to match regex specified by ‘pattern’ constraint.
Error 8
context:
desc: Failed to validate against schema associated with property name ‘ip’.
Error 9
context:
desc: Failed to validate against child schema #1.
Error 10
context:
desc: Failed to validate against any child schemas allowed by oneOf constraint

Попробуйте обычный, классический modbus_client
Например

modbus_client --debug -m tcp 192.168.10.232 -t 3 -a 1 -r 53010 -c 1

C:>modbus_client_1.3.0.exe modbus_client --debug -m tcp 192.168.10.232 -t 3 -a 1 -r 53010 -c 1
0x00c0 Connecting to modbus_client:502
Connection failed: No error

То есть указанный адрес/порт не отвечает.
А пингуется ли?
Ну и попробуйте открыть соединение на этот порт, для проверки.

То есть указанный адрес/порт не отвечает.
А пингуется ли?
Ну и попробуйте открыть соединение на этот порт, для проверки.
Если бы я знал как…
Да стандартный ping на этот ip есть. И в утилите modbuspoll есть коннект, но дальше как считать данные незнаю. Скачал какой эмулятор modbus tcp/rdp modbus_client ее видит.
при подключении через wb-mio-e-2 тоже ничего, приложил скриншоты.
производитель в документации пишет про стоп бит 1, пробовал и 1 и 2 картина не меняется. оборудование из Китая у них не особо с документацией, выслали мне две бумаги по 2 листа, на сообщения пока не отвечают.

а и при подключении через преобразователь wb-mio-e-2 восклицательный знак на вкладке Устройства - Порты пропадает, но сигналы не идут

Для примера, проверяю порт 502 на хосте 10.0.0.71:
выполняю с компьютера

nc -zv 10.0.0.71 502

Screenshot_20250703_172507
Вижу что открыт.
Ну и если пробую закрытый:
Screenshot_20250703_172657

А что именно (какую посылку, набор байт) формируете?

В общем перед тем как пытаться настроить соединение в драйвере - стоит предварительно убедиться что устройство отвечает.
То есть без проверки - можно, конечно, но проще убедиться что устройство отвечает.

устройство в сети, из wb могу посылать запросы

root@wirenboard-A4ZRPMJB:~# modbus_client_rpc -m tcp -t 4 -a 1 -r 53222 -c 2 192.168.10.232 --debug
2025-07-05 09:03:46,349 [DEBUG] [29][b9][00][00][00][06][01][04][cf][e6][00][02]
2025-07-05 09:03:46,352 [DEBUG] Connecting to broker unix:///var/run/mosquitto/mosquitto.sock
2025-07-05 09:03:46,358 [DEBUG] RPC Client → {‘ip’: ‘192.168.10.232’, ‘port’: 502, ‘response_size’: 13, ‘format’: ‘HEX’, ‘msg’: ‘29b9000000060104cfe60002’, ‘total_timeout’: 1000} (1000 timeout ms)
2025-07-05 09:03:46,371 [DEBUG] RPC Client ← {‘response’: ‘29b90000000701040402260208’}
2025-07-05 09:03:47,374 [DEBUG] Response: 29b90000000701040402260208
2025-07-05 09:03:47,374 [DEBUG] <29><00><00><00><07><01><04><04><02><26><02><08>
SUCCESS: read 2 elements:
Data: 0x0226 0x0208

добавляю его в файл конфигурации
{
“address” : “192.168.10.232”,
“devices” :
[
{
“device_type” : “sinexcel_pcs”,
“enabled” : false,
“slave_id” : “1”
},
{
“channels” :
[

      ],
      "protocol" : "modbus",
      "slave_id" : "1"
    }
  ],
  "enabled" : true,
  "port" : 502,
  "port_type" : "tcp",
  "response_timeout_ms" : 1000
}

]
}

даже в какой то рандомный момент получил значения (на скриншоте)

Подскажите, дальше какие шаги?

устройство завел в wb
теперь подскажите как поменять значение
53901 2 Bytes W System start Int16 1:True, else:Invalid
{
“name”: “stop_pcs”,
“reg_type”: “holding”,
“address”: 53901,
“type”: “pushbutton”,
“group”: “control”
},
при нажатии ничего не происходит
так
“name”: “stop_pcs”,
“reg_type”: “holding”,
“address”: 53901,
“format”: “u16”,
“type”: “value”,
“min”: 0,
“max”: 1,
“group”: “control”,
“units”: “cmd” }
уходит в красый, тоже ничего не происходит

А что вы хотите сделать?

То есть в регистр ничего не записывается? И в логах ничего нет?

А что такое ```“units”: “cmd”````?

вопрос решен всем спасибо