Модуль MCM8, подключенный через MIOv2 остаётся красным

Доброго дня.

Имею следующую инсталляцию:

И связанную с ней проблему:

Пробовал

  • менять схемы подключения ethernet/wifi (см. рис).
    image
  • подключать mcm8 напрямую через modbus к контроллеру - mcm8 работает
  • менять work mode на mio, симметрично изменяя его на контроллере - никаких изменений
  • менять порт с потенциально занятого 23 на произвольный 503
  • проверять доступность mio к контроллера пингами - пинги ходят
  • проверять доступность порта с другой машины в сети tenet-ом - порты 23 и 503 открываются
  • мониторить запросы в разделе Web to Serial на mio - запросы в режиме None сыпятся ‘Receive HEX: 0x0’, в режиме ModbusTCP: 'Receive HEX: ’
  • после каждого изменения в mio выполнять перезапуск порта (на случай, если сетевое соединение не восстанавливается)

В логе journalctl -fu wb-mqtt-serial получаю раз в 5 сек такое:
Oct 15 14:38:56 wirenboard-ATMTILFT wb-mqtt-serial[29181]: WARNING: <192.168.0.7:23>: closed due to repetetive errors

Включение Debug портов в контроллере приводит к разным результатам в логе:
таким:

wb-mqtt-serial[7876]: DEBUG: [modbus] failed to read 2 input(s) @ 270 of device modbus:46: Serial protocol error: malformed response: invalid data size
wb-mqtt-serial[7876]: DEBUG: [modbus] failed to read 1 holding(s) @ 100 of device modbus:46: Serial protocol error: malformed response: invalid data size
wb-mqtt-serial[7876]: DEBUG: [modbus] failed to read 8 discrete(s) @ 0 of device modbus:46: Serial protocol error: malformed response: invalid data size
wb-mqtt-serial[7876]: DEBUG: [modbus] failed to read 2 input(s) @ 68 of device modbus:46: Serial protocol error: malformed response: invalid data size
wb-mqtt-serial[7876]: DEBUG: [modbus] failed to read 2 input(s) @ 60 of device modbus:46: Serial protocol error: malformed response: invalid data size
wb-mqtt-serial[7876]: DEBUG: [modbus] failed to read 2 input(s) @ 70 of device modbus:46: Serial protocol error: malformed response: invalid data size
wb-mqtt-serial[7876]: DEBUG: [modbus] failed to read 2 input(s) @ 62 of device modbus:46: Serial protocol error: malformed response: invalid data size
wb-mqtt-serial[7876]: DEBUG: [modbus] failed to read 2 input(s) @ 72 of device modbus:46: Serial protocol error: malformed response: invalid data size
wb-mqtt-serial[7876]: DEBUG: [modbus] failed to read 2 input(s) @ 64 of device modbus:46: Serial protocol error: malformed response: invalid data size
wb-mqtt-serial[7876]: DEBUG: [modbus] failed to read 2 input(s) @ 74 of device modbus:46: Serial protocol error: malformed response: invalid data size

или таким:

wb-mqtt-serial[1819]: DEBUG: [serial client] Serial protocol error: <192.168.0.7:23> connect error: Connection refused (111)

или таким:

wb-mqtt-serial[7414]: DEBUG: [modbus] failed to read 1 holding(s) @ 100 of device modbus-tcp:46: Serial protocol error: request timed out

Прикладываю выдержку из лога:
cut.log (303.6 KB)

Конфиг:
wb-mqtt-serial.conf (3.6 KB)

Добрый день.
Пришлите диагностический архив. Скрины настроек самого шлюза (вкладки Local IP Config и TTL1).

diag_output_ATMTILFT_2023-10-16-08.54.36.zip (84.3 KB)

У вас релиз на контроллере wb-2204? Это достаточно старый. Обновитесь до актуального.

Методика диагностики:

  1. Обращаем внимание на вкладку Current status ethernet шлюза.
    Screenshot_20231016_154525
    собственно при приходе чего-то по Ethernet - увеличивается “RX Count”. при отправке из rs485->ethernet - Tx count. Как выглядят счетчики?
  2. Отправляем что-то (запрос, с помощью modbus_client, например). Шлюза настроен как Modbus TCP, важно.
modbus_client -mtcp  --debug -p502 10.0.0.71 -a55 -t4 -o500 -r0x7c -c1
Connecting to 10.0.0.71:502
[00][01][00][00][00][06][37][04][00][7C][00][01]
Waiting for a confirmation...
<00><01><00><00><00><05><37><04><02><01><4C>
SUCCESS: read 1 of elements:
	Data: 0x014c 

  • Увеличился RX Count? ОK.
  • Мигнул светодиод Status на Modbus модуле - ОК
  • увеличился TX Count - OK
  • на хосте получен ответ - ОК.

