В первой части мы разобрали создание UDS-диагностического модуля и базовую конфигурацию диагностики в TSMaster. Во второй части — диагностическая консоль, автоматические диагностические процессы, регистрация системных переменных и практические сценарии: чтение VIN и Flash Bootloader без единой строки кода.
Ключевые слова: UDS, BootLoader, автоматический диагностический процесс, диагностические системные переменные.
1. Диагностическая консоль TSMaster
Диагностическая консоль — это отладчик диагностических команд: можно выбрать любую сервисную команду, отредактировать отправляемое и ожидаемое сообщение и проверить ответ ЭБУ. Консоль состоит из четырёх рабочих областей: выбор сервисной команды, ручной ввод команды, область отправки/ответа и область диагностической информации (рис. 4-1).

1.1. Область выбора сервисных команд
Содержит список исполняемых сервисов, сформированный из базовой конфигурации или загруженной базы ODX/PDX. Сервис выполняется двойным кликом или через контекстное меню (рис. 4-2).

1.2. Область ручного ввода команд
Если в процессе теста нужно отправить произвольную диагностическую команду — введите сообщение вручную и нажмите Execute. Для гибкости можно выбрать отправку по физическому адресу или по функциональному ID (рис. 4-3).

1.3. Область отправки/ответа диагностических команд
Здесь редактируются отправляемые и ожидаемые данные: запустите выполнение и проверьте, соответствует ли ответ тестируемого ЭБУ требованиям, а также синхронизируются ли диагностические системные переменные (рис. 4-4).

1.4. Область диагностической информации
Разделена на информацию сервисного уровня и поток данных ISO 15765-2. Сервисный уровень показывает шаги операций диагностического модуля и ответы (рис. 4-5); при отрицательном ответе или его отсутствии выводится сообщение об ошибке (рис. 4-6).


Поток ISO 15765-2 показывает детальные сообщения сервисного уровня. Вместе с загруженной диагностической базой сырые данные разбираются в физические сигналы — например, для сервиса 22 видны разобранные параметры ответа (рис. 4-7).

2. Автоматические диагностические процессы и регистрация системных переменных
2.1. Создание и управление процессами
Автоматические диагностические процессы TSMaster управляются на уровне всего проекта, а не отдельного приложения: под проект настраиваются группы диагностических процессов, в каждой группе — несколько процессов, в каждом процессе — конкретные диагностические шаги.
Щелчок правой кнопкой в панели управления UDS-процессами открывает меню управления сценариями (рис. 5-1):

- Переключить UDS-процесс — перейти к выбранному узлу (то же по двойному клику; активный узел подсвечен синим, справа раскрываются его шаги — рис. 5-2);
- Запустить UDS-процесс — шаги выполняются автоматически сверху вниз;
- Прервать UDS-процесс — остановить выполняющийся процесс;
- Добавить группу процессов — например Test Group1; группа содержит сценарии, но не шаги;
- Добавить новый тестовый процесс — сценарий, внутри которого добавляются шаги;
- Изменить имя — правка имени группы или сценария;
- Зарегистрировать системную переменную — для выбранного сценария;
- Отменить регистрацию системной переменной;
- Удалить выбранное / удалить всё.

2.2. Настройка автоматического диагностического процесса
Процессы можно группировать, задавать циклическое выполнение и регистрировать системные переменные для внешнего вызова. Панель инструментов конфигурации (рис. 5-3), слева направо: [1] новая группа процессов; [2] новый сценарий; [3] удалить выбранное; [4] запустить настроенный процесс; [5] прервать выполняющийся; [6] заблокировать/разблокировать область конфигурации; [7] выбрать/снять выбор всех процессов; [8] включить заданное число циклов; [9] счётчик фактических выполнений.

В области UDS-процессов создайте процесс (правая кнопка), перейдите в него двойным кликом, разблокируйте редактор и задайте число циклов (по умолчанию циклы выключены) — рис. 5-4. Затем правой кнопкой добавляйте и удаляйте шаги (рис. 5-5): [1] выберите узел процесса слева; [2] добавляйте/редактируйте шаги справа; [3] выберите тип шага; [4] задайте имя; [5] тип адресации — физическая или функциональная; [6] пакет диагностического запроса; [7] ожидаемый пакет ответа; [8] пауза после шага; [9] обработка ошибки шага.


2.3. Типы диагностических шагов
Доступны 4 типа шагов, покрывающие основные сценарии диагностики (рис. 5-6):

- Обычный шаг — для простых пар «запрос–ответ»: в запросе укажите отправляемые данные (например
[10 01]), в ответе — ожидаемые (например[50 01 12 34]). Если ответ не нужен, проверку ответа можно отключить (рис. 5-7). - Выбрать существующую конфигурацию — использовать сервис, уже настроенный в базовой диагностике. Рекомендуемый способ в TSMaster (рис. 5-8).
- Seed&Key — достаточно выбрать уровень seed и key; DLL дешифрования берётся из настроек транспортного уровня (рис. 5-9). Поэтому и в консоли, и в автопроцессах сначала настраивается транспортный уровень.
- Tester Present — команды включения/выключения «тестер онлайн» с настройкой данных и периода (рис. 5-10, 5-11).





2.4. Интервал между шагами
Задержка между шагами процесса настраивается в миллисекундах (рис. 5-12).

2.5. Свойства (обработка ошибок)
В свойствах задаётся поведение при ошибке ответа: остановить или продолжить выполнение (рис. 5-13). В планах развития TSMaster — переход при ошибке к указанному процессу (например, к процессу стирания) для ещё более гибких сценариев.

