# Бага! modbus/tcp modbus\_client

**URL:** <https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808>\
**Category:** Особые запросы\
**Tags:** bug, feature-request\
**Created:** [September 24, 2020, 5:14pm UTC](https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808 "2020-09-24T17:14:45Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![cu6apum](https://avatars.discourse-cdn.com/v2/letter/c/74df32/32.png) [@cu6apum](https://support.wirenboard.com/u/cu6apum)\
**Post date:** [September 24, 2020, 5:14pm UTC](https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808/1 "2020-09-24T17:14:45Z")

</div>

Привет.  
Пытаюсь осознать, как замостить сторонний контроллер (который отдает мне параметры на WB6 по modbus/tcp) на mqtt. Обратный мост вроде бы есть, аж конфигурится в вебморде, но прямого почему-то пока не нашел…

Пробую modbus\_client. Натолкнулся на глюк: независимо от адреса сервера (если это не localhost с запущенным wb\_mqtt\_mbgate), modbus\_client не может с ним соединиться, выдавая:

> 0x000a Connecting to **0.0.0.0**  
> Connection failed: Connection refused

хотя я указываю реальный айпишник сервера, порт итд. Фильтрации пакетов нет, устройства в одной локалке, icmp идет.  
Похоже, клиент баговит… не парсит адрес сервера. Поправите?

Спасибо.

---

<div class="post-metadata">

**Author:** ![cu6apum](https://avatars.discourse-cdn.com/v2/letter/c/74df32/32.png) [@cu6apum](https://support.wirenboard.com/u/cu6apum)\
**Post date:** [September 24, 2020, 5:30pm UTC](https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808/2 "2020-09-24T17:30:44Z")

</div>

Апд.  
Если прописать в /etc/hosts строчку myhost 192.168.0.111 и сказать

> modbus\_client --debug -mtcp -t0x03 -r0 -p502 myhost

эта редиска отвечает

> Connecting to myhost  
> Connection failed: Network is unreachable

Точно бага. Причем как бы не в libmodbus, ну оооооочень старый бранч у вас используется…

---

<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:** [September 24, 2020, 7:00pm UTC](https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808/3 "2020-09-24T19:00:14Z")

</div>

> [@cu6apum](#):
>
> 0x000a Connecting to **0.0.0.0**  
> Connection failed: Connection refused  
> хотя я указываю р

Попробую пересобрать со свежим libmodbus. Ну и дебаг выведу - где там параметры парсятся.

---

<div class="post-metadata">

**Author:** ![cu6apum](https://avatars.discourse-cdn.com/v2/letter/c/74df32/32.png) [@cu6apum](https://support.wirenboard.com/u/cu6apum)\
**Post date:** [September 24, 2020, 7:23pm UTC](https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808/4 "2020-09-24T19:23:48Z")

</div>

Спасибо!  
Я уже забрался в конфиг wb-mqtt-serial с призрачной надеждой найти там tcp - и, к удивлению, нашел!!! - но тоже не пашет, хотя и несколько иначе. Встать tcpdump’ом пока некуда, но есть сильнейшее подозрение, что вместо шапки MBAP шлется шапка RTU…  
Тут, если что, поправить совсем ерунда по времени.

> # wb-mqtt-serial -c /etc/wb-mqtt-serial.conf -d
> 
> address: 2  
> address: 3  
> Warning: no devices defined for port \</dev/ttyRS485-1 9600 8 N2 timeout 500\> . Skipping.  
> Warning: no devices defined for port \</dev/ttyRS485-2 9600 8 N2 timeout 500\> . Skipping.  
> Setting up devices at \<192.168.0.111:502 timeout 500\>  
> CreateDevice: saia2 (SAIA-BURGESS) @ 2 – protocol: modbus  
> AddRegister: 0x8042d788  
> AddRegister: 0x8042da38  
> Adding range: 1 input(s) @ 2 of device modbus:2  
> Adding range: 1 input(s) @ 3 of device modbus:2  
> modbus: read 1 input(s) @ 2 of device modbus:2  
> Connected with code 0  
> Write: 02 04 00 02 00 01 90 39  
> Subscription succeeded.  
> Subscription succeeded.  
> ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 2 of device modbus:2: Serial protocol error: request timed out  
> modbus: read 1 input(s) @ 3 of device modbus:2  
> Write: 02 04 00 03 00 01 c1 f9  
> ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 3 of device modbus:2: Serial protocol error: request timed out  
> modbus: read 1 input(s) @ 2 of device modbus:2  
> Write: 02 04 00 02 00 01 90 39  
> ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 2 of device modbus:2: Serial protocol error: request timed out  
> modbus: read 1 input(s) @ 3 of device modbus:2  
> Write: 02 04 00 03 00 01 c1 f9  
> Connected with code 0  
> Subscription succeeded.  
> Subscription succeeded.  
> ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 3 of device modbus:2: Serial protocol error: request timed out  
> device modbus:2 disconnected

---

<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:** [September 24, 2020, 7:33pm UTC](https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808/5 "2020-09-24T19:33:13Z")

</div>

> [@cu6apum](#):
>
> wb-mqtt-serial

Нет. Там используется Modbus RTU **over** TCP  
Говоря грубо “прямо так”.  
[https://wirenboard.com/wiki/index.php/Доступ\_к\_порту\_RS-485\_контроллера\_Wiren\_Board\_с\_компьютера](https://wirenboard.com/wiki/index.php/%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF_%D0%BA_%D0%BF%D0%BE%D1%80%D1%82%D1%83_RS-485_%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%B0_Wiren_Board_%D1%81_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%B0)  
Именно Modbus TCP - несколько “другой” протокол.

---

<div class="post-metadata">

**Author:** ![cu6apum](https://avatars.discourse-cdn.com/v2/letter/c/74df32/32.png) [@cu6apum](https://support.wirenboard.com/u/cu6apum)\
**Post date:** [September 24, 2020, 7:37pm UTC](https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808/6 "2020-09-24T19:37:41Z")

</div>

> [@BrainRoot](#):
>
> Именно Modbus TCP - несколько “другой” протокол.

Не, надо нормальный modbus/TCP, один крохопусечный шажок остался.

---

<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:** [September 24, 2020, 7:39pm UTC](https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808/7 "2020-09-24T19:39:46Z")

</div>

> [@cu6apum](#):
>
> один крохопусечный шажок остался

А отладка всего этого?  
Так-то да, в планах.  
ЗЫ. Ник классный.

---

<div class="post-metadata">

**Author:** ![cu6apum](https://avatars.discourse-cdn.com/v2/letter/c/74df32/32.png) [@cu6apum](https://support.wirenboard.com/u/cu6apum)\
**Post date:** [September 24, 2020, 7:41pm UTC](https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808/8 "2020-09-24T19:41:29Z")

</div>

> [@BrainRoot](#):
>
> Так-то да, в планах.

Нененене. Прямо пш-пш горит. Если не беретесь, сам сяду допишу, НО тогда денешку себе заберу, вместо чтоб купить еще десяток WB6.  
Правда надо.

Ник еще в студенчестве прилип, да так и держится… 🙂

---

<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:** [September 24, 2020, 7:44pm UTC](https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808/9 "2020-09-24T19:44:56Z")

</div>

> [@cu6apum](#):
>
> Прямо пш-пш горит.

Сегодня не отвечу, в затра - да. Как пообщаемся с разработчиками. То есть нужно чтобы wb-mqtt-serial умел в “чистый” Modbus-TCP?

---

<div class="post-metadata">

**Author:** ![cu6apum](https://avatars.discourse-cdn.com/v2/letter/c/74df32/32.png) [@cu6apum](https://support.wirenboard.com/u/cu6apum)\
**Post date:** [September 24, 2020, 7:45pm UTC](https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808/10 "2020-09-24T19:45:43Z")

</div>

> [@BrainRoot](#):
>
> То есть нужно чтобы wb-mqtt-serial умел в “чистый” Modbus-TCP?

Спасибо, да! Готов побыть тестером, бездвоздбездно, т.е. дадом.

---

<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:** [September 24, 2020, 7:46pm UTC](https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808/11 "2020-09-24T19:46:26Z")

</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:** [September 25, 2020, 7:46am UTC](https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808/12 "2020-09-25T07:46:22Z")

</div>

> [@cu6apum](#):
>
> Готов побыть тестером, бездвоздбездно, т.е. дадом.

Как обещал - отвечаю. Будет на следующей неделе, дадим версию (просто пакет файлом) для тестирования.Так что можно готовить шаблоны устройств.

---

<div class="post-metadata">

**Author:** ![kds-group](https://avatars.discourse-cdn.com/v2/letter/k/aca169/32.png) [@kds-group](https://support.wirenboard.com/u/kds-group)\
**Post date:** [September 26, 2020, 4:39pm UTC](https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808/13 "2020-09-26T16:39:51Z")

</div>

Привет, я бы тоже затестил modbusTCP, актуально очень

---

<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:** [September 27, 2020, 5:50pm UTC](https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808/14 "2020-09-27T17:50:30Z")

</div>

Ну, буду иметь в виду.  
Но с нестабильными версиями и такое бывает:

> [@WB-MIO-E request timeout to ETH](https://support.wirenboard.com/t/wb-mio-e-request-timeout-to-eth/5793/10):
>
> да, со стабильного репо. сейчас как советовали в др теме обновлюсь до не стабильного

---

<div class="post-metadata">

**Author:** ![Alexander\_Rakhman](https://support.wirenboard.com/user_avatar/support.wirenboard.com/alexander_rakhman/32/723_2.png) [@Alexander\_Rakhman](https://support.wirenboard.com/u/Alexander_Rakhman)\
**Post date:** [September 28, 2020, 5:12pm UTC](https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808/15 "2020-09-28T17:12:06Z")

</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:** [October 1, 2020, 10:47am UTC](https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808/16 "2020-10-01T10:47:46Z")

</div>

Версия wb-mqtt-serial 2.3.0 можно установить из репы experimental. Добавлен TCP.

> [@Поддержка MODBUS TCP в wb-mqtt-serial](https://support.wirenboard.com/t/podderzhka-modbus-tcp-v-wb-mqtt-serial/5875):
>
> Мы добавили в wb-mqtt-serial 2.3.0 поддержку MODBUS TCP. Приглашаем попробовать! В настройках появился новый тип порта: “modbus tcp”. Пример описания порта в конфигурационном файле: { "port\_type": "modbus tcp", "address": "localhost", "port": 502, "devices": [ { "slave\_id": "116", "channels": [ { "name": "Supply voltage", …

---

<div class="post-metadata">

**Author:** ![cu6apum](https://avatars.discourse-cdn.com/v2/letter/c/74df32/32.png) [@cu6apum](https://support.wirenboard.com/u/cu6apum)\
**Post date:** [October 1, 2020, 2:04pm UTC](https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808/17 "2020-10-01T14:04:58Z")

</div>

Yessup.  
Смотрим.

---

<div class="post-metadata">

**Author:** ![cu6apum](https://avatars.discourse-cdn.com/v2/letter/c/74df32/32.png) [@cu6apum](https://support.wirenboard.com/u/cu6apum)\
**Post date:** [October 1, 2020, 2:39pm UTC](https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808/18 "2020-10-01T14:39:42Z")

</div>

> [@BrainRoot](#):
>
> wb-mqtt-serial

так, я 2.2.1 в experimental вижу - не там смотрю?

---

<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:** [October 1, 2020, 2:44pm UTC](https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808/19 "2020-10-01T14:44:23Z")

</div>

```auto
apt update && apt policy wb-mqtt-serial        
wb-mqtt-serial:
  Installed: 2.2.2
  Candidate: 2.3.0
  Version table:
     2.3.0 910
        910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
 *** 2.2.2 100
        100 /var/lib/dpkg/status
     2.2.1 920
        920 http://releases.contactless.ru/unstable/stretch stretch/main armhf Packages
     2.2.0 920

```

---

<div class="post-metadata">

**Author:** ![cu6apum](https://avatars.discourse-cdn.com/v2/letter/c/74df32/32.png) [@cu6apum](https://support.wirenboard.com/u/cu6apum)\
**Post date:** [October 1, 2020, 3:00pm UTC](https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808/20 "2020-10-01T15:00:15Z")

</div>

Странно…

> # apt-cache policy wb-mqtt-serial
> 
> wb-mqtt-serial:  
> Installed: 2.2.1  
> Candidate: 2.2.1  
> Version table:  
> 2.3.0 910  
> 910 [http://releases.contactless.ru/experimental/stretch](http://releases.contactless.ru/experimental/stretch) stretch/main armhf Packages  
> \*\*\* 2.2.1 920  
> 920 [http://releases.contactless.ru/unstable/stretch](http://releases.contactless.ru/unstable/stretch) stretch/main armhf Packages

при этом

> # cat 10wb-experimental
> 
> Package: \*  
> Pin: release o=wirenboard, l=experimental\*  
> Pin-Priority: 910

Ща пофиксим.

[Next page](https://support.wirenboard.com/t/baga-modbus-tcp-modbus-client/5808.md?page=2)
