Воспроизведение данных в TSMaster по умолчанию поддерживает формат BLF (поддержка других форматов добавляется). Для анализа log-файлов других форматов их нужно предварительно сконвертировать в BLF через конвертер файлов. В статье — офлайн- и онлайн-воспроизведение, маппинг каналов, практический кейс фильтрации и разбор типовых проблем.

Ключевые слова: воспроизведение сообщений, BLF, онлайн-воспроизведение, маппинг каналов, Trace.

1. Офлайн-воспроизведение

Офлайн-воспроизведение — это просмотр записанных сообщений. Оно полностью имитирует процесс приёма сообщений: записи можно смотреть прямо в окне Trace, и все свойства окна Trace, включая фильтрацию, остаются действующими.

  1. Шаг 1. Базовая последовательность: выберите «Воспроизведение шины» → «Офлайн-воспроизведение» → файл воспроизведения → временной диапазон → нажмите «Запустить воспроизведение» (рис. 1-1).
  2. Шаг 2. Добавьте файл воспроизведения — из окна воспроизведения (рис. 1-2) или просто перетащив Log-файл с рабочего стола в область окна TSMaster: отпустите кнопку мыши, и TSMaster автоматически воспроизведёт сообщения и добавит файл в окно управления воспроизведением.
  3. Шаг 3. Выберите диапазон сообщений. Окно Trace отображает не более 9999 кадров за раз, поэтому при анализе файла записи диапазон нужно выбирать разумно (рис. 1-3). В новых версиях в модуль воспроизведения добавлен скриптовый модуль для более гибкого анализа.
Базовые шаги офлайн-воспроизведения
Рис. 1-1. Базовые шаги офлайн-воспроизведения
Добавление файла из окна воспроизведения
Рис. 1-2. Добавление файла из окна воспроизведения
Выбор диапазона сообщений
Рис. 1-3. Выбор диапазона сообщений

2. Онлайн-воспроизведение

Онлайн-воспроизведение часто называют «обратной заливкой данных на шину». Для максимальной гибкости предусмотрен следующий интерфейс конфигурации (рис. 2-1):

Интерфейс конфигурации онлайн-воспроизведения
Рис. 2-1. Интерфейс конфигурации онлайн-воспроизведения

Основные параметры конфигурации:

1) Автозапуск онлайн-воспроизведения (рис. 2-2). AutoStart — воспроизведение сообщений запускается автоматически после подключения устройства. Do not auto start — после подключения воспроизведение не запускается, пользователь стартует его сам в окне воспроизведения.

Автозапуск воспроизведения
Рис. 2-2. Настройка автозапуска

2) Число повторов вывода (рис. 2-3). Output only once — воспроизвести один раз. Repetitive output mode — циклическое воспроизведение записи.

Число повторов вывода
Рис. 2-3. Выбор числа повторов

3) Режим вывода (рис. 2-4):

  • Default — TimeStamp As Log File: воспроизведение по меткам времени из Log-файла.
  • Step — Pause after one message is sent: пошаговый режим — по клику пользователя отправляется один кадр из Log-файла.
  • Animated — Apply delay after one message is sent: не по меткам времени Log-файла, а с заданным пользователем интервалом между сообщениями (рис. 2-5 — интервал 10 мс).
Режим вывода
Рис. 2-4. Выбор режима вывода
Интервал 10 мс
Рис. 2-5. Воспроизведение с интервалом 10 мс между сообщениями

4) Режим времени старта (рис. 2-6):

  • Immediately — Direct send the first message: воспроизведение начинается сразу после команды пользователя.
  • As Log File — Send the first message on its timestamp: старт определяется меткой времени Log-файла. Например, если метка первого кадра — 15 с, то после подключения устройства воспроизведение начнётся только после 15 с.
  • Delayed — send the first message after timeout: пользователь задаёт задержку; после подключения устройства воспроизведение начинается по истечении заданного интервала (рис. 2-7 — задержка 100 мс).
Режим времени старта
Рис. 2-6. Выбор режима времени старта
Задержка 100 мс
Рис. 2-7. Старт воспроизведения с задержкой 100 мс

5) Горячие клавиши запуска/паузы (рис. 2-8): например, клавиша S запускает воспроизведение, клавиша P — приостанавливает.

Горячие клавиши
Рис. 2-8. Горячие клавиши запуска и паузы

6) Выбор воспроизводимых сообщений TX/RX (рис. 2-9). Send Tx messages — воспроизведение включает сообщения с направлением «отправка». Do not send Tx messages — сообщения направления «отправка» не воспроизводятся.

Выбор TX/RX
Рис. 2-9. Выбор сообщений TX/RX

