Некорректная работа MIO-E v.2

Здравствуйте, имеется большое число модулей MIO с подключенными к ним боковыми модулями HVD-8 (как в моих предыдущих темах).
Один из модулей в веб интерфейсе отображается красным и с него не считываются значения модуля входа.
При попытке просмотреть значения регистров утилитой modbus_client, наткнулся на следующее при перенаправлении в socat:

Спойлер

root@wirenboard-ANOYBGGB:~# socat -d -d -d -x PTY,raw,b9600,parenb=0,cstopb=1,cs8,link=/dev/ttyRS485-5 tcp:172.16.131.122:23
2024/03/05 10:42:01 socat[18358] I socat by Gerhard Rieger and contributors - see www.dest-unreach.org
2024/03/05 10:42:01 socat[18358] I This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)
2024/03/05 10:42:01 socat[18358] I This product includes software written by Tim Hudson (tjh@cryptsoft.com)
2024/03/05 10:42:01 socat[18358] I setting option “raw”
2024/03/05 10:42:01 socat[18358] I setting option “b9600”
2024/03/05 10:42:01 socat[18358] I setting option “parenb” to 0
2024/03/05 10:42:01 socat[18358] I setting option “cstopb” to 1
2024/03/05 10:42:01 socat[18358] I setting option “cs8”
2024/03/05 10:42:01 socat[18358] I setting option “symbolic-link” to “/dev/ttyRS485-5”
2024/03/05 10:42:01 socat[18358] I openpty({5}, {6}, {“/dev/pts/3”},) → 0
2024/03/05 10:42:01 socat[18358] N PTY is /dev/pts/3
2024/03/05 10:42:01 socat[18358] N opening connection to AF=2 172.16.131.122:23
2024/03/05 10:42:01 socat[18358] I starting connect loop
2024/03/05 10:42:01 socat[18358] I socket(2, 1, 6) → 7
2024/03/05 10:42:01 socat[18358] N successfully connected from local address AF=2 172.16.131.254:51524
2024/03/05 10:42:01 socat[18358] I resolved and opened all sock addresses
2024/03/05 10:42:01 socat[18358] N starting data transfer loop with FDs [5,5] and [7,7]
< 2024/03/05 10:42:01.934784 length=1 from=0 to=0
00
2024/03/05 10:42:01 socat[18358] I transferred 1 bytes from 7 to 5

