Аннотация |
Анализатор траффика сетевого протокола CANopen позволяет интерпретировать события (протоколы и сетевые объекты), предусмотренные спецификацией CiA DS301 для предопределенного распределения идентификаторов (Pre-defined Connection Set) устройств сети. При этом дополнительно отслеживаются полные транзакции всех SDO протоколов: ускоренного, сегментированного и блочного. Анализатор распространяется в виде дополнительного модуля (DLL Plugin) для программы CANwise версий 3.0 и выше. Документация подготовлена с использованием пакета OpenOffice. |
Принятые сокращения. Изменения в версиях. Инсталляция, запуск и работа с модулем анализатора. События CANopen протокола, регистрируемые анализатором. Коды ошибок CANopen. Предопределенное распределение идентификаторов.
CiA: международная организация CAN in Automation - "CAN в автоматизации". COB-ID: идентификатор коммуникационного объекта. NMT: Сетевой менеджер: определяет объекты управления CANopen сетью. PDO: объект данных процесса; обеспечивает обмен компактными данными в режиме жесткого реального времени. RTR: удаленный запрос объекта. SDO: сервисный объект данных; обеспечивает обмен большими объемами данных в режиме мягкого реального времени.
Регистрируются все события (кадры) CAN сети на канальном уровне. Если кадр не может быть идентифицирован с точки зрения протокола CANopen, то событие интерпретируется как неизвестное (Unknown event). Такая ситуация возникает, если значение COB-ID кадра не соответствует предопределенному распределению идентификаторов CANopen или зарегистрирован кадр расширенного формата (EFF, 29 битовый идентификатор). В предшествующих версиях анализатора большинство неизвестных событий игнорировалось.
Процесс инсталляции заключается в записи модуля CANopenAnalyzer.dll в корневую директорию программы CANwise. При поставке в виде дистрибутива этот модуль извлекается путем запуска программы setup_CANopen_analyzer_vers.exe. Номер версии vers задается в виде 1-2-3, где первое число означает главную версию, второе - подверсию, а третье определяет минимальный релиз данной версии-подверсии.
Модуль анализатора загружается с помощью программы CANwise. Анализ запускается/останавливается при нажатии кнопки Start/Stop в окне CANwise. В окно анализатора выводится до 500 последних сетевых событий (CAN кадров). Число записываемых событий в файл журнала ограничено только максимально возможным размером этого файла.
Вверху окна анализатора размещены три кнопки:
Clear. Очищает все набранные в окне анализатора данные и выводит время и дату начала нового набора. Те же время и дата записываются в файл журнала (если он открыт), причем никаких иных действий с самим файлом не производится.
Open log. Позволяет выбрать и открыть для записи сетевых событий файл журнала.
Close log. Закрывает файл журнала.
Данные выводятся в окно анализатора блоками по две строки на каждое сетевое событие (CAN кадр). В случае, когда событие открывает SDO транзакцию, оно предваряется записью <<<<< SDO transaction begin >>>>>. При завершении SDO транзакции вслед за событием выводится сообщение >>>>> SDO transaction end <<<<<. Строки разбиты на шесть колонок.
В первой колонке размещается порядковый номер зарегистрированного события. Сбрасывается при нажатии кнопки Clear анализатора.
В первой строке второй колонки представлены идентификатор коммуникационного объекта в шестнадцатиричном формате (в случае CANopen протокола должен совпадать с идентификатором CAN кадра); длина поля данных кадра от 0 до 8 байт и номер узла либо "Broadcast" для широковещательного события. Вторая строка содержит описание события (см. ниже отдельные регистрируемые события).
Первая строка третьей колонки содержит класс события (см. ниже классы регистрируемых событий). Во второй строке выводится статус события (см. ниже зарегистрированные ошибки (статус) событий).
Четвертая и пятая колонки содержат наименования и значения параметров, дополнительно характеризующих CANopen событие. Всего может быть выведено до четырех таких описаний (cм. ниже параметры зарегистрированных событий).
В первой строке шестой колонки записываются первичные данные CAN кадра. Они представляются побайтно в шестнадцатиричном формате. Для кадров удаленного запроса RTR выводится только его длина. Вторая строка содержит идентификатор CAN кадра и его временную метку.
Структура записи данных в файл журнала полностью аналогична записи в окно анализатора.
Анализатора отслеживает контекст каждой SDO транзакции от ее инициализации клиентом и до полного завершения. При этом независимо контролируются некоторые параметры протокола и оценивается правильность прохождения основных этапов обмена данными. Нарушения в работе протокола отображаются статусом соответствующего события (см. ниже зарегистрированные ошибки (статус) событий).
NMT: Протоколы поддержки сети Network Management Protocols.
ECP: Протоколы контроля ошибок Error Control Protocols.
BOOTUP: Протокол загрузки узла Bootup.
SYNC: Объект синхронизации Synchronisation Object.
TIME: Объект временной метки Time Stamp Object.
EMCY: Объект срочных сообщений Emergency Object.
SDO_CLIENT: Объект SDO протокола, направляемый от клиента серверу.
SDO_SERVER: Объект SDO протокола, направляемый от сервера клиенту.
PDO: Объекты PDO.
RTR for PDO: Удаленный запрос для PDO.
RTR Node Guard: Удаленный запрос для протокола охраны узла.
LSS: Событие LSS протокола (сервисы установки уровня, стандарт CiA DSP305).
???: Событие не относится к CANopen протоколам.
Start Remote Node: команда запуска удаленного узла в NMT протоколе управления модулями сети.
Stop Remote Node: команда останова удаленного узла в NMT протоколе управления модулями сети.
Enter Pre-Operational: команда перехода удаленного узла в предоперационный режим в NMT протоколе управления модулями сети.
Reset Node: команда полного перезапуска удаленного узла в NMT протоколе управления модулями сети.
Reset Communication: команда перезапуска подсистемы коммуникаций удаленного узла в NMT протоколе управления модулями сети.
Stopped node state: остановленное состояние узла в NMT протоколе контроля ошибок.
Operational node state: операционное состояние узла в NMT протоколе контроля ошибок.
Pre-operational node state: предоперационное состояние узла в NMT протоколе контроля ошибок.
Synchronisation object: объект синхронизации (SYNC протокол).
Time stamp object: объект временной метки (TIME протокол).
Emergency object: объект срочного сообщения (EMCY протокол).
Transmit PDO 1: первый передаваемый PDO объект (PDO протокол).
Receive PDO 1: первый принимаемый PDO объект (PDO протокол).
Transmit PDO 2: второй передаваемый PDO объект (PDO протокол).
Receive PDO 2: второй принимаемый PDO объект (PDO протокол).
Transmit PDO 3: третий передаваемый PDO объект (PDO протокол).
Receive PDO 3: третий принимаемый PDO объект (PDO протокол).
Transmit PDO 4: четвертый передаваемый PDO объект (PDO протокол).
Receive PDO 4: четвертый принимаемый PDO объект (PDO протокол).
Abort SDO transfer: запрос прекращения SDO обмена (Abort SDO transfer протокол).
SDO command: обнаружен не верный либо неизвестный код SDO команды. Это событие сопровождается сообщением об ошибке "Error command".
Initiate expedited download: инициирование ускоренного SDO протокола для передачи данных от клиента к серверу. Запрос от клиента и ответ сервера.
Initiate segmented download: инициирование сегментированного SDO протокола для передачи данных от клиента к серверу. Запрос от клиента и ответ сервера.
Segmented download data: передача сегмента данных от клиента к серверу в рамках сегментированного SDO протокола. Запрос от клиента и ответ сервера.
Initiate block download: инициирование блочного SDO протокола для передачи данных от клиента к серверу. Запрос от клиента и ответ сервера.
Block download data: передача блока данных от клиента к серверу в рамках блочного SDO протокола. Запросы от клиента.
Block download segment ack: подтверждение приема блока данных со стороны cервера в рамках блочного SDO протокола. Ответ сервера.
End block download: завершение блочного SDO протокола при передачи данных от клиента к серверу. Запрос от клиента и ответ сервера.
Initiate upload: инициирование ускоренного либо сегментированного SDO протокола для передачи данных от сервера клиенту. Запрос от клиента и ответ сервера.
Expedited upload response: передача данных в рамках ускоренного SDO протокола от сервера клиенту. Ответ сервера.
Segmented upload data: передача сегмента данных от сервера клиенту в рамках сегментированного SDO протокола. Запрос от клиента и ответ сервера.
Initiate block upload: инициирование блочного SDO протокола для передачи данных от сервера клиенту. Запрос от клиента и ответ сервера.
Start block upload: запрос на передачу данных от сервера клиенту в рамках блочного SDO протокола. Запрос от клиента.
Block upload data: передача блока данных от сервера клиенту в рамках блочного SDO протокола. Запросы от сервера.
Block upload segment ack: подтверждение приема блока данных со стороны клиента в рамках блочного SDO протокола. Ответ клиента.
End block upload: завершение блочного SDO протокола при передачи данных от сервера клиенту. Запрос от сервера и ответ клиента.
LSS slave response: Ответ от LSS slave.
LSS master request: Запрос от LSS master.
Unknown event: неизвестное событие. Кадр не может быть идентифицирован с точки зрения протокола CANopen. Например, значение COB-ID кадра не соответствует предопределенному распределению идентификаторов CANopen или зарегистрирован кадр расширенного формата (EFF, 29 битовый идентификатор).
Application objdict index: значение индекса объектного словаря приложения Используется в протоколах SDO.
Application objdict sub-index: значение субиндекса объектного словаря приложения. Используется в протоколах SDO.
Toggle bit value: значение мерцающего бита. Используется в сегментированном SDO протоколе.
Ms of the TIME_OF_DAY: время в милисекундах после полуночи для типа данных TIME_OF_DAY.
Days of the TIME_OF_DAY: число дней от 01 января 1984 г. для типа данных TIME_OF_DAY.
Error code: значение кода ошибки в объекте срочного сообщения Emergency.
Error register: значение регистра ошибки в объекте срочного сообщения Emergency.
Abort code: значение abort кода в запросе прекращения SDO обмена (Abort SDO transfer протокол).
Command specifier: код команды в SDO протоколах.
Segment data size in bytes: размер сегмента данных в одном кадре SDO протокола (1..7).
Remained to transfer bytes: объем данных в байтах, который осталось передать в рамках полной SDO транзакции.
Last segment flag: флаг последнего сегмента данных в SDO протоколах.
Block sequence number: счетчик номера кадра в сегменте данных блочного SDO протокола.
Acknowledged sequence number: номер успешно принятого кадра в сегменте данных блочного SDO протокола.
Block size: размер блока - число кадров данных, которое должно использоваться при передаче очередного сегмента в рамках блочного SDO протокола (1..127).
Block protocol CRC flag: флаг подсчета CRC для блочного SDO протокола.
OK: нет ошибки.
Error command: ошибка кода команды в SDO протоколах.
Error toggle: ошибка значения мерцающего бита в сегментированном SDO протоколе.
Error datasize: ошибка указания числа байт данных в кадре сегментированного SDO протокола.
Error sub-command: ошибка субкоманды блочного SDO протокола.
Error block size: ошибка размера блока для блочного SDO протокола. Должен быть в пределах 1..127.
Error sequence number: ошибка значения счетчика номера кадра в сегменте данных блочного SDO протокола.
SDO context was not registered: контекст SDO транзакции не зарегистрирован. Ошибка возникает при не верном коде команды в запросе инициализации SDO протокола от клиента (контекст не может быть зарегистрирован). Ошибка возникает, когда ответ сервера не был предварен соответствующим запросом клиента (контекст не был зарегистрирован ранее).
CAN frame length error: ошибка длины данных CAN кадра.
Warning block protocol rollback: предупреждение о штатном откате блочного SDO протокола.
Аборт код |
Описание |
0503 0000h |
Не изменился мерцающий (toggle) бит. |
0504 0000h |
Тайм-аут SDO протокола. |
0504 0001h |
Не верная либо не известная команда протокола. |
0504 0002h |
Не верный размер блока данных (только для блочного протокола). |
0504 0003h |
Не верный номер кадра (только для блочного протокола). |
0504 0004h |
Ошибка CRC (только для блочного протокола). |
0504 0005h |
Не хватает памяти. |
0601 0000h |
Запрашиваемый доступ к объекту не поддерживается. |
0601 0001h |
Попытка чтения только записываемого (WO) объекта. |
0601 0002h |
Попытка записи только читаемого (RO) объекта. |
0602 0000h |
Нет такого объекта. |
0604 0041h |
Объект не может быть отображен в PDO. |
0604 0042h |
Полная длина отображаемых объектов превышает максимальный размер PDO (64 бита). |
0604 0043h |
Общая несовместимость параметров. |
0604 0047h |
Общая внутренняя несовместимость в устройстве. |
0606 0000h |
Отказ в доступе из-за аппаратной ошибки. |
0607 0010h |
Неподходящий тип данных или длина сервисного параметра. |
0609 0030h |
Значение параметра вне диапазона (только для записи данных). |
0609 0031h |
Значение параметра превышает верхний предел. |
0609 0032h |
Значение параметра превышает нижний предел. |
0609 0036h |
Максимальное значение меньше минимального. |
0800 0000h |
Общая ошибка. |
0800 0020h |
Данные не могут быть переданы приложению. |
0800 0021h |
Данные не могут быть переданы приложению из-за особенностей локального управления. |
0800 0022h |
Данные не могут быть переданы приложению вследствие текущего состояния устройства. |
0800 0023h |
Не удалось динамически сгенерировать объектный словарь или нет объектного словаря. |
0800 0024h |
Нет данных. |
Код ошибки (hex) |
Назначение |
00xx |
Сброс либо отсутствие ошибки. |
10xx |
Общая ошибка. |
20xx |
Ток. |
21xx |
Ток на входе в устройство. |
22xx |
Ток внутри устройства. |
23xx |
Выходной ток. |
30xx |
Напряжение. |
31xx |
Напряжение питания. |
32xx |
Напряжение внутри устройства. |
33xx |
Выходное напряжение. |
40xx |
Температура. |
41xx |
Температура окружающей среды. |
42xx |
Температура устройства. |
50xx |
«Железо» устройства. |
60xx |
Программное обеспечение устройства. |
61xx |
Встроенное программное обеспечение. |
62xx |
Программное обеспечение пользователя. |
63xx |
Данные. |
70xx |
Дополнительные модули. |
80xx |
Мониторинг. |
81xx |
Коммуникации. |
8110 |
Переполнение CAN (потеря объекта) |
8120 |
CAN в пассивном к ошибке состоянии. |
8130 |
Ошибка протокола охраны работоспособности устройства либо протокола сердцебиения. |
8140 |
Выход из состояния отключение от шины (bus-off). |
8150 |
Коллизия передаваемых COB-ID идентификаторов. |
82xx |
Ошибка протокола |
8210 |
PDO не может быть обработано из-за ошибки длины данных. |
8220 |
Превышен превышает максимальный размер PDO (64 бита). |
90xx |
Внешняя ошибка. |
F0xx |
Дополнительные функции. |
FFxx |
Определяется конкретным типом устройства. |
Идентификатор широковещательных объектов не зависит от номера узла CAN сети.
COB-ID |
Назначение |
Индекс объекта |
0 |
NMT объекты. |
--- |
128 (80h) |
Объект синхронизации SYNC. |
1005h, 1006h |
256 (100h) |
Объект временной метки Time Stamp. |
1012h, 1013h |
Идентификатор объектов равный-к-равному зависит от номера узла CAN сети.
COB-ID |
Назначение |
Индекс объекта |
129 (81h) – 255 (FFh) |
Объекты срочного сообщения (EMCY) для узлов сети 1-127. |
1014h, 1015h |
385 (181h) – 511 (1FFh) |
Первые передаваемые PDO (TPDO1) для узлов сети 1-127. |
1800h |
513 (201h) – 639 (27Fh) |
Первые принимаемые PDO (RPDO1) для узлов сети 1-127. |
1400h |
641 (281h) – 767 (2FFh) |
Вторые передаваемые PDO (TPDO1) для узлов сети 1-127. |
1801h |
769 (301h) – 895 (37Fh) |
Вторые принимаемые PDO (RPDO1) для узлов сети 1-127. |
1401h |
897 (381h) – 1023 (3FFh) |
Третьи передаваемые PDO (TPDO1) для узлов сети 1-127. |
1802h |
1025 (401h) – 1151 (47Fh) |
Третьи принимаемые PDO (RPDO1) для узлов сети 1-127. |
1402h |
1153 (481h) – 1279 (4FFh) |
Четвертые передаваемые PDO (TPDO1) для узлов сети 1-127. |
1803h |
1281 (501h) – 1407 (57Fh) |
Четвертые принимаемые PDO (RPDO1) для узлов сети 1-127. |
1403h |
1409 (581h) – 1535 (5FFh) |
SDO, передаваемые от сервера клиенту для узлов сети 1-127. |
1200h |
1537 (601h) – 1663 (67Fh) |
SDO, передаваемые от клиента серверу для узлов сети 1-127. |
1200h |
1793 (701h) – 1919 (77Fh) |
Протоколы контроля ошибок - сердцебиения и охраны узла - для узлов сети 1-127. |
1016h, 1017h |
COB-ID |
Назначение |
2020 |
Ответ от LSS slave (сервис установки уровня). |
2021 |
Запрос от LSS master (сервис установки уровня). |
Идентификаторы ограниченного использования не должны применяться в любых конфигурируемых коммуникационных объектах, будь то SYNC, TIME-STAMP, EMCY, PDO или дополнительные SDO.
COB-ID |
Назначение |
0 |
NMT объекты. |
1 |
Зарезервирован. |
257 (101h) – 384 (180h) |
Зарезервированы. |
409 (581h) – 1535 (5FFh) |
SDO по умолчанию, передаваемые от сервера клиенту. |
1537 (601h) – 1663 (67Fh) |
SDO по умолчанию, передаваемые от клиента серверу. |
1760 (6E0h) |
Зарезервирован. |
1793 (701h) – 1919 (77Fh) |
Протоколы контроля ошибок. |
2020 (780h) – 2047 (7FFh) |
Зарезервированы. |