# На WB7 не корректно работает Modbus TCP

**URL:** <https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081>\
**Category:** Без категории\
**Created:** [August 1, 2022, 1:14am UTC](https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081 "2022-08-01T01:14:43Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![uropek](https://avatars.discourse-cdn.com/v2/letter/u/b3f665/32.png) [@uropek](https://support.wirenboard.com/u/uropek)\
**Post date:** [August 1, 2022, 1:14am UTC](https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081/1 "2022-08-01T01:14:43Z")

</div>

Подключаю через Modbus TCP венустановку, на WB6.7 все работало как часы, показания считывались, команды отправлялись. При переходе на WB7 - состояние считывает, но при попытке отправить команду любую - подвисает красным (при этом иногда команды доходят), выглядит как будто состояние не может обратное получить команды. Все вопросы связанные с некорректной работой ПУ можно откинуть, она с момента переустановки контроллера не изменялись настройки, да и подключиться по Modbus по тому же адресу и порту без проблем можно через Винду и отправлять и получать команды, как починить?

> **[monosnap.com](https://monosnap.com/file/mwA83smXv0taAb7lD51f66V0A95Rkf)**
>
> Monosnap screenshot tool for Mac and PC with own cloud storage. Take screenshots, record videos and upload files directly to the cloud. Just in one click.

Параметры подключения: локальный ip адрес и порт 502

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [August 1, 2022, 6:57am UTC](https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081/2 "2022-08-01T06:57:46Z")

</div>

Добрый день.  
Очень не помешает диагностический архив с контроллера ну и обязательно - кусок логов serial, с включенным Debug, желательно.

---

<div class="post-metadata">

**Author:** ![uropek](https://avatars.discourse-cdn.com/v2/letter/u/b3f665/32.png) [@uropek](https://support.wirenboard.com/u/uropek)\
**Post date:** [August 1, 2022, 9:56am UTC](https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081/4 "2022-08-01T09:56:38Z")

</div>

Подскажите как правильно сделать и при каких условиях и в какой момент?

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [August 1, 2022, 2:40pm UTC](https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081/5 "2022-08-01T14:40:18Z")

</div>

Хорошо - показать вывод из [Debug лога](https://wirenboard.com/wiki/Wb-mqtt-serial_driver#%D0%92%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BE%D1%82%D0%BB%D0%B0%D0%B4%D0%BA%D0%B8) wb-mqtt-serial  
Лучше, конечно, на период создания лога отключить **опрос** всех остальных устройств.

---

<div class="post-metadata">

**Author:** ![uropek](https://avatars.discourse-cdn.com/v2/letter/u/b3f665/32.png) [@uropek](https://support.wirenboard.com/u/uropek)\
**Post date:** [August 2, 2022, 11:47pm UTC](https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081/6 "2022-08-02T23:47:51Z")

</div>

![debug](https://support.wirenboard.com/uploads/default/original/2X/d/d0c58ee4121b4707462b16e94a68b14509c135a5.jpeg)

---

<div class="post-metadata">

**Author:** ![uropek](https://avatars.discourse-cdn.com/v2/letter/u/b3f665/32.png) [@uropek](https://support.wirenboard.com/u/uropek)\
**Post date:** [August 2, 2022, 11:54pm UTC](https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081/7 "2022-08-02T23:54:15Z")

</div>

[diag\_output\_A3S3EB4\_2022-08-02-23.50.00.zip](https://support.wirenboard.com/uploads/short-url/rXFxUYuSR0c60AQay6FDYw3trCM.zip) (77.7 КБ)

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [August 3, 2022, 7:19am UTC](https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081/8 "2022-08-03T07:19:13Z")

</div>

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

```auto
Aug 02 23:49:56 wirenboard-A3S3EB4 wb-mqtt-serial[26740]: DEBUG: [port] Sleep 0 us
Aug 02 23:49:56 wirenboard-A3S3EB4 wb-mqtt-serial[26740]: DEBUG: [port] Write: 08 0d 00 00 00 06 01 06 00 05 00 e6
Aug 02 23:49:56 wirenboard-A3S3EB4 wb-mqtt-serial[26740]: DEBUG: [port] ReadFrame: 00 00 00 00 00 00 00
Aug 02 23:49:56 wirenboard-A3S3EB4 wb-mqtt-serial[26740]: DEBUG: [port] read noise: 00 00 00 00 00
Aug 02 23:49:56 wirenboard-A3S3EB4 wb-mqtt-serial[26740]: WARNING: [register handler] failed to write: <modbus-tcp:1:holding: 5>: Serial protocol error: malformed response: Wrong MBAP length value: 0

```

Скорее всего оно, устройство не успевает отвечать с той же частотой которой контроллер способен его опрашивать. Добавьте времени между запросами, должно помочь.

---

<div class="post-metadata">

**Author:** ![uropek](https://avatars.discourse-cdn.com/v2/letter/u/b3f665/32.png) [@uropek](https://support.wirenboard.com/u/uropek)\
**Post date:** [August 3, 2022, 8:56am UTC](https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081/9 "2022-08-03T08:56:15Z")

</div>

Время добавляли вплоть до 10000 - не помогло (подскажите какой именно параметр править?). При этом через вин по умолчанию 30-40мс и работает без проблем.

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [August 3, 2022, 11:17am UTC](https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081/10 "2022-08-03T11:17:37Z")

</div>

> [@uropek](#):
>
> Время добавляли вплоть до 10000

Какой параметр меняли? “Читать не чаще (мс)”?

Выложите файл /etc/wb-mqtt-serial.conf пожалуйста.

---

<div class="post-metadata">

**Author:** ![uropek](https://avatars.discourse-cdn.com/v2/letter/u/b3f665/32.png) [@uropek](https://support.wirenboard.com/u/uropek)\
**Post date:** [August 3, 2022, 11:56am UTC](https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081/11 "2022-08-03T11:56:51Z")

</div>

Да верно, не чаще чем.

```auto
"devices" : 
      [
        {
          "device_type" : "breezart_1000_aqua_f",
          "read_rate_limit_ms" : 1000,
          "slave_id" : "1"
        }

```

[wb-mqtt-serial.conf](https://support.wirenboard.com/uploads/short-url/gIMpnavzUbbHW6BsASYgQ6gDojO.conf) (114.6 КБ)

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [August 3, 2022, 1:04pm UTC](https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081/12 "2022-08-03T13:04:51Z")

</div>

> [@uropek](#):
>
> ` "read_rate_limit_ms" : 1000,`

Опрашивать **не реже** установленного.  
И это для устройства.  
Я про общую настройку порта, для проверки, “read\_period\_ms”: 5000

А frame\_timeout\_ms в шаблоне устройства определен? Ну и, для проверки все же опросите с помощью modbus\_client.

---

<div class="post-metadata">

**Author:** ![uropek](https://avatars.discourse-cdn.com/v2/letter/u/b3f665/32.png) [@uropek](https://support.wirenboard.com/u/uropek)\
**Post date:** [August 3, 2022, 7:38pm UTC](https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081/13 "2022-08-03T19:38:21Z")

</div>

```auto
"devices" : 
      [
        {
          "device_type" : "breezart_1000_aqua_f",
          "enabled" : true,
          "read_rate_limit_ms" : 1000,
          "slave_id" : "1"
        }
      ],
      "enabled" : true,
      "port" : 502,
      "port_type" : "modbus tcp",
      "read_period_ms" : 5000
    }
  ]

```

Не помогло, тоже самое

---

<div class="post-metadata">

**Author:** ![uropek](https://avatars.discourse-cdn.com/v2/letter/u/b3f665/32.png) [@uropek](https://support.wirenboard.com/u/uropek)\
**Post date:** [August 3, 2022, 7:39pm UTC](https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081/14 "2022-08-03T19:39:48Z")

</div>

> [@BrainRoot](#):
>
> А frame\_timeout\_ms в шаблоне устройства определен?

```auto
"device_type": "breezart_1000_aqua_f",
    "device": {
        "name": "Breezart 1000 Aqua F",
        "id": "breezart_1000Aqua_F",
        "max_read_registers": 60,
        "channels": [

```

В шаблоне стоит только, но оно и раньше стояло также и на Wb 6.7 работало без проблем

---

<div class="post-metadata">

**Author:** ![uropek](https://avatars.discourse-cdn.com/v2/letter/u/b3f665/32.png) [@uropek](https://support.wirenboard.com/u/uropek)\
**Post date:** [August 3, 2022, 7:54pm UTC](https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081/15 "2022-08-03T19:54:40Z")

</div>

> [@BrainRoot](#):
>
> Ну и, для проверки все же опросите с помощью modbus\_client.

Какую команду?

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [August 4, 2022, 10:32am UTC](https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081/16 "2022-08-04T10:32:52Z")

</div>

Какой командой? Да, собственно 06 (чтение holding) тот же на который чаще всего ошибка, по адресу 262, чтение двух регистров.  
Не забудьте остановить wb-mqtt-serial предварительно.

---

<div class="post-metadata">

**Author:** ![uropek](https://avatars.discourse-cdn.com/v2/letter/u/b3f665/32.png) [@uropek](https://support.wirenboard.com/u/uropek)\
**Post date:** [August 4, 2022, 10:15pm UTC](https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081/17 "2022-08-04T22:15:46Z")

</div>

Я не настолько силен в этом, через modbus\_client если можно скинуть строчку, проверю.

Но пока не проверю, тк вчера решил перезагрузить can путем удаления из network/interfaces

```auto
allow-hotplug can0
iface can0 can static
  bitrate 20000

```

После сохранения WB7 в ауте, я так понимаю теперь надо через debug туда залазить и возвращать строчку, что спровоцировало такое поведение?

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [August 5, 2022, 7:48am UTC](https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081/18 "2022-08-05T07:48:06Z")

</div>

```auto
modbus_client --debug -mtcp 192.168.1.15 -a1 -r22 -t0x3

```

Здесь **192.168.1.15** - адрес устройства  
**1** - UnitId  
**22** - адрес регистра (свой/свои поставьте)

---

<div class="post-metadata">

**Author:** ![uropek](https://avatars.discourse-cdn.com/v2/letter/u/b3f665/32.png) [@uropek](https://support.wirenboard.com/u/uropek)\
**Post date:** [August 5, 2022, 5:24pm UTC](https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081/19 "2022-08-05T17:24:59Z")

</div>

```auto
~# modbus_client --debug -mtcp 192.168.1.15 -a1 -r2 -t0x3
0x00c0 Connecting to 0.0.0.0
[00][01][00][00][00][06][01][03][00][02][00][01]
Waiting for a confirmation...
<00><01><00><00><00><03><01><83><02>
ERROR Illegal data address
ERROR occured!

```

Адрес верно вписал? из шаблона взял.

```auto
{
    "device_type": "breezart_1000_aqua_f",
    "device": {
        "name": "Breezart 1000 Aqua F",
        "id": "breezart_1000Aqua_F",
        "max_read_registers": 60,
        "channels": [
            {
                "name": "Set fan performance",
        "id": "f_task",
                "type": "value",
                "reg_type": "holding",
                "address": "0",
                "format": "u16",
                "min": 15,
                "max": 100,
                "scale":0.01      
            },
            {
                "name": "Set temperature",
		"id": "t_task",
                "type": "temperature",
                "reg_type": "holding",
                "address": "1",
                "format": "s16",
                "scale":0.1
            },
            {
                "name": "Set humidity",
        "id": "h_task",
                "type": "rel_humidity",
                "reg_type": "holding",
                "address": "2",
                "format": "s16",
                "max": 100,
                "scale":0.1

```

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [August 5, 2022, 6:49pm UTC](https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081/20 "2022-08-05T18:49:50Z")

</div>

> [@uropek](#):
>
> Адрес верно вписал? из шаблона взял

Да. В шаблоне вижу адреса 0, 1, 2  
И такой ответ на все попытки?

---

<div class="post-metadata">

**Author:** ![uropek](https://avatars.discourse-cdn.com/v2/letter/u/b3f665/32.png) [@uropek](https://support.wirenboard.com/u/uropek)\
**Post date:** [August 5, 2022, 7:44pm UTC](https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081/21 "2022-08-05T19:44:47Z")

</div>

> [@uropek](#):
>
> ```auto
> ERROR Illegal data address
> ERROR occured!
> 
> ```

на все попытки одно и то же

```auto
0x00c0 Connecting to 0.0.0.0
[00][01][00][00][00][06][01][03][00][02][00][01]
Waiting for a confirmation...
<00><01><00><00><00><03><01><83><02>
ERROR Illegal data address
ERROR occured!

```

[Next page](https://support.wirenboard.com/t/na-wb7-ne-korrektno-rabotaet-modbus-tcp/12081.md?page=2)
