CAN Bus Off на объекте: терминатор, скорость и один плохой узел
Диагностика CAN Bus Off: длина шины, ответвления, терминатор 120 Ом, скорость, ошибки кадра и изоляция неисправного узла. Таблица счётчиков и тестов.

После замены одного частотника на линии упаковки «отвалилась» вся CAN-шина: три привода в Bus Off, на экране авария связи, линия встала. До замены работало годами. Первое, что проверяют, - терминаторы на концах. Второе - скорость 250 кбит/с vs 500. Третье - не остался ли где-то короткий ответвление к старому узлу, который теперь с неправильной прошивкой шлёт мусор в кадре.
CAN на объекте не прощает «сделаем как на схеме примерно». Длина шины, топология, согласование 120 Ом, общая скорость и даже один неисправный трансивер могут увести весь сегмент в Bus Off, хотя остальные узлы исправны. Статья - про диагностику по счётчикам ошибок, физику линии и изоляцию плохого узла. Не сравнивает CAN с Modbus в целом - это в отдельном материале.
Короткий ответ
Состояние CAN Bus Off означает, что узел накопил слишком много ошибок передачи или приёма и отключился от шины, чтобы не мешать остальным. На объекте чаще всего виноваты: отсутствие или дублирование терминатора 120 Ом на концах линии, несогласованная скорость у одного устройства, слишком длинная шина или длинные ответвления, плохой трансивер или кабель на одном узле. Диагностика идёт от физики: измерить сопротивление между CAN_H и CAN_L при обесточенных узлах (~60 Ом на сегменте с двумя терминаторами), сверить bitrate, смотреть счётчики TX/RX errors и Bus Off в мастере или в ПЛК. Плохой узел отключают по одному при согласованной процедуре безопасности. Таблица ниже связывает счётчики с действиями.
Физика шины: длина, ответвления, 120 Ом
CAN - дифференциальная пара CAN_H / CAN_L с волновым сопротивлением около 120 Ом. На концах линейной топологии ставят терминаторы 120 Ом (часто встроены в последние устройства, включаются джампером). На сегменте с двумя активными терминаторами мультиметром между H и L при отключённом питании узлов обычно видят около 60 Ом (два резистора параллельно).
Лишний терминатор в середине - завышенное затухание, искажение фронтов, рост ошибок кадра. Нет терминатора на конце - отражения, нестабильный приём на длинной линии. Оба конца должны быть терминированы один раз каждый.
Длина шины и скорость связаны: на 250 кбит/с допустимо больше метров, на 1 Мбит/с - только короткий сегмент в шкафу. Ответвления (stub) держат короткими - ориентир в практике часто до 30 см от магистрали до трансивера; длинный «хвост» к одному приводу в углу цеха - классический источник ошибок.
Кабель - витая пара, экран по регламенту объекта; трассировка вдали от силовых жгутов. Подробнее про выбор и диагностику линий - «Проводные каналы связи в цехе» и «Промышленные сети Ethernet, RS-485, CAN». Сравнение CAN и RS-485 по узлам и задержкам - CAN против RS-485.
Скорость, идентификаторы и «один плохой узел»
Все узлы сегмента обязаны работать на одной скорости (125, 250, 500 кбит/с и т.д.). Один частотник после обновления прошивки, сброшенный на 125 кбит/с, при 250 на остальных - постоянные ошибки формы кадра; его трансивер может увести и себя, и соседей в Bus Off.
«Плохой узел» - не обязательно мёртвый. Это устройство с неисправным трансивером, КЗ на линии через сгоревшую обвязку, неверной прошивкой, или подключённое при включённой шине без процедуры. Такой узел может доминировать ошибками ACK, ломать целостность кадра или постоянно ретранслировать мусор.
Изоляция: при безопасной остановке процесса отключают по очереди подозрительные узлы (начиная с последнего введённого), наблюдают счётчики ошибок на мастере. Восстановление шины после отключения одного привода - сильный признак виновника. На работающем производстве это только по наряду и с механической безопасностью.
Bus Off в ПЛК и на приводе: что видно в диагностике
Узел в Bus Off перестаёт передавать; приложение видит «нет связи». В диагностике CAN часто доступны: счётчик ошибок передачи (TEC), приёма (REC), флаг Bus Off, последний error code (bit, stuff, CRC, ACK и т.д.). Рост ACK errors при исправной физике иногда указывает на отсутствие любого приёмника с правильной скоростью - «говорим в пустоту».
В проекте ПЛК (CODESYS / MasterSCADA 4D) смотрят статус CAN-мастера, карту PDO/SDO, журнал аварий связи. Если Bus Off только у одного slave в конфигурации - чаще локальная проблема узла или его ответвления. Если падает весь сегмент - магистраль, терминатор, скорость, питание трансиверов.
Повторный вход в шину после Bus Off обычно требует reset узла или цикла питания; автоматический recovery есть не везде. «Перезагрузили ПЛК - заработало на пять минут» - типично при пограничной физике: ошибки копятся снова.
Ошибки кадра: bit, stuff, CRC, ACK
На осциллографе или анализаторе CAN здоровый кадр имеет чёткие фронты дифференциальной пары. Form error - нарушение формата на физическом уровне; часто топология или терминатор. Bit error - узел видит на шине не то, что передал; конфликт или плохой трансивер. Stuff error - реже на объекте. CRC error - помехи или искажение. ACK error - никто не подтвердил кадр: скорость, отсутствие узлов, доминирование ошибочного устройства.
Счётчик растёт монотонно в одном типе - идите по таблице. Смешанные ошибки после механического воздействия на жгут - подозрение на контакт разъёма.
Изоляция неисправного узла без хаоса на пуске
Документируйте топологию до отключений. Начинайте с последнего изменения (новый привод, удлинитель, ремонт кабеля). Отключение узла - только при безопасном состоянии механизма и по наряду. После снятия привода измерьте снова 60 Ом на оставшемся сегменте.
Временный ремонт - шлюз или отдельный сегмент CAN для одного проблемного узла, если прошивку нельзя обновить до согласованной скорости.
Документация as-built для CAN
На схеме должны быть: длина сегмента, скорость, места терминаторов (джампер on/off), тип кабеля. После ремонта в цехе «скрутка на коленке» без записи в as-built - гарантия Bus Off на следующем пуске. Фото клемм CAN с отметками H/L/экран в паспорт шкафа.
При добавлении узла в середину шины пересчитайте: не появился ли третий терминатор, не превышена ли длина для bitrate. Иногда переводят проблемный привод на отдельный CAN-интерфейс ПЛК, оставляя магистраль короткой.
Питание трансиверов и заземление
CAN-трансиверу нужно стабильное питание 5 В или 3,3 В на плате устройства. Просадка при пуске вентилятора или насоса даёт кратковременные ошибки bit. Общая «земля» между узлами - по проекту; разность потенциалов между шкафами без согласованного reference усугубляет ошибки. Экран кабеля - по чек-листу EMC, не как замена терминаторов.
Счётчик ошибок, причина и тест
| Счётчик / симптом | Вероятная причина | Тест |
|---|---|---|
| Много ACK errors на всех узлах | Неверная скорость у мастера или всех slave; обрыв далеко от терминатора | Сверить bitrate везде; осциллограф/анализатор CAN при наладке |
| CRC / form errors | Помехи, длинный stub, лишний/нет терминатора, плохой кабель | 60 Ом H-L; длина ответвлений; экран; отключить узлы по одному |
| TEC растёт у одного узла, остальные OK | Неисправный трансивер этого узла | Замена узла; сравнить ошибки до/после |
| Bus Off после одной замены оборудования | Новый джампер терминатора; другая скорость; два терминатора на приводе | Паспорт привода; один терминатор на конце сегмента |
| Ошибки при пуске механики | EMC, слабое заземление экрана, соседство с силовым | Трасса; заземление в одной точке |
| ~120 Ом между H-L (не 60) | Один терминатор или три и более | Поиск встроенных 120 Ом, джамперы |
| ~30 Ом или ниже | Лишние терминаторы; КЗ на линии | Отключить узлы, мерить по частям |
| Работало в шкафу, в цехе Bus Off | Превышена длина для скорости; ухудшение SNR | Снизить bitrate; повторители/шлюз; топология |
| Периодический Bus Off в жару | Дрейф терминатора/трансивера; плохой контакт клемм CAN | Температурный тест; подтяжка винтов |
Порядок обхода на объекте
Остановите безопасный участок. Зафиксируйте топологию as-built: кто на концах, где джамперы 120 Ом. Обесточьте узлы, измерьте 60 Ом на сегменте. Включите питание, без пуска механики откройте диагностику CAN - базовый уровень ошибок в покое.
Сверьте скорость на каждом устройстве с таблицей проекта. Запустите обмен на минимальной нагрузке; если ошибки растут - отключайте ответвления по плану. Документируйте, какой узел при снятии убирает Bus Off.
После ремонта - прогон под нагрузкой (циклы пуск/стоп, вентиляция, ПЧ), не только «в онлайне ноль ошибок пять секунд».
CANopen и DeviceNet на том же физическом уровне
На объекте встречаются CANopen приводы, датчики, ПЛК-мастер. Идентификаторы и PDO не отменяют правила 120 Ом и bitrate. Ошибки «нет связи с приводом 7» при Bus Off мастера - сначала физика сегмента, потом карта объектов в проекте.
Листинг узлов на анализаторе после восстановления шины помогает убедиться, что все NMT-состояния в Operational. Один slave в Pre-operational при живой шине - иногда прошивка или SDO-настройка, не терминатор.
Ремонт кабеля и разъёмов CAN в цехе
Окисленный M12, вода в сальнике, пережатый жгут у подвеса - Bus Off после дождя или мойки. Визуальный осмотр дешевле недели поиска «плохого привода». При замене кабеля не оставляйте скрутку без согласованного паспорта витой пары; временная скрутка на смену - только с нарядом и планом постоянного ремонта.
Разъём CAN на приводе при вибрации линии расшатывается; фиксируйте контргайкой или хомутом по регламенту производителя. После каждого снятия привода проверяйте, не включили ли терминатор на отключённом устройстве дважды на сегменте.
Запишите в журнал объекта дату измерения 60 Ом и фото джамперов терминаторов после каждого вмешательства в CAN-жгут. Через полгода это сэкономит часы при повторном Bus Off.
Вопросы при работе
Можно ли ставить терминатор в середине шины «для надёжности»?
Нет. Только на физических концах линейной топологии.
Два привода в одном шкафу - два терминатора?
Если они на концах одного сегмента между собой и дальше линия идёт к другим - только два на всём сегменте.
Помогает ли удлинитель USB-CAN на ноутбуке для поиска?
Да, на обесточенном или резервном сегменте - смотреть кадры и ошибки.
Нужен ли отдельный CAN для безопасности?
Зависит от проекта; физика терминаторов та же.
