59506 = 0x7200
Особо ситуацию не поправило,
Тем не менее.
Как сконфигурирован регистр (кусок из конфига)?
Я про конфиг wb-mqtt-mbgate…
Он стандартный, без каких-либо изменений. Контроллер только из коробки.
По умолчанию - он выключен.
Поэтому - покажите пожалуйста его текущее состояние.
{
"debug": true,
"modbus": {
"baud_rate": 9600,
"data_bits": 8,
"parity": "N",
"path": "/dev/ttyRS485-1",
"stop_bits": 1,
"type": "rtu"
},
"mqtt": {
"host": "localhost",
"port": 10
},
"registers": {
"coils": [
{
"address": 1575,
"enabled": false,
"meta_type": "switch",
"topic": "buzzer/enabled",
"unitId": 46
},
{
"address": 32081,
"enabled": false,
"meta_type": "pushbutton",
"topic": "system/Reboot",
"unitId": 222
},
{
"address": 58907,
"enabled": false,
"meta_type": "switch",
"topic": "wbrules/Rule debugging",
"unitId": 223
},
{
"address": 7035,
"enabled": false,
"meta_type": "switch",
"topic": "wb-gpio/5V_OUT",
"unitId": 66
},
{
"address": 8928,
"enabled": false,
"meta_type": "switch",
"topic": "wb-gpio/A1_OUT",
"unitId": 198
},
{
"address": 26729,
"enabled": false,
"meta_type": "switch",
"topic": "wb-gpio/A2_OUT",
"unitId": 67
},
{
"address": 31621,
"enabled": false,
"meta_type": "switch",
"topic": "wb-gpio/A3_OUT",
"unitId": 143
},
{
"address": 15736,
"enabled": false,
"meta_type": "switch",
"topic": "wb-gpio/A4_OUT",
"unitId": 65
},
{
"address": 55764,
"enabled": false,
"meta_type": "switch",
"topic": "wb-gpio/V_OUT",
"unitId": 190
}
],
"discretes": [
{
"address": 23288,
"enabled": false,
"meta_type": "switch",
"topic": "battery/Charging",
"unitId": 186
},
{
"address": 56896,
"enabled": false,
"meta_type": "switch",
"topic": "network/Ethernet 2 IP Online Status",
"unitId": 229
},
{
"address": 1662,
"enabled": false,
"meta_type": "switch",
"topic": "network/Ethernet IP Online Status",
"unitId": 3
},
{
"address": 1048,
"enabled": false,
"meta_type": "switch",
"topic": "network/GPRS IP Online Status",
"unitId": 236
},
{
"address": 10195,
"enabled": false,
"meta_type": "switch",
"topic": "network/Wi-Fi 2 IP Online Status",
"unitId": 178
},
{
"address": 17314,
"enabled": false,
"meta_type": "switch",
"topic": "network/Wi-Fi IP Online Status",
"unitId": 112
},
{
"address": 23133,
"enabled": false,
"meta_type": "switch",
"topic": "power_status/working on battery",
"unitId": 152
},
{
"address": 35353,
"enabled": false,
"meta_type": "switch",
"topic": "wb-gpio/A1_IN",
"unitId": 228
},
{
"address": 56069,
"enabled": false,
"meta_type": "switch",
"topic": "wb-gpio/A2_IN",
"unitId": 112
},
{
"address": 24848,
"enabled": false,
"meta_type": "switch",
"topic": "wb-gpio/A3_IN",
"unitId": 219
},
{
"address": 941,
"enabled": false,
"meta_type": "switch",
"topic": "wb-gpio/A4_IN",
"unitId": 3
}
],
"holdings": [
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 16516,
"enabled": false,
"meta_type": "range",
"topic": "buzzer/frequency",
"unitId": 48
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 12260,
"enabled": false,
"meta_type": "range",
"topic": "buzzer/volume",
"unitId": 98
}
],
"inputs": [
{
"byteswap": false,
"format": "varchar",
"max": 0,
"scale": 1,
"size": -1,
"wordswap": false,
"address": 32880,
"enabled": false,
"meta_type": "text",
"topic": "alarms/log",
"unitId": 158
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 23003,
"enabled": false,
"meta_type": "value",
"topic": "battery/Current",
"unitId": 212
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 24256,
"enabled": false,
"meta_type": "value",
"topic": "battery/Percentage",
"unitId": 25
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 60178,
"enabled": false,
"meta_type": "voltage",
"topic": "battery/Voltage",
"unitId": 199
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 59506,
"enabled": true,
"meta_type": "temperature",
"topic": "hwmon/Board Temperature",
"unitId": 226
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 51947,
"enabled": true,
"meta_type": "temperature",
"topic": "hwmon/CPU Temperature",
"unitId": 224
},
{
"byteswap": false,
"format": "varchar",
"max": 0,
"scale": 1,
"size": -1,
"wordswap": false,
"address": 57990,
"enabled": false,
"meta_type": "text",
"topic": "knx/data",
"unitId": 180
},
{
"byteswap": false,
"format": "varchar",
"max": 0,
"scale": 1,
"size": -1,
"wordswap": false,
"address": 18194,
"enabled": false,
"meta_type": "text",
"topic": "network/Active Connections",
"unitId": 212
},
{
"byteswap": false,
"format": "varchar",
"max": 0,
"scale": 1,
"size": -1,
"wordswap": false,
"address": 24158,
"enabled": false,
"meta_type": "text",
"topic": "network/Default Interface",
"unitId": 150
},
{
"byteswap": false,
"format": "varchar",
"max": 0,
"scale": 1,
"size": -1,
"wordswap": false,
"address": 26798,
"enabled": false,
"meta_type": "text",
"topic": "network/Ethernet 2 IP",
"unitId": 103
},
{
"byteswap": false,
"format": "varchar",
"max": 0,
"scale": 1,
"size": -1,
"wordswap": false,
"address": 56918,
"enabled": false,
"meta_type": "text",
"topic": "network/Ethernet IP",
"unitId": 236
},
{
"byteswap": false,
"format": "varchar",
"max": 0,
"scale": 1,
"size": -1,
"wordswap": false,
"address": 52186,
"enabled": false,
"meta_type": "text",
"topic": "network/GPRS IP",
"unitId": 220
},
{
"byteswap": false,
"format": "varchar",
"max": 0,
"scale": 1,
"size": -1,
"wordswap": false,
"address": 31100,
"enabled": false,
"meta_type": "text",
"topic": "network/Internet Connection",
"unitId": 108
},
{
"byteswap": false,
"format": "varchar",
"max": 0,
"scale": 1,
"size": -1,
"wordswap": false,
"address": 48792,
"enabled": false,
"meta_type": "text",
"topic": "network/Wi-Fi 2 IP",
"unitId": 78
},
{
"byteswap": false,
"format": "varchar",
"max": 0,
"scale": 1,
"size": -1,
"wordswap": false,
"address": 3097,
"enabled": false,
"meta_type": "text",
"topic": "network/Wi-Fi IP",
"unitId": 144
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 52600,
"enabled": false,
"meta_type": "voltage",
"topic": "power_status/Vin",
"unitId": 112
},
{
"byteswap": false,
"format": "varchar",
"max": 0,
"scale": 1,
"size": -1,
"wordswap": false,
"address": 51892,
"enabled": false,
"meta_type": "text",
"topic": "system/Batch No",
"unitId": 83
},
{
"byteswap": false,
"format": "varchar",
"max": 0,
"scale": 1,
"size": -1,
"wordswap": false,
"address": 21041,
"enabled": true,
"meta_type": "text",
"topic": "system/Current uptime",
"unitId": 65
},
{
"byteswap": false,
"format": "varchar",
"max": 0,
"scale": 1,
"size": -1,
"wordswap": false,
"address": 13508,
"enabled": false,
"meta_type": "text",
"topic": "system/DTS Version",
"unitId": 14
},
{
"byteswap": false,
"format": "varchar",
"max": 0,
"scale": 1,
"size": -1,
"wordswap": false,
"address": 923,
"enabled": false,
"meta_type": "text",
"topic": "system/HW Revision",
"unitId": 80
},
{
"byteswap": false,
"format": "varchar",
"max": 0,
"scale": 1,
"size": -1,
"wordswap": false,
"address": 11644,
"enabled": false,
"meta_type": "text",
"topic": "system/Manufacturing Date",
"unitId": 117
},
{
"byteswap": false,
"format": "varchar",
"max": 0,
"scale": 1,
"size": -1,
"wordswap": false,
"address": 34721,
"enabled": false,
"meta_type": "text",
"topic": "system/Release name",
"unitId": 19
},
{
"byteswap": false,
"format": "varchar",
"max": 0,
"scale": 1,
"size": -1,
"wordswap": false,
"address": 5177,
"enabled": false,
"meta_type": "text",
"topic": "system/Release suite",
"unitId": 93
},
{
"byteswap": false,
"format": "varchar",
"max": 0,
"scale": 1,
"size": -1,
"wordswap": false,
"address": 1513,
"enabled": false,
"meta_type": "text",
"topic": "system/Short SN",
"unitId": 183
},
{
"byteswap": false,
"format": "varchar",
"max": 0,
"scale": 1,
"size": -1,
"wordswap": false,
"address": 14102,
"enabled": false,
"meta_type": "text",
"topic": "system/Temperature Grade",
"unitId": 92
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 52774,
"enabled": false,
"meta_type": "value",
"topic": "metrics/data_total_space",
"unitId": 152
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 41423,
"enabled": false,
"meta_type": "value",
"topic": "metrics/data_used_space",
"unitId": 165
},
{
"byteswap": false,
"format": "varchar",
"max": 0,
"scale": 1,
"size": -1,
"wordswap": false,
"address": 29993,
"enabled": false,
"meta_type": "text",
"topic": "metrics/dev_root_linked_on",
"unitId": 171
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 11327,
"enabled": false,
"meta_type": "value",
"topic": "metrics/dev_root_total_space",
"unitId": 188
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 4050,
"enabled": false,
"meta_type": "value",
"topic": "metrics/dev_root_used_space",
"unitId": 51
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 48652,
"enabled": false,
"meta_type": "value",
"topic": "metrics/load_average_15min",
"unitId": 59
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 41768,
"enabled": false,
"meta_type": "value",
"topic": "metrics/load_average_1min",
"unitId": 246
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 42088,
"enabled": false,
"meta_type": "value",
"topic": "metrics/load_average_5min",
"unitId": 180
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 61148,
"enabled": false,
"meta_type": "value",
"topic": "metrics/ram_available",
"unitId": 19
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 58399,
"enabled": false,
"meta_type": "value",
"topic": "metrics/ram_total",
"unitId": 235
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 18849,
"enabled": false,
"meta_type": "value",
"topic": "metrics/ram_used",
"unitId": 76
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 54389,
"enabled": false,
"meta_type": "value",
"topic": "metrics/swap_total",
"unitId": 246
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 4174,
"enabled": false,
"meta_type": "value",
"topic": "metrics/swap_used",
"unitId": 3
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 51047,
"enabled": true,
"meta_type": "voltage",
"topic": "wb-adc/A1",
"unitId": 196
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 54678,
"enabled": true,
"meta_type": "voltage",
"topic": "wb-adc/A2",
"unitId": 178
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 16146,
"enabled": true,
"meta_type": "voltage",
"topic": "wb-adc/A3",
"unitId": 143
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 60710,
"enabled": true,
"meta_type": "voltage",
"topic": "wb-adc/A4",
"unitId": 9
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 37799,
"enabled": true,
"meta_type": "voltage",
"topic": "wb-adc/V3_3",
"unitId": 34
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 9707,
"enabled": true,
"meta_type": "voltage",
"topic": "wb-adc/V5_0",
"unitId": 145
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 48003,
"enabled": false,
"meta_type": "voltage",
"topic": "wb-adc/Vbus_debug",
"unitId": 37
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 62163,
"enabled": false,
"meta_type": "voltage",
"topic": "wb-adc/Vbus_network",
"unitId": 139
},
{
"byteswap": false,
"format": "signed",
"max": 0,
"scale": 1,
"size": 2,
"wordswap": false,
"address": 19297,
"enabled": false,
"meta_type": "voltage",
"topic": "wb-adc/Vin",
"unitId": 65
}
],
"remap_values": false
}
}
Проверяю.
Включил в секцию input конфига следующее:
{
"topic": "hwmon/Board Temperature",
"address": 59506,
"unitId": 226,
"meta_type": "temperature",
"enabled": true,
"format": "signed",
"size": 2,
"max": 0,
"scale": 1,
"byteswap": false,
"wordswap": false
},
Запрашиваю - получаю ожидаемое
modbus_client --debug -mtcp -a226 -t0x4 -r59506 -p502 10.0.0.79 -c 1
Connecting to 10.0.0.79:502
[00][01][00][00][00][06][E2][04][E8][72][00][01]
Waiting for a confirmation...
<00><01><00><00><00><05><E2><04><02><00><25>
SUCCESS: read 1 of elements:
Data: 0x0025
Обратите внимание, запрашиваю именно 59506. И именно один
А через порт RS не тестировали? Я пытаюсь опросить именно через COM порт (/dev/ttyRS485-1)
Совершенно без разницы:
modbus_client --debug -mrtu -pnone -s2 -b9600 /dev/ttyRS485-1 -a226 -t0x4 -r59506 -c 1
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[E2][04][E8][72][00][01][B2][22]
Waiting for a confirmation...
<E2><04><02><00><26><3C><FD>
SUCCESS: read 1 of elements:
Data: 0x0026
Абсолютно непонятна логика работы. Почему по одним и тем-же запросам у нас разные ответы? Так быть не должно. Попробуйте выполнить запрос с помощью ModBus Pull или ModScan
Еще раз, прошу обратить внимание на CRC ответа, он считается с ошибкой, или это еще одна “особенность” помимо адресации…?
Обратил внимание, настройки параметров, такие как порядок порядок байт в словах и тип данных абсолютно никак не влияют на ответ с контроллера 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, после этих манипуляций все заработало