Добрый день,
Есть контроллер солнечной станции СЭС с возможностью мониторинга и управления по 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
Вижу что открыт.
Ну и если пробую закрытый:
А что именно (какую посылку, набор байт) формируете?
В общем перед тем как пытаться настроить соединение в драйвере - стоит предварительно убедиться что устройство отвечает.
То есть без проверки - можно, конечно, но проще убедиться что устройство отвечает.
устройство в сети, из 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”````?
вопрос решен всем спасибо