7) Выбор каналов воспроизведения. Для гибкости модуль воспроизведения TSMaster поддерживает маппинг каналов. Он решает такие задачи:

Задача 1. Физические каналы уже подключены, но нужно гибко переключать каналы (рис. 2-10). В Log-файле есть данные канала 1 и канала 2; проще всего, когда данные канала 1 воспроизводятся на соответствующем канале инструмента. Если данные канала 2 нужно воспроизвести на канале 1 CAN-инструмента, а данные канала 1 — на канале 2, применяется маппинг (рис. 2-11).

Каналы в Log-файле
Рис. 2-10. Данные двух каналов в Log-файле
Маппинг каналов
Рис. 2-11. Переназначение каналов через маппинг

Задача 2. Не хватает физических каналов: в исходном Log-файле задействованы каналы 1–5, а доступно только 2 канала (рис. 2-12). В этом случае данные каналов 3, 4, 5 воспроизвести некуда. Через маппинг каналов данные любого канала можно направить на любой канал CAN-инструмента (рис. 2-13): каналы 2, 3, 4 — на канал 2 инструмента, каналы 1 и 5 — на канал 1. Интерфейс настройки маппинга — на рис. 2-14.

Пять каналов в Log
Рис. 2-12. В Log-файле пять каналов, доступно два
Маппинг пяти каналов на два
Рис. 2-13. Маппинг пяти каналов данных на два физических
Интерфейс маппинга
Рис. 2-14. Интерфейс маппинга каналов воспроизведения

Source Channel — канал данных в Log-файле. Destination Channel — канал CAN-инструмента в TSMaster. Конфигурация выше означает: данные каналов 1 и 2 из Log-файла воспроизводятся на канале 1 CAN-инструмента, данные канала 3 — на канале 2.

3. Практический кейс: фильтрация сообщений при автоматическом воспроизведении

Автоматическое воспроизведение предоставляет выбор канала, воспроизведение RX/TX и т. д. Но на практике часто нужно воспроизводить лишь часть сообщений или выборочно блокировать часть сообщений. Сообщений может быть очень много, поэтому фильтрация по ID в модуль онлайн-воспроизведения пока не встроена — однако с помощью C-скриптов TSMaster ту же блокировку по ID можно реализовать самостоятельно.

Базовая идея: отправлять сообщения с блокируемыми ID на виртуальный канал — тогда они не попадут на физический канал.

  1. Шаг 1. В конфигурации аппаратного обеспечения TSMaster добавьте канал и выберите его как виртуальный (рис. 3-1).
  2. Шаг 2. Создайте скриптовый модуль с именем OnlineRelayFilter (рис. 3-2).
  3. Шаг 3. Создайте событие PreTX для CAN-сообщения (вызывается до отправки сообщения на шину). Чтобы заблокировать сообщение с ID = 0x1B00000E, создайте событие PreTX для этого сообщения (рис. 3-3).
  4. Шаг 4. Выберите событие и измените канал отправки данного сообщения на канал с номером 2 (нумерация 0, 1, 2), то есть канал 3 (рис. 3-4).
  5. Шаг 5. Запустите скрипт (рис. 3-5).
  6. Шаг 6. Теперь при запуске онлайн-воспроизведения сообщение 0x1B00000E отправляется на виртуальный канал 3, а остальные сообщения — на физические каналы 1 и 2. Так реализуется фильтрация онлайн-воспроизведения. Аналогично, добавляя события Pre_TX для других сообщений, можно отфильтровать любые нужные ID.
Добавление виртуального канала
Рис. 3-1. Добавление виртуального канала
Скрипт OnlineRelayFilter
Рис. 3-2. Скриптовый модуль OnlineRelayFilter
Событие PreTX
Рис. 3-3. Создание события PreTX для блокируемого ID
Смена канала отправки
Рис. 3-4. Перенаправление сообщения на виртуальный канал
Запуск скрипта
Рис. 3-5. Запуск скрипта фильтрации

4. Разбор типовых вопросов

4.1. BLF-файл (с пробелом в имени) не загружается

При загрузке BLF в модуль воспроизведения (офлайн/онлайн) возникает ошибка (рис. 4-1). Причина: в имени BLF-файла не должно быть пробелов. Переименуйте файл, например в TSMaster.blf, — загрузка пройдёт успешно (рис. 4-2).

Ошибка загрузки BLF
Рис. 4-1. Ошибка загрузки BLF-файла с пробелом в имени
Успешная загрузка
Рис. 4-2. Успешная загрузка после переименования

4.2. Как воспроизводить сообщения по времени записи

Для воспроизведения по меткам времени записи выбирайте онлайн-воспроизведение. Офлайн-воспроизведение предназначено для просмотра сообщений — там требование обратное: чем быстрее, тем лучше. Настройки см. в разделе об онлайн-воспроизведении.