2024/03/05 10:42:01.935167 length=2 from=0 to=1
5e 40
2024/03/05 10:42:01 socat[18358] I transferred 2 bytes from 5 to 7
< 2024/03/05 10:42:01.951942 length=1 from=1 to=1
00
2024/03/05 10:42:01 socat[18358] I transferred 1 bytes from 7 to 5
2024/03/05 10:42:01.952257 length=2 from=2 to=3
5e 40
2024/03/05 10:42:01 socat[18358] I transferred 2 bytes from 5 to 7
< 2024/03/05 10:42:01.968592 length=1 from=2 to=2
00
2024/03/05 10:42:01 socat[18358] I transferred 1 bytes from 7 to 5
2024/03/05 10:42:01.968880 length=2 from=4 to=5
5e 40
2024/03/05 10:42:01 socat[18358] I transferred 2 bytes from 5 to 7
< 2024/03/05 10:42:01.985748 length=1 from=3 to=3
00
2024/03/05 10:42:01 socat[18358] I transferred 1 bytes from 7 to 5
2024/03/05 10:42:01.986041 length=2 from=6 to=7
5e 40
2024/03/05 10:42:01 socat[18358] I transferred 2 bytes from 5 to 7
< 2024/03/05 10:42:02.002669 length=1 from=4 to=4
00
2024/03/05 10:42:02 socat[18358] I transferred 1 bytes from 7 to 5
2024/03/05 10:42:02.002990 length=2 from=8 to=9
5e 40
2024/03/05 10:42:02 socat[18358] I transferred 2 bytes from 5 to 7
< 2024/03/05 10:42:02.018605 length=1 from=5 to=5
00
2024/03/05 10:42:02 socat[18358] I transferred 1 bytes from 7 to 5
2024/03/05 10:42:02.018893 length=2 from=10 to=11
5e 40
2024/03/05 10:42:02 socat[18358] I transferred 2 bytes from 5 to 7
< 2024/03/05 10:42:02.032636 length=1 from=6 to=6
00
2024/03/05 10:42:02 socat[18358] I transferred 1 bytes from 7 to 5
2024/03/05 10:42:02.032915 length=2 from=12 to=13
5e 40
2024/03/05 10:42:02 socat[18358] I transferred 2 bytes from 5 to 7
< 2024/03/05 10:42:02.046744 length=1 from=7 to=7
00
2024/03/05 10:42:02 socat[18358] I transferred 1 bytes from 7 to 5
2024/03/05 10:42:02.047036 length=2 from=14 to=15
5e 40
2024/03/05 10:42:02 socat[18358] I transferred 2 bytes from 5 to 7
< 2024/03/05 10:42:02.063499 length=1 from=8 to=8
00
2024/03/05 10:42:02 socat[18358] I transferred 1 bytes from 7 to 5
2024/03/05 10:42:02.063798 length=2 from=16 to=17
5e 40
2024/03/05 10:42:02 socat[18358] I transferred 2 bytes from 5 to 7
< 2024/03/05 10:42:02.078780 length=1 from=9 to=9
00
2024/03/05 10:42:02 socat[18358] I transferred 1 bytes from 7 to 5
2024/03/05 10:42:02.079034 length=2 from=18 to=19
5e 40
2024/03/05 10:42:02 socat[18358] I transferred 2 bytes from 5 to 7
< 2024/03/05 10:42:02.095842 length=1 from=10 to=10
00
2024/03/05 10:42:02 socat[18358] I transferred 1 bytes from 7 to 5
2024/03/05 10:42:02.096117 length=2 from=20 to=21
5e 40
2024/03/05 10:42:02 socat[18358] I transferred 2 bytes from 5 to 7
< 2024/03/05 10:42:02.113745 length=1 from=11 to=11
00
2024/03/05 10:42:02 socat[18358] I transferred 1 bytes from 7 to 5
2024/03/05 10:42:02.114038 length=2 from=22 to=23
5e 40
2024/03/05 10:42:02 socat[18358] I transferred 2 bytes from 5 to 7
< 2024/03/05 10:42:02.128622 length=1 from=12 to=12
00
2024/03/05 10:42:02 socat[18358] I transferred 1 bytes from 7 to 5
2024/03/05 10:42:02.128900 length=2 from=24 to=25
5e 40
2024/03/05 10:42:02 socat[18358] I transferred 2 bytes from 5 to 7
< 2024/03/05 10:42:02.144638 length=1 from=13 to=13
00
2024/03/05 10:42:02 socat[18358] I transferred 1 bytes from 7 to 5
2024/03/05 10:42:02.144907 length=2 from=26 to=27
5e 40
2024/03/05 10:42:02 socat[18358] I transferred 2 bytes from 5 to 7
< 2024/03/05 10:42:02.159213 length=1 from=14 to=14
00
2024/03/05 10:42:02 socat[18358] I transferred 1 bytes from 7 to 5
2024/03/05 10:42:02.159482 length=2 from=28 to=29
5e 40
2024/03/05 10:42:02 socat[18358] I transferred 2 bytes from 5 to 7
^C2024/03/05 10:42:03 socat[18358] N socat_signal(): handling signal 2
2024/03/05 10:42:03 socat[18358] N exiting on signal 2
2024/03/05 10:42:03 socat[18358] N socat_signal(): finishing signal 2
2024/03/05 10:42:03 socat[18358] N exit(130)
2024/03/05 10:42:03 socat[18358] I close(5)
2024/03/05 10:42:03 socat[18358] I shutdown(7, 2)

wb-mqtt-serial остановлен, и при перенаправлении с других модулей такого не наблюдается. Может ли это быть связано с первой проблемой?

Добрый день.

А кто отправляет 2 сигнал процессу?
Очевидно что был выполнен

kill -2 $(pidof socat)

Я остановил socat, чтобы скопировать строки консоли, иначе бесконечно и очень быстро отправляются байты. Стоило в самом начале это отметить.

Целесообразно запустить tcpdump и посмотреть - от шлюза ли идет “^c”
пример:

tcpdump  host 10.0.0.71 -v -X
tcpdump: listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
09:27:12.481625 IP (tos 0x0, ttl 255, id 962, offset 0, flags [none], proto TCP (6), length 50)
    mge.lan.502 > wirenboard-AWWCDXFH.local.53094: Flags [P.], cksum 0xa16f (correct), seq 22351:22361, ack 4290598233, win 1816, length 10
	0x0000:  4500 0032 03c2 0000 ff06 a36e 0a00 0047  E..2.......n...G
	0x0010:  0a00 004f 01f6 cf66 0000 574f ffbd 5559  ...O...f..WO..UY
	0x0020:  5018 0718 a16f 0000 02dd 0000 0004 7101  P....o........q.
	0x0030:  0100                                     ..
