Skip to content

Поля фильтра CANopen ​

Выберите профиль CANopen и уровень Protocol. Для исходных идентификаторов, RTR и полного содержимого CAN-кадра используйте уровень Physical и каталог CAN.

Каталог ​

ПолеТипЗначение и применимость
protocol.typeСтрокаТип прикладного протокола: canopen
canopen.typeСтрокаСемейство сообщения; значения перечислены ниже
canopen.nodeIdЦелоеУзел сообщения. Для команды NMT — целевой узел; 0 у NMT означает обращение ко всем узлам
canopen.canIdЦелоеCAN-идентификатор сообщения
canopen.indexЦелоеИндекс объекта SDO/USDO, если сообщение содержит ключ объекта
canopen.subIndexЦелоеПодындекс объекта SDO/USDO при наличии ключа
canopen.requestЛогическоеРоль запроса для SDO/USDO, когда она определена
canopen.responseЛогическоеРоль ответа для SDO/USDO, когда она определена
canopen.abortCodeЦелоеКод прерывания; только в сообщениях прерывания SDO/USDO
canopen.nmtCommandЦелоеКод команды; только в сообщениях NMT
canopen.emcyCodeЦелоеКод аварии; только в сообщениях EMCY
canopen.dataБайтыУ SDO/USDO — передаваемые данные сообщения, у PDO — его полезные данные, у остальных типов — данные сообщения

У сообщения PDO нет полей index и subIndex, даже если его значения расшифрованы через описание устройства. Эти поля фильтра относятся к ключу объекта SDO/USDO. Фильтр по имени декодированного PDO-сигнала или его физическому значению в текущем каталоге отсутствует. Семантика сравнения с отсутствующим полем описана в справочнике языка.

Типы сообщений ​

protocol.type == canopen выбирает протокол целиком; canopen.type различает семейства его сообщений. Подсказка canopen у protocol.type появляется при наличии сообщений в текущей трассе. Список семейств canopen.type приведён ниже и не зависит от состава трассы.

Значение canopen.typeСообщения
nmtУправление состоянием сети
syncСинхронизация
timeВремя
bootupЗапуск узла
heartbeatСообщения состояния узла
nodeGuardРаспознанный обмен Node Guarding
emcyАварийное сообщение
sdoОбмен SDO
pdoДанные процесса PDO
usdoОбмен USDO в CANopen FD

Если сообщение нельзя отнести к известному семейству, используется unknown. Разделение Heartbeat и Node Guarding зависит от наблюдаемого кадра: не всякий ответ контроля состояния однозначно различим без контекста.

USDO относится к CANopen FD; поддержку адаптера и узла проверяйте отдельно — см. границы поддержки CAN FD.

Примеры ​

Все распознанные сообщения узла 5:

text
canopen.nodeId == 5

Широковещательная команда NMT имеет целевой узел 0 и в такую выборку не попадёт. Чтобы увидеть и её:

text
canopen.nodeId == 5 or (canopen.type == nmt and canopen.nodeId == 0)

Обращения к объекту 0x1018:1:

text
canopen.nodeId == 5 and canopen.type == sdo and canopen.index == 0x1018 and canopen.subIndex == 1

В сегментах без ключа объекта эти поля отсутствуют. Для всей передачи используйте более широкий фильтр:

text
canopen.nodeId == 5 and canopen.type == sdo

Прерывания SDO/USDO:

text
exists(canopen.abortCode)

Аварийные сообщения узла:

text
canopen.nodeId == 5 and canopen.type == emcy

PDO по конкретному CAN ID:

text
canopen.type == pdo and canopen.canId == 0x185

Код NMT 0x01 для узла 5 или всей сети:

text
canopen.type == nmt and canopen.nmtCommand == 0x01 and canopen.nodeId in (0, 5)

У NMT нет роли SDO/USDO-запроса. Не добавляйте canopen.request == true, если хотите найти команды NMT.

Подробнее: состояние узла, обращения к объектам и данные PDO.

Protohaund — независимый программный продукт, не связанный ни с одной из упомянутых в приложении сторонних организаций, не одобренный, не спонсируемый и не сертифицированный ими.Сторонние названия, товарные знаки, наименования продуктов и устройств, названия протоколов и стандартов упоминаются исключительно для указания применимости к автомобилям, поддерживаемых продуктов, технологий, протоколов, форматов или совместимости.Все сторонние товарные знаки и иные обозначения принадлежат соответствующим правообладателям. Их использование не означает какой-либо связи Protohaund с этими правообладателями, а также одобрения или сертификации Protohaund с их стороны.Совместимость ограничена функциями, устройствами, протоколами, стандартами и версиями, явно указанными в документации Protohaund.