2.6. Включение шагов и порядок выполнения
Нужные шаги отмечаются флажками слева (рис. 5-14). Порядок выполнения — групп, сценариев и отдельных шагов — меняется простым перетаскиванием.

3. Встроенные системные переменные диагностического модуля
После добавления базового диагностического модуля менеджер системных переменных автоматически создаёт переменные с владельцем Diagnostic — через них настраиваются соответствующие параметры (рис. 5-15).

3.1. Общие системные переменные
ExportProject/ImportProject— экспорт и импорт диагностического проекта;TesterIsPresent— включение команды «тестер онлайн»;DLC— максимальный DLC кадров FD (только в режиме FD);STMin (R)/STMin (T)— минимальный интервал consecutive frame при приёме/передаче, мс; 0 — минимально возможный;User Define STMin— ручное задание интервала consecutive frame;FiledByte— байт-заполнитель диагностических кадров;FunctionalIDType/FunctionalID,ResIDType/ResID,ReqIDType/ReqID— типы (0 — стандартный, 1 — расширенный) и значения функционального ID, ID ответа и ID запроса;BusType— тип шины: 0 — CAN, 1 — CAN FD, 2 — LIN, 3 — DoIP;Chn— канал диагностического модуля (0 — канал 1, 1 — канал 2…);UDSProgress— ход выполнения автопроцесса в реальном времени;SeedAndKeyDLL— абсолютный путь к DLL Seed&Key (следите за экранированием);P2Extended,P2TimeOut,S3ServerTime,S3ClientTime— таймеры сервисного уровня.
3.2. Переменные конкретных сервисов
После добавления составного сервиса в базовой конфигурации создаётся переменная ИмяСервиса_DataFile — абсолютный путь к файлу скачивания; её изменение переключает загружаемый файл (рис. 5-16). При загрузке файла генерируются переменные контрольных сумм блоков и файла, начального адреса и длины. Если эти переменные связаны с базовым сервисом, при замене файла они обновятся автоматически — файл переключается с минимальной правкой проекта.

3.3. Регистрация системных переменных автопроцесса
Настроенный в консоли сервис запускается двойным кликом. Чтобы запускать процесс из панели (Panel) или из программы:
- В окне Basic Diagnostic Config выберите сервис и через правую кнопку зарегистрируйте его как системную переменную (рис. 5-17). У зарегистрированного процесса значок дополняется тремя цветными точками (рис. 5-18).
- В менеджере системных переменных появятся
Имя_StartиИмя_Result(рис. 5-19). Значения_Result: 0 — простой, 1 — выполняется, 2 — успешно, 3 — ошибка. Значения_Start: >0 — запуск процесса, =0 — прерывание, <0 — недопустимый параметр. - Добавьте на панель кнопку, свяжите её с переменной
Имя_Startи назначьте событию нажатия значение 1 (рис. 5-20). - Запустите программу: нажатие кнопки записывает 1 в
Имя_Start, и модуль выполняет диагностический процесс.




4. Типовые применения
4.1. Чтение VIN автомобиля
Автопроцесс для чтения VIN «в одну кнопку» с разбором ответа (рис. 6-1): [1] переход в расширенную сессию; [2] получение доступа через Seed&Key; [3] обычная команда чтения VIN; либо [4] ранее настроенная команда с разбором данных.

Ответ: VIN успешно прочитан; шаг «выбрать существующую конфигурацию» сразу показывает разобранное значение — «E8880003CED05909» (рис. 6-2).

4.2. Процесс Flash Bootloader
Соберём простой процесс Flash Bootloader на диагностическом модуле TSMaster. Типовая структура — три фазы: предпрограммирование (серый), основное программирование (фиолетовый) и постпрограммирование (голубой) — рис. 6-3. Под конкретный ЭБУ процесс корректируется по его спецификации.

Предпрограммирование. [1] Создайте UDS-процесс; редактор должен быть разблокирован, иначе шаги не добавить (рис. 6-4). [2] Переход в расширенную сессию, отключение DTC и управление приёмом — обычными шагами (рис. 6-5). [3] Чтение DID F188 и сравнение с «SN123456»: совпало — дальше, нет — выход. Способ 1 — обычный шаг (рис. 6-6); способ 2 — настроить в BasicConfig и выбрать существующую конфигурацию (рис. 6-7).




Основное программирование. [4] Переход в программную сессию (рис. 6-8). [5] Шаг Seed&Key — разблокировка ЭБУ (рис. 6-9). [6] Запись строки «SN1234» в DID F190 — фиксированная строка настраивается обычным шагом (рис. 6-10). [7] Процессы файлов FlashDriver и приложения: сначала добавьте файлы в базовой конфигурации (рис. 6-11), затем выберите в автопроцессе созданный составной сервис скачивания (рис. 6-12). [8] Стирание Flash через Routine Control: настройте команду стирания в базовой конфигурации, передав стартовый адрес и длину системными переменными (рис. 6-13), и добавьте её в процесс через существующую конфигурацию (рис. 6-14). [9] Перезапуск ЭБУ: пауза между ECUReset и возобновлением диагностики задаётся по спецификации ЭБУ, например 1000 мс (рис. 6-15).








Постпрограммирование. [10] Возврат в сессию по умолчанию, управление COM и DTC — обычными шагами (рис. 6-16).

Итоговая конфигурация процесса — на рис. 6-17. Запуск одной кнопкой: шаги с положительным ответом подсвечиваются зелёным (рис. 6-18).


На диагностическом модуле TSMaster разработка процессов вроде Bootloader становится быстрой задачей без единой строки кода.
Первая часть: руководство по CAN UDS-диагностике в TSMaster, часть 1.