4.3. Почему кнопка воспроизведения шины серая (неактивна)

При активном подключении к шине воспроизведение записей недоступно. Нажмите кнопку Stop, остановив работу, — BusReplay станет активной, и можно будет добавлять сообщения для воспроизведения (рис. 4-3, 4-4).

Кнопка BusReplay неактивна
Рис. 4-3. BusReplay неактивна в рабочем состоянии
BusReplay активна после Stop
Рис. 4-4. BusReplay активна после остановки

4.4. Почему TSMaster сразу после подключения отправляет сообщения на шину

TSMaster поддерживает онлайн-воспроизведение данных; для сценария «подключил к шине — сразу воспроизводи» в настройках воспроизведения есть функция автозапуска при подключении. Сначала откройте интерфейс конфигурации онлайн-воспроизведения (рис. 4-5), затем выберите, запускать ли воспроизведение автоматически в момент подключения устройства (рис. 4-6). Если выбрать do not auto start, сообщения при подключении воспроизводиться не будут.

Вход в конфигурацию онлайн-воспроизведения
Рис. 4-5. Вход в конфигурацию онлайн-воспроизведения
Настройка автозапуска
Рис. 4-6. Выбор автозапуска при подключении

4.5. Ошибка канала при воспроизведении

При онлайн-воспроизведении через некоторое время появляется ошибка «channel error» (рис. 4-7). Причина — ошибка маппинга каналов: канал данных из Log-файла не сопоставлен каналу CAN-инструмента. Например, в Log-файле используется канал 2, он смаппирован на канал 2 CAN-инструмента, но в TSMaster канал 2 не сконфигурирован — отправка завершается ошибкой. О маппинге см. выше: «Онлайн-воспроизведение → Выбор каналов». Решение: в интерфейсе конфигурации настройте маппинг (рис. 4-8) — поскольку канала 2 в Destination Channel не существует, Source Channel = 2 также направляется на Destination Channel = 1. После повторного запуска ошибка не возникает.

Ошибка канала
Рис. 4-7. Ошибка «channel error» при воспроизведении
Исправление маппинга
Рис. 4-8. Исправленный маппинг каналов

4.6. Кадры ошибок при онлайн-воспроизведении

Если при воспроизведении на шине сразу идут кадры ошибок, вероятная причина: в Log-файле на разных каналах есть сообщения с одинаковым ID. При воспроизведении они выводятся на одну CAN-шину через разные каналы, возникает конфликт ID кадров, отсюда кадры ошибок и невозможность нормального воспроизведения.

4.7. Зависание онлайн-воспроизведения

Если онлайн-воспроизведение зависает, проверьте, не используется ли виртуальный канал. На некоторых компьютерах поддержка виртуальных каналов работает с проблемами — в этом случае избегайте виртуальных каналов или подключите реальный канал для онлайн-воспроизведения.

4.8. Данные воспроизведения не совпадают со сторонним инструментом

Ситуация: при онлайн-воспроизведении и мониторинге сигналов значение сигнала A на шине не совпадает со значением, разобранным сторонним инструментом (например OE): в TSMaster A = 0.0, в OE A = 0.3. Анализ показал: воспроизводимый BLF-файл содержит данные двух каналов (Channel1 и Channel2), на обоих есть сообщения с одинаковым ID (в том числе с сигналом A), а все значения сообщений канала 2 равны 0. Поэтому при воспроизведении сигнал A, разобранный из канала 2, всегда 0 — и пользователь ошибочно сравнивает значение канала 2 со значением стороннего инструмента. Решение: поскольку значения канала 2 недействительны, заблокируйте воспроизведение канала 2 (рис. 4-9). Совет: при анализе сигналов обращайте внимание на канал и метку времени сообщения — только так данные сопоставимы.

Блокировка канала 2
Рис. 4-9. Блокировка воспроизведения канала 2

4.9. CAN-канал готов, но онлайн-воспроизведение завершается ошибкой

Ситуация: BLF-файл загружен, в сообщениях только канал 1, но воспроизведение не удаётся (рис. 4-10). Причина: онлайн-воспроизведение возвращает записанные сообщения обратно на физическую шину. В данном случае BLF содержит сообщения CAN FD, а аппаратура — классический CAN, поэтому воспроизведение невозможно. Решение: используйте аппаратуру с поддержкой CAN FD; если аппаратура её поддерживает, переключите рабочий режим устройства в CAN FD и повторите воспроизведение.

Ошибка воспроизведения CAN FD
Рис. 4-10. Ошибка: FD-сообщения на классическом CAN