Контроллер зависает, но теперь работает заметно дольше 15 минут.
Оставляю на эксперимент с подключенными двумя портами rs485. Складывается впечатление, что зависает при подключении дополнительного порта rs485.
Прошу ответить на предыдущий вопрос.
Да, верно. надо определить с чем связано:
Если устройство переставить по линии ближе к контроллеру - ошибки пропадают?
До датчиков не более 50м, можно на расстоянии 25м попробовать это самая ближайшая.
Если смотреть логи то и диммер (один из 3х) в шкафу такую же ошибку выдает но реже чем датчики. Там шлейф связи не более 4х метров.
Линия чистая проверял с датчика до датчика все провода отсоединяя.
Думаю контроллер глючный или устройства.
Прошивки устройств обновляли?
датчики не обновлял
все куплено в этом году весной
вот это сделал Новые версии системного ПО для Wiren Board 6
Обновите на всякий случай прошивку
https://wirenboard.com/wiki/WB_Modbus_Devices_Firmware_Update
По моему ничего не работает или инструкция написана неверно
root@wirenboard-AE3UHZCX:~# wb-mcu-fw-updater update-all
2020-10-17 00:59:42,820 Will probe all devices defined in /etc/wb-mqtt-serial.conf
2020-10-17 00:59:42,825 Unhandled exception!
Traceback (most recent call last):
File “/usr/bin/wb-mcu-fw-updater”, line 181, in
args.func(args)
File “/usr/bin/wb-mcu-fw-updater”, line 76, in update_all
update_monitor._update_all(force=args.force)
File “/usr/lib/python3/dist-packages/wb_mcu_fw_updater/update_monitor.py”, line 232, in _update_all
alive, in_bootloader, dummy_records = probe_all_devices(CONFIG[‘SERIAL_DRIVER_CONFIG_FNAME’])
File “/usr/lib/python3/dist-packages/wb_mcu_fw_updater/update_monitor.py”, line 209, in probe_all_devices
for port, port_params in get_devices_on_driver(driver_config_fname).items():
File “/usr/lib/python3/dist-packages/wb_mcu_fw_updater/update_monitor.py”, line 80, in get_devices_on_driver
config_dict = json.load(open(driver_config_fname, ‘r’))
File “/usr/lib/python3.5/json/init.py”, line 265, in load
return loads(fp.read(),
File “/usr/lib/python3.5/encodings/ascii.py”, line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xd0 in position 4671: ordinal not in range(128)
root@wirenboard-AE3UHZCX:~#
root@wirenboard-AE3UHZCX:~# dpkg -s wb-mcu-fw-updater || (apt update && apt install wb-mcu-fw-updater)
Package: wb-mcu-fw-updater
Status: install ok installed
Priority: optional
Section: python
Installed-Size: 21
Maintainer: Vladimir Romanov v.romanov@wirenboard.ru
Architecture: all
Version: 1.0.2
Depends: python3:any, python3-wb-mcu-fw-updater (>= 1.0.2)
Conffiles:
/etc/wb-mcu-fw-updater.conf 4008ae3e26f35ecdbb3e64fbb8825ec8
Description: Wiren Board modbus devices firmware update tool (python 3)
root@wirenboard-AE3UHZCX:~#
а покажите содержимое /etc/wb-mqtt-seria.conf пожалуйста
{
"debug": false,
"ports": [
{
"path": "/dev/ttyRS485-1",
"devices": [
{
"slave_id": "201",
"device_type": "WB-MR6C",
"name": "R201",
"id": "R201",
"setup": [],
"poll_interval": 10,
"delay_ms": 10,
"enabled": true
},
{
"slave_id": "202",
"device_type": "WB-MR6C",
"name": "R202",
"id": "R202",
"poll_interval": 10,
"setup": [],
"delay_ms": 10,
"enabled": true
},
{
"slave_id": "203",
"device_type": "WB-MR6C",
"name": "R203",
"id": "R203",
"poll_interval": 10,
"setup": [],
"delay_ms": 10,
"enabled": false
},
{
"slave_id": "204",
"device_type": "WB-MR3",
"name": "R204",
"id": "R204",
"poll_interval": 10,
"setup": [],
"delay_ms": 10,
"enabled": true
},
{
"slave_id": "206",
"device_type": "WB-MRPS6",
"name": "R206",
"id": "R206",
"poll_interval": 10,
"setup": [],
"delay_ms": 10,
"enabled": true
},
{
"slave_id": "207",
"device_type": "WB-MRPS6",
"name": "R207",
"id": "R207",
"poll_interval": 10,
"setup": [],
"delay_ms": 10
},
{
"slave_id": "208",
"device_type": "WB-MR6C",
"name": "R208",
"id": "R208",
"poll_interval": 10,
"setup": [],
"delay_ms": 10
},
{
"slave_id": "209",
"device_type": "WB-MR6C",
"name": "R209",
"id": "R209",
"poll_interval": 10,
"setup": [],
"delay_ms": 10
},
{
"slave_id": "50",
"device_type": "WB-MDM3",
"name": "DIM50",
"id": "DIM50",
"poll_interval": 10,
"setup": [],
"delay_ms": 10
},
{
"slave_id": "51",
"device_type": "WB-MDM3",
"name": "DIM51",
"id": "DIM51",
"poll_interval": 10,
"setup": [],
"delay_ms": 10
},
{
"slave_id": "52",
"device_type": "WB-MDM3",
"name": "DIM52",
"id": "DIM52",
"poll_interval": 10,
"setup": [],
"delay_ms": 10
},
{
"slave_id": "200",
"device_type": "WB-MR6C",
"name": "R200",
"id": "R200",
"enabled": false,
"poll_interval": 10,
"setup": [],
"delay_ms": 10
}
],
"baud_rate": 115200,
"parity": "N",
"data_bits": 8,
"stop_bits": 2,
"poll_interval": 10,
"enabled": true,
"response_timeout_ms": 50,
"guard_interval_us": 0
},
{
"path": "/dev/ttyRS485-2",
"devices": [
{
"slave_id": "80",
"device_type": "WB-MSW v.3",
"name": "D80 (DD na Kuhne)",
"id": "D80",
"poll_interval": 20,
"setup": [
{
"address": "282",
"title": "Ширина временного окна",
"value": "0"
}
],
"delay_ms": 100,
"enabled": true
},
{
"slave_id": "82",
"device_type": "WB-MSW v.3",
"id": "D82",
"poll_interval": 20,
"setup": [],
"delay_ms": 100,
"enabled": true,
"channels": [],
"name": "D82 (DD v Kabinete)"
},
{
"slave_id": "83",
"device_type": "WB-MSW v.3",
"name": "D83 (DD v Stolovoy)",
"id": "D83",
"poll_interval": 20,
"setup": [
{
"address": "282",
"title": "Ширина временного окна",
"value": "0"
}
],
"delay_ms": 100,
"enabled": true
},
{
"slave_id": "84",
"device_type": "WB-MSW v.3",
"name": "D84 (DD v s/u 1et)",
"id": "D84",
"poll_interval": 20,
"setup": [
{
"address": "282",
"title": "Ширина временного окна",
"value": "0"
}
],
"delay_ms": 100,
"enabled": true
},
{
"slave_id": "86",
"device_type": "WB-MSW v.3",
"name": "D86 (DD v Prihojey)",
"id": "D86",
"poll_interval": 20,
"setup": [
{
"address": "282",
"title": "Ширина временного окна",
"value": "0"
}
],
"delay_ms": 100,
"enabled": true
},
{
"slave_id": "87",
"device_type": "WB-MSW v.3",
"name": "D87 (DD v Gost)",
"id": "D87",
"poll_interval": 20,
"setup": [
{
"address": "2820",
"title": "Ширина временного окна",
"value": "1"
}
],
"delay_ms": 100,
"enabled": true
}
],
"baud_rate": 19200,
"parity": "E",
"data_bits": 8,
"stop_bits": 1,
"poll_interval": 10,
"enabled": true,
"response_timeout_ms": 50,
"guard_interval_us": 0
},
{
"path": "/dev/ttyMOD1",
"devices": [
{
"slave_id": "81",
"device_type": "WB-MSW v.3",
"name": "D81 (DD v holle 2et)",
"id": "D81",
"poll_interval": 300,
"setup": [
{
"address": "282",
"title": "Ширина временного окна",
"value": "0"
}
],
"delay_ms": 300,
"enabled": true
},
{
"slave_id": "85",
"device_type": "WB-MSW v.3",
"name": "D85 (DD v s/u 2et)",
"id": "D85",
"poll_interval": 300,
"setup": [
{
"address": "282",
"title": "Ширина временного окна",
"value": "0"
}
],
"delay_ms": 300,
"enabled": true
}
],
"baud_rate": 19200,
"parity": "E",
"data_bits": 8,
"stop_bits": 1,
"poll_interval": 300,
"enabled": false,
"response_timeout_ms": 300,
"guard_interval_us": 0
},
{
"path": "/dev/ttyMOD2",
"devices": [],
"baud_rate": 19200,
"parity": "E",
"data_bits": 8,
"stop_bits": 1,
"poll_interval": 10,
"enabled": false
},
{
"path": "/dev/ttyMOD3",
"devices": [],
"port_type": "serial",
"baud_rate": 9600,
"parity": "N",
"data_bits": 8,
"stop_bits": 2,
"poll_interval": 10,
"enabled": false,
"type": null,
"response_timeout_ms": 500,
"guard_interval_us": 0
}
]
}
В приведенном wb-mqtt-seria.conf
на позиции 4671 находится
“title”: “Ширина временного окна”,
Для проверки содал такую же setup-секцию.
Воспроизводится…
Чтобы сейчас обойти баг - надо либо изменить назавния setup-секций (заменить русский английским) либо запустить wb-mcu-fw-updater для устройств с указанием адресов вручную.
Заменил латинскими буквами.
15 минут и выполнение сценарий зависает
не помогло.
Контроллер WB6 - это недоработанное устройство, которое не может себя диагностировать на стадии изменения конфигурации, создания сценарий и т.д.
Этот контроллер допускает действия, которые могут привести к неработоспособности сценарий.
Я впервые сталкиваюсь с такой проблемой на контроллерах. WB6 подкупил попробовать поработать лишь наличием нескольких портов RS485.
Кто-нибудь может мне расшифровать строку лога и почему истекает время запроса??
Oct 18 23:40:14 wirenboard-AE3UHZCX user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 2 input(s) @ 0 of device modbus:81: Serial protocol error: request timed out
Стоит отметить, что проблемы возникают только при использовании датчиков WB-MSW v.3. С другими устройствами проблем нет. Время зависания зависит от количества WB-MSW v.3. Если подключено с десяток то сценарии живут минут 15. Если пару датчиков то пол дня.
Ок, обновление выполнилось? Ошибки какие-нибудь были?
Это про обновление?
Контроллер честно обо всем пишет в логи. Задача “диагностики” - это показать состояния, интерпретировать их компьютер не умеет.
Да. Программа не может быть “умнее” человека. Если администратор вносит какие-то изменения - то он прав по-умолчанию. То есть считается что настройки верны.
Буквально написано: Ошибка ожидания ответа.
Расшифровываю: Мастер отправляет запрос и ждет реакции (ответа) слейва.
Время ожидания ограничено
response_timeout_ms
Если за установленное время ответ не получен - генерируется ошибка.
Почему не получен?
- слейв не получил запрос (помеха, неправильный CRC)
- слейв не ответил на запрос
- ответ не получен мастером (помеха, неправильный CRC).
Диагностика обычно сводится к подключению устройства непосредственно к контроллеру (коротким, гарантированно работающим проводом).
Давайте я подключусь с помошью тимвьювера, например - и попробуем воспроизвести - посмотреть у вас.
готов предоставить доступ, напишите когда и как состыкуемся это сделать
прием
Сегодня до обеда на объекте.
Возможно подключение через тимвьювер?
Добрый день. Да, могу.
как мне отправить данные подключения?