Настройка WB как Slave в сети RS-458 (modbus)

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, после этих манипуляций все заработало

1 лайк