09:27:12.481926 IP (tos 0x0, ttl 64, id 46768, offset 0, flags [DF], proto TCP (6), length 40)
    wirenboard-AWWCDXFH.local.53094 > mge.lan.502: Flags [.], cksum 0x2328 (correct), ack 10, win 64073, length 0
	0x0000:  4500 0028 b6b0 4000 4006 6f8a 0a00 004f  E..(..@.@.o....O
	0x0010:  0a00 0047 cf66 01f6 ffbd 5559 0000 5759  ...G.f....UY..WY
	0x0020:  5010 fa49 2328 0000                      P..I#(..
09:27:12.532120 IP (tos 0x0, ttl 64, id 46769, offset 0, flags [DF], proto TCP (6), length 52)
    wirenboard-AWWCDXFH.local.53094 > mge.lan.502: Flags [P.], cksum 0x9a73 (correct), seq 1:13, ack 10, win 64073, length 12
	0x0000:  4500 0034 b6b1 4000 4006 6f7d 0a00 004f  E..4..@.@.o}...O
	0x0010:  0a00 0047 cf66 01f6 ffbd 5559 0000 5759  ...G.f....UY..WY
	0x0020:  5018 fa49 9a73 0000 02de 0000 0006 7101  P..I.s........q.
	0x0030:  14b4 0007                                ....
09:27:12.559613 IP (tos 0x0, ttl 255, id 963, offset 0, flags [none], proto TCP (6), length 50)
    mge.lan.502 > wirenboard-AWWCDXFH.local.53094: Flags [P.], cksum 0xa164 (correct), seq 10:20, ack 13, win 1804, length 10
	0x0000:  4500 0032 03c3 0000 ff06 a36d 0a00 0047  E..2.......m...G
	0x0010:  0a00 004f 01f6 cf66 0000 5759 ffbd 5565  ...O...f..WY..Ue
	0x0020:  5018 070c a164 0000 02de 0000 0004 7101  P....d........q.
	0x0030:  0100                                     ..

А почему используете Modbus over TCP? Модуль WB-MIO-E первой ревизии?
Ну и выбор порта telnet немного странен.

Модули MIO-E v.2.
Для работы они настроены на Modbus TCP и 502й порт, НО на другом рабочем модуле я не смог изменить при таких настройках параметры через socat и modbus_client, да и wb-mb-explorer тоже не обнаруживал модуль.
Поэтому выставлены такие параметры для этого модуля в данный момент.

При настройке как Modbus TCP - нет нужды в socat. Обычный modbus_client достаточен.

Вот результат tcpdump.
Я так же остановил socat в конце.
tcpdump1.txt (317,2 КБ)

Поменял настройки.

Прочитать регистры не могу.

Спойлер

root@wirenboard-ANOYBGGB:~# modbus_client --debug -mtcp -p502 172.16.131.122 -a182 -t0x03 -r128
Connecting to 172.16.131.122:502
[00][01][00][00][00][06][B6][03][00][80][00][01]
Waiting for a confirmation…
ERROR Connection timed out: select
ERROR occured!
root@wirenboard-ANOYBGGB:~# modbus_client --debug -mtcp -p502 172.16.131.122 -a182 -t0x03 -r128
Connecting to 172.16.131.122:502
[00][01][00][00][00][06][B6][03][00][80][00][01]
Waiting for a confirmation…
ERROR Connection timed out: select
ERROR occured!
root@wirenboard-ANOYBGGB:~# modbus_client --debug -mtcp -p502 172.16.131.122 -a182 -t0x03 -r128
Connecting to 172.16.131.122:502
[00][01][00][00][00][06][B6][03][00][80][00][01]
Waiting for a confirmation…
ERROR Connection timed out: select
ERROR occured!
root@wirenboard-ANOYBGGB:~# modbus_client --debug -mtcp -p502 172.16.131.122 -a182 -t0x03 -r1000
Connecting to 172.16.131.122:502
[00][01][00][00][00][06][B6][03][03][E8][00][01]
Waiting for a confirmation…
ERROR Connection timed out: select
ERROR occured!

