Request timed out

Добрый день, перечитал перекрестные темы, ответ не нашел.
Подключ… wb6 к частотнику Danfoss microdrive, и везь лог у меня засоряется примерно такими сообщениями:
“WARNING: [modbus] failed to read 1 holding(s) @ 16099 of device modbus:6: Serial protocol error: request timed out”
И в web интерфейсе у меня постоянно панель красная, иногда промаргивает и отображает значения. изображение

я к данному частонику подключался через программу OwenПЧВ в ней работает все идеально. Пробовал читать регистры с помощью modbuss Poll , тоже не каких ошибок не наблюдал, настройки порта и частотника совпадают.

Подскажите что можно сделать?

Добрый день.
Для начала - определить надо аппаратная ли проблема или программная и “с какой стороны”.
Первым шагом - соверую почитать регистры с помощью modbus_client, в цикле на несколько сотен чтений.
Если ошибок не будет, то есть аппаратно все хорошо - то тогда попробовать увеличить интервалы между опросами в настройках порта. Не все устройства умеют отвечать на максимальной скорости опроса wb-mqtt-serial.

интервалы увеличивал, а что значит вообще ошибка “request timed out”? я ее интерпретирую как WB не смог или не успел отправить запрос в шину по каким то причинам, это так?

Нет, это означает что за установленное в настройках время

// Максимальное время ответа устройств, подключенных к этому порту, в миллисекундах
"response_timeout_ms": 100,

от устройсва не получен ответ.

Увеличение данного параметра не каким образом не изменяет ситуацию. Вот я и подумал что это другое

modbus_client в цикле запросов на 100 - отрабатывает?

Заметил одну особенность работы с данным частником. Его настройки 9600,N,8,2 все сторонние программы Mbpoll или Owen, я настраивал на стоп бит 2 и все идеально.
Порпобывал Modbus_client с такими же настройками и у меня были одни ошибки. Поменял в нем stop bit на 1 и он выдает 100 из 100; ВОт скрипт:
for((x=0;x<100;x++))
do
modbus_client --debug -mrtu -pnone -b9600 -o1000 -s1 /dev/ttyRS485-2 -a6 -t0x03 -r49999
done

вот лог: log.txt (18.0 КБ)

При подключение wb-mqtt-serial. ситуация так же, но красного стало меньше

Посмотрел в wiresharke:

1)Программа овен

  1. Wb-mqtt-serial

  2. modbus_client (чтение в цикле одного регистра)

Ага, так тут время ожидания ответа (-o1000) равно 1000мс.

А покажите сам конфиг, какой в нем таймаут прописан?

  1. убрал задержку - стал читать два регистра в цикле
    Код:
    for((x=0;x<10;x++))
    do
    modbus_client --debug -mrtu -pnone -b9600 -s1 /dev/ttyRS485-2 -a6 -t0x03 -r49999
    modbus_client --debug -mrtu -pnone -b9600 -s1 /dev/ttyRS485-2 -a6 -t0x03 -r50009
    done

Лог:
log.txt (35.9 КБ)

Конфиг порта:
{
“path”: “/dev/ttyRS485-2”,
“devices”: [
{
“slave_id”: “6”,
“device_type”: “WB-VLC-v2”
}
],
“baud_rate”: 9600,
“stop_bits”: 1,
“enabled”: true,
“data_bits”: 8
},

Конфиг устройста:

config-wb-vlc2.json (2.5 КБ)

А добавьте в конфиг порта

"guard_interval_us": 1000,

Доброе утро. Не поменяло ситуацию. По прежнему ошибки

“path”: “/dev/ttyRS485-2”,
“devices”: [
{
“slave_id”: “6”,
“device_type”: “WB-VLC-v2”
}
],
“baud_rate”: 9600,
“stop_bits”: 1,
“enabled”: true,
“data_bits”: 8,
“guard_interval_us”: 1000
}

Здравствуйте! Если с помощью утилиты modbus_client все читается нормально, вероятно, проблема в настройках драйвера wb-mqtt-serial.
Попробуйте, пожалуйста, еще увеличить параметр “guard_interval_us” до 3000.
Также нужно попробовать изменить и другие таймауты, описанные здесь: https://wirenboard.com/wiki/Wb-mqtt-serial_templates. Например, в шаблоне устройства в секции device установить параметр

"frame_timeout_ms": 15

Добавил, не помогло, я пробовал все эти значения, как подымать в большую так и в меньшую степень. Попробовал вынести на отдельный MOD. Вроде немного стало лушче. но управлять даже в ручном режиме получается не всегда даже с 3 раза.
log.txt (149.6 КБ)

Спасибо за помощь, у меня вроде бы получилось. Открыл программу овен и пересчитал настройки на WB в овне есть настройка как "Пауза между попытками: 50 мс " не совсем понял что это но пересчитала на us и устанновил

"guard_interval_us": 50000,

Надеюсь поможет. Буду теститровать

Верно ли я сопоставил настройки OWEN → WB?

 Время ожидание ответа: 200 mc                response_timeout_ms
 Количество попыток: 1                        device_max_fail_cycles
 Пауза между попытками: 50 мс                  guard_interval_us 
 Пауза между запросами 5 мс                   frame_timeout_ms

Не совсем
Пауза между запросами 5 мс poll_interval

Ок. Спасибо!