На каком этапе “не ОК”?

Со вчерашнего дня счётчики открутились до нескольких миллионов байт.
Ежесекундно увеличиваются – отследить увеличение на один запрос будет невозможно.

Произошла очень тревожная ситуация – я переключил оба устройства в modbus tcp (что делалось мною вчера многократно) и

  1. начал получать в Web to Serial строки, отличные от 0x0
  2. устройство отобразилось рабочим в разделе Devices.

Получается, проблема решена, но осадочек непонятности остался.

А нет, снова покраснело

image

При этом на скриншоте видно, что данные кол-ва срабатываний (8) считались.

Снова сработало подключение и увеличился счётчик (его на объекте действительно дёрнули один раз).

image

Пока MCM8 подсвечивался красным, обновление не происходило.

Команда не работает - почему-то коннектится на 0.0.0.0 вместо нужного адреса

modbus_client -mtcp  --debug -p503 192.168.0.7 -a55 -t4 -o500 -r0x7c -c1
0x00c0 Connecting to 0.0.0.0
Connection failed: Connection refused

С этого момента визуально не было разрывов, но следить постоянно глазами возможности нет.

В логе сейчас так:

root@wirenboard-ATMTILFT:~# date
Пн окт 16 14:03:34 UTC 2023
root@wirenboard-ATMTILFT:~# journalctl -fu wb-mqtt-serial
-- Logs begin at Sun 2023-10-15 03:44:05 UTC. --
окт 16 13:49:48 wirenboard-ATMTILFT wb-mqtt-serial[14237]: WARNING: [modbus] failed to read 8 discrete(s) @ 0 of device modbus-tcp:46: Serial protocol error: request timed out
окт 16 13:49:48 wirenboard-ATMTILFT wb-mqtt-serial[14237]: WARNING: [modbus] failed to read 1 holding(s) @ 100 of device modbus-tcp:46: Serial protocol error: request timed out
окт 16 13:49:49 wirenboard-ATMTILFT wb-mqtt-serial[14237]: WARNING: [modbus] failed to read 16 input(s) @ 60 of device modbus-tcp:46: Serial protocol error: request timed out
окт 16 13:49:50 wirenboard-ATMTILFT wb-mqtt-serial[14237]: WARNING: [modbus] failed to read 2 input(s) @ 270 of device modbus-tcp:46: Serial protocol error: request timed out
окт 16 13:49:50 wirenboard-ATMTILFT wb-mqtt-serial[14237]: WARNING: [modbus] failed to read 8 discrete(s) @ 0 of device modbus-tcp:46: Serial protocol error: request timed out
окт 16 13:49:50 wirenboard-ATMTILFT wb-mqtt-serial[14237]: INFO: [serial device] device modbus-tcp:46 is disconnected
окт 16 13:49:51 wirenboard-ATMTILFT wb-mqtt-serial[14237]: INFO: [serial device] device modbus-tcp:46 is connected
окт 16 13:49:52 wirenboard-ATMTILFT wb-mqtt-serial[14237]: WARNING: [modbus] failed to read 2 input(s) @ 64 of device modbus-tcp:46: Serial protocol error: request timed out
окт 16 13:53:49 wirenboard-ATMTILFT wb-mqtt-serial[14237]: WARNING: [modbus] failed to read 16 input(s) @ 60 of device modbus-tcp:46: Serial protocol error: request timed out
окт 16 14:00:59 wirenboard-ATMTILFT wb-mqtt-serial[14237]: WARNING: [modbus] failed to read 1 holding(s) @ 100 of device modbus-tcp:46: Serial protocol error: request timed out

Пересохранение конфига с остановкой всех подключений к modbus устройствам и последующим запуском назад пережило без проблем.

Стоит остановить wb-mqtt-serial перед экспериментом.

Web2 serial - не тот протокол который используется.

Ну и для диагностики можно, конечно, но так себе:
Screenshot_20231016_174548

Старый релиз, действительно стоит обновить.

И после перезапуска - работает или нет?

После перезапуска продолжило работать.
Обновлю в конце недели, когда физически появлюсь на объекте – сообщу результат.

1 лайк

Обновил. До обновления начиная с предыдущего сообщения в этом треде работало и после обновления продолжает.
Что это было - не ясно.

Видел подобное когда что-то из сети (сторонний сервис, возможно вирус?) пытался получить ответ от шлюза. Но там шлюз был настроен на 23 прт, тоже в режиме Modbus over TCP.
На самом деле - пока у меня тоже нет предположений.

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.