Так, то есть ни при работе через Modbus over TCP ни через Modbus TCP- нет ответа?
А во вкладке web2serial модуля то что отправляет сам модуль отображается?

modbus_client -mtcp 10.0.0.71 --debug -a11 -t0x04 -o300 -r997 -c1
Connecting to 10.0.0.71:502
[00][01][00][00][00][06][0B][04][03][E5][00][01]
Waiting for a confirmation...
<00><01><00><00><00><05><0B><04><02><00><02>
SUCCESS: read 1 of elements:
	Data: 0x0002 


Из возможных причин - на модуле недостаточно питания, либо на нем сменились параметры связи (маловероятно, конечно)

Терминал:
root@wirenboard-ANOYBGGB:~# modbus_client --debug -mtcp -p502 172.16.131.122 -a182 -t0x03 -r128
Connecting to 172.16.131.122:502
[00][01][00][00][00][06][B6][03][00][80][00][01]
Waiting for a confirmation…
ERROR Connection timed out: select
ERROR occured!

web2serial:

Соответственно - MIO не отвечает. А на клеммы RS-485 что-то подключено?

Клеммы RS485 пустые.

По адресу (modbus) “1” - тоже нет ответа?
Возможность измерить напряжение питания - есть?
Ну и попробуйте запросить 12 holding регистров с адреса 290.

Modbus адрес 1, ответа нет.

Спойлер

root@wirenboard-ANOYBGGB:~# modbus_client --debug -mtcp -p502 172.16.131.122 -a1 -t0x03 -r128
Connecting to 172.16.131.122:502
[00][01][00][00][00][06][01][03][00][80][00][01]
Waiting for a confirmation…
ERROR Connection timed out: select
ERROR occured!
root@wirenboard-ANOYBGGB:~# modbus_client --debug -mtcp -p502 172.16.131.122 -a1 -t0x03 -r128
Connecting to 172.16.131.122:502
[00][01][00][00][00][06][01][03][00][80][00][01]
Waiting for a confirmation…
ERROR Connection timed out: select
ERROR occured!
root@wirenboard-ANOYBGGB:~# modbus_client --debug -mtcp -p502 172.16.131.122 -a1 -t0x03 -r128
Connecting to 172.16.131.122:502
[00][01][00][00][00][06][01][03][00][80][00][01]
Waiting for a confirmation…
ERROR Connection timed out: select
ERROR occured!

Чтение 290 регистра, ответа также нет.

Спойлер

root@wirenboard-ANOYBGGB:~# modbus_client --debug -mtcp -p502 172.16.131.122 -a182 -t0x03 -r290 -c 12
Connecting to 172.16.131.122:502
[00][01][00][00][00][06][B6][03][01][22][00][0C]
Waiting for a confirmation…
ERROR Connection timed out: select
ERROR occured!
root@wirenboard-ANOYBGGB:~# modbus_client --debug -mtcp -p502 172.16.131.122 -a182 -t0x03 -r290 -c 12
Connecting to 172.16.131.122:502
[00][01][00][00][00][06][B6][03][01][22][00][0C]
Waiting for a confirmation…
ERROR Connection timed out: select
ERROR occured!
root@wirenboard-ANOYBGGB:~# modbus_client --debug -mtcp -p502 172.16.131.122 -a182 -t0x03 -r290 -c 12
Connecting to 172.16.131.122:502
[00][01][00][00][00][06][B6][03][01][22][00][0C]
Waiting for a confirmation…
ERROR Connection timed out: select
ERROR occured!

Для измерения напряжения нужно идти на объект, это скорее всего завтра тогда.

Так же невозможно опросить подобный модуль на другом объекте, причем даже после замены на проверенный рабочий MIO-E v.2.

Попробовал воспроизвести.
Еще раз советую проверить питание. При подключении к лабораторному БП и уменьшении питания - сначала перестает работать MIO (перестает отвечать) а потом, при снижении напряжения менее 7 вольт уже сама сетевая, ethernet, часть.

Буду проверять.

Питание в норме, заменил модуль на другой, всё заработало.
Пропала возможность подключится к веб-интерфейсу замененного модуля, даже после сброса настроек. Подлежит ли он замене?

Следует обновить прошивку самого модуля: WB-MGE v.2: Errata — Wiren Board

Вроде восстановил доступ к веб-интерфейсу, изменил настройки, но по modbus tcp регистры модуля все равно не считываются.