2 контроллера управления приводами LeadShine 2ELD2-7030B (CAN-Open устройство по профилю CiA-DSP-402)
Проблема:
По включению питания контроллеры управления приводами начинают выдавать свое состояние в CAN-шину по NMT-протоколу (см. CiA-DS-301). Через некоторое время WirenBoard 7 начинает какие-то манипуляции со своим CAN-контроллером в результате которых на CAN-шине в течении нескольких секунд происходят ошибки (зафиксированы CAN-монитором) в результате которых некоторые контроллеры управления приводами переходят в состояние BusOff (это отключение от CAN-шины). После завершения загрузки WirenBoard 7 ошибок в CAN-шине нет, но работа всей системы не восстанавливается (часть контроллеров в состоянии BusOff и вывести их их этого состояния можно только через выключение)
Пожалуйста, посоветуйте что можно с этим сделать.
P.S.
Есть два подозрения:
1. Что сначала CAN-контроллер устанавливает какую-то дефолтную скорость отличную от 1MBit/s, а только потом через некоторое время 1MBit/s (которая прописана в конфигурационном файле)
2. CAN-контроллер совмещен с RS-485 и возможно он что-то выдает, и это “сводит с ума” другие CAN-устройства
Для подключения используется USB-IXXAT верхняя лампочка - активность, третья сверху - ошибки в линии (цвета на записи плохо различимы зеленый трудно отличить от красного)
Дополнительная информация. Те же самые проблемы происходят на скорости 500 КБит/с, 250 КБит/с и 125 КБит/с. Однако при 125 КБит/с система восстанавливается после ошибок, потому что на низкой скорости она не успевает накопить нужное количество ошибок, чтобы перейти в BusOff
Доброго дня.
При попытке загрузки CAN шины у вас возникает регулярная ошибка:
wb-mqtt-serial[1770]: ERROR: [serial client] Serial protocol error: /dev/ttyRS485-2, can't get termios attributes Input/output error (5)
это обычно означает, что программа не может получить или установить параметры порта (например, скорость передачи данных, контроль потока и другие настройки). Это может быть вызвано:
Проблемами с подключением или кабелем.
Неправильной конфигурацией порта или драйвера.
Аппаратной неисправностью порта или устройств, подключенных к шине.
Рекомендуется проверить физическое подключение, настройки порта.
Я рекомендую выполнить следующие действия:
Отключить с шины все устройства и попробовать поднять порт на пустой шине, оставив на ней CAN-монитор.
Сделать активным терминатор, встроенный в WirenBoard 7.
После этого прошу сообщить, поднялся ли порт на пустой шине?
Отключил всех абоннентов, оставил только монитор и WB7
согласование в WB и в кабеле с другой стороны, скорость 125 КБит/c (специально поменьше, чтобы облегчить требования к длине линии), Длина линии не более 3-х метров
из /etc/wb-mqtt-serial.conf удалил /dev/ttyRS485-2, ошибки в логе которые Вы обнаружили ушли
IXXAT двух канальный, второй канал подключен чтобы было кому на CAN-сообщение поставить ACK-бит (иначе будет ошибка и повтороная попытка передачи)
в процессе занрузки запущен тест cangen can0 -g 1000 -I 290 -L 8 -D i -v -v