У меня аналогичная проблема - модуль wb-mr6 на одной линии с wb-mwac. Подключены шиной сантиметров 50-70 к RS485-1. После обновления на версию 2.5.1 все регистры wb-mr6 отображаются красным процентов 70 времени. Никаких других изменений небыло. До обновления все работало стабильно, с wb-mwac кажется все ок.
Вынес в отдельную тему, т.к. ничего общего с той не заметил.
- Пожалуйста приложите логи из /var/log/messages. Если регистры отображаются красным, в логах будут записи об этом. Проще всего запустить
tail -f /var/log/messages
дождаться появления ошибки и выложить сюда вывод.
- Попробуйте поставить другие версии и описать подробно изменения. Список доступных версий
apt policy wb-mqtt-serial
Установка:
apt install wb-mqtt-serial=версия
Можете ещё прислать /etc/wb-mqtt-serial.conf ?
{
"debug": false,
"ports": [
{
"path": "/dev/ttyRS485-1",
"devices": [
{
"slave_id": 60,
"device_type": "WB-MWAC-CUST"
},
{
"slave_id": 51,
"device_type": "WB-MR6CM"
}
],
"baud_rate": 115200,
"parity": "N",
"data_bits": 8,
"stop_bits": 1,
"poll_interval": 10,
"enabled": true
},
{
"path": "/dev/ttyRS485-2",
"devices": [
{
"slave_id": 15,
"device_type": "OT_GTW",
"max_read_registers": 1,
"poll_interval": 400,
"guard_interval_us": 50000
},
{
"slave_id": 1,
"device_type": "VUTR_TN"
},
{
"slave_id": "5",
"device_type": "VRD-485"
}
],
"baud_rate": 19200,
"parity": "N",
"data_bits": 8,
"stop_bits": 1,
"enabled": true
}
]
}
WB-MR6CM - шаблон WB-MR6 где оставлены тольно регистры К1-К6
А что в шаблоне для “WB-MWAC-CUST”?
{
"device_type": "WB-MWAC-CUST",
"device": {
"name": "WB-MWAC-CUST",
"id": "wb-mwac-c",
"max_read_registers": 0,
"channels": [
{
"name": "K1",
"reg_type": "coil",
"type": "switch",
"address": 0
},
{
"name": "K2",
"reg_type": "coil",
"type": "switch",
"address": 1
},
{
"name": "Alarm",
"reg_type": "coil",
"type": "switch",
"address": 2
},
{
"name": "S1",
"reg_type": "discrete",
"type": "switch",
"address": 0
},
{
"name": "S2",
"reg_type": "discrete",
"type": "switch",
"address": 1
},
{
"name": "F1",
"reg_type": "discrete",
"type": "switch",
"address": 2
},
{
"name": "F2",
"reg_type": "discrete",
"type": "switch",
"address": 3
},
{
"name": "F3",
"reg_type": "discrete",
"type": "switch",
"address": 4
},
{
"name": "F4",
"reg_type": "discrete",
"type": "switch",
"address": 5
},
{
"name": "W Counter",
"reg_type": "input",
"type": "value",
"readonly": true,
"address": 316,
"format": "u32"
},
{
"name": "G Counter",
"reg_type": "input",
"type": "value",
"readonly": true,
"address": 318,
"format": "u32",
"scale": 0.01
}
]
}
}
Некоторые регистры переименованы, + добавлен scale для счетчика газа.
В версиях wb-mqtt-serial 2.x мы уменьшили время ожидания ответа от устройств, чтобы ускорить общий опрос на шине. Теперь границы между посылками расчитываются по времени, как в стандарте MODBUS. Для наших устройств на высоких скоростях надо это время немного увеличить. Если посмотрите в стандартные шаблоны после установки версии 2.5.1, то для наших устройств прописано "frame_timeout_ms": 8
. В ваших шаблонах этой строки нет, поэтому wb-mqtt-serial расчитывает его по стандарту и слишком быстро посылает запросы. Можете добавить эту настройку и проверить работу?
Спасибо, проверю как будет время, отпишусь.
Добавил везде "frame_timeout_ms": 8
. Кажется стало намного лучшеб но все равно есть проблема с одним регистром вентустановки (скорость 19200)
Что можно подправить?
Можете ещё раз лог показать?
Можете ещё свой конфиг и шаблоны для этих устройств прислать?
config-vutr-tn.json (5.6 КБ)
config-ot-gateway.json (2.2 КБ)
config-vrd-485.json (2.0 КБ)
wb-mqtt-serial.conf (1.3 КБ)
Вижу
"slave_id": 1,
"device_type": "VUTR_TN",
"poll_interval": 200,
"guard_interval_us": 0
А guard_interval_us для него почему именно “0”?
Это устройство “вручную”, с помощью modbus_client - отвечает?
Незнаю откуда взялось
Удалил этот параметр, но картина особо не поменялась, Setpoint по прежнему отображается красным и те же ошибки в логе.
Устройство работает, все остальные регистры читаются, изменяются без проблем. Конкретно этот - тоже можно изменить, но, как правило, не с первого раза.
Нет, не надо его удалять. Если “не с первого раза”, то для этого устройства в шаблоне ( config-vutr-tn.json) установите:
{
"device_type": "VUTR_TN",
"device": {
"name": "VUTR TN",
"id": "vutr_tn",
"frame_timeout_ms": 100,
"guard_interval_us": 20000,
еще раз проверьте что в wb-mqtt-serial.conf нету для него frame_timeout_ms и guard_interval_us
и перезапустите wb-mqtt-serial
А в документации на рекуператор про этот регистр что-нибудь сказано? Может его допустимо запрашивать/менять только с определенным таймаутом?
Ок, спасибо, попробую вечером.
Нет, ничего такого. Кроме того работало отлично до апдейта на версию 2.Х.Х
Кажется помогло. Спасибо.