Рост числа электронных модулей, потоки данных ADAS и беспилотного вождения, требования реального времени и вызовы информационной безопасности OTA повышают требования к инструментарию симуляции, тестирования, диагностики и калибровки шин. Разбираем, как с помощью системных переменных TSMaster запускать функции калибровки и диагностики.
Ключевые слова: TSMaster, системные переменные, калибровка XCP/CCP, A2L, диагностика, вторичная разработка, TSMaster API.
1. Обзор калибровки и диагностики
1.1. Калибровка
- Калибровка XCP/CCP. Калибровкой называется процесс динамической подстройки внутренних параметров контроллера по протоколу CCP или XCP. CCP — протокол калибровки на шине CAN; XCP — универсальный протокол измерения и калибровки, развитие CCP, применимый к разным шинам.
- Особенности: оба протокола работают в режиме «ведущий-ведомый» — один ведущий узел общается с несколькими ведомыми одновременно; ведущий командами устанавливает соединение, разблокирует доступ, читает данные и изменяет параметры. В связке с A2L-файлом протоколы XCP/CCP позволяют менять параметры прямо в программе, а исполнительные механизмы сразу реагируют на изменения. Модуль калибровки TSMaster использует два типа файлов (A2L и др.) и ЭБУ с работающим стеком XCP или CCP.
1.2. Диагностика
TSMaster предоставляет базовые функции диагностической консоли: пользователь настраивает собственные запросы и ответы. Поддерживаются CAN/CAN FD/LIN и UDS BootLoader (рис. 1-1, 1-2). Подробнее о калибровке — в статье «Функции калибровки CCP/XCP в TSMaster».


2. Работа с калибровкой и диагностикой
2.1. Создание калибровки в TSMaster
- Шаг 1. Создайте новый проект или пустой проект (затем выберите место сохранения) — рис. 2-1.
- Шаг 2. Откройте «Приложение» → «Менеджер калибровки» → «Конфигурация устройств» (правой кнопкой — «Создать ЭБУ»), введите имя ЭБУ и подтвердите — калибровка создана (рис. 2-2).


2.2. Создание диагностики в TSMaster
Откройте «Diagnostic ISO TP» → «Добавить Diagnostic» — появится новое диагностическое окно (рис. 2-3).

2.3. Запуск калибровки через системные переменные
- Шаг 1. Выберите драйвер: нажмите XCP, чтобы выбрать протокол XCP/CCP (рис. 2-4).
- Шаг 2. Выберите базу данных и импортируйте A2L-файл. После успешного импорта информация доступна в памяти протокола базы данных и списке измерений (рис. 2-5).
- Шаг 3. Если требуется алгоритм безопасности, откройте «Протокол» → «Seed&Key DLL» и импортируйте файл (рис. 2-6).
- Шаг 4. Выберите логический канал и настройте отображение адресов памяти (рис. 2-7, 2-8).
- Шаг 5. Нажмите «Подключить ЭБУ» → «Запустить онлайн-измерение калибровки» — соединение установлено. При ошибке подключения проверьте логический канал и настройки памяти (рис. 2-9).
- Шаг 6. В базе данных выберите сигнал PWM: правой кнопкой его можно добавить в «Стимуляцию сигналов», «График», «Панель» или «Числовое отображение» (рис. 2-10).
- Шаг 7. Меняя значение в «Стимуляции сигналов» или переменную панели, вы изменяете значение сигнала — график и числовое отображение показывают, что сигнал изменён (рис. 2-11).
- Шаг 8. Значение переменной можно менять и из C-скрипта: откройте «Системные переменные» и выберите переменную (рис. 2-12).
- Шаг 9. Скопируйте код записи (рис. 2-13, 2-14).
- Шаг 10. Через C-скрипт и функцию Step реализуйте, например, инкремент значения каждую секунду (рис. 2-15).












2.4. Запуск диагностики через системные переменные
- Шаг 1. В окне диагностики откройте форму BasicConfig, выберите целевой сервис и через правую кнопку зарегистрируйте его как системную переменную — переменная появится в списке системных переменных (рис. 2-16).
- Шаг 2. Добавьте на панель кнопку, свяжите её с этой переменной; меняя значение на панели, наблюдайте изменение в графике (рис. 2-17).
- Шаг 3. Из C-скрипта переключайте переменную между 0 и 1 — результат виден в графике и на панели (рис. 2-18).



3. Вторичная разработка
TSMaster поддерживает вторичную разработку на других языках. В примере калибровка реализуется вызовом TSMaster API из C# в Visual Studio 2019.
- Шаг 1. Создайте новый проект: C# → «Приложение Windows Forms» → «Далее» (рис. 3-1).
- Шаг 2. Задайте имя проекта и место хранения → «Создать» (рис. 3-2).
- Шаг 3. Подключите файл TSMaster.dll: «Ссылки» → «Добавить ссылку», выберите DLL и подтвердите (рис. 3-3, 3-4).
- Шаг 4. Откройте подключённую библиотеку и просмотрите функции вызова TSMaster (рис. 3-5).
- Шаг 5. Добавьте класс TSCalibration: «Добавить» → «Класс», измените имя → «Добавить» (рис. 3-6).
- Шаг 6. Импортируйте типы, определённые TSMaster (рис. 3-7).
- Шаг 7. Через public создайте два метода — чтение и запись (рис. 3-8).
- Шаг 8. Откройте в TSMaster «Симуляция» → «Системные переменные» → «Внутренние переменные» и прокрутите список вниз: видны состояние контроллера калибровки (
Calibration.Status) и состояние регистров автоматизации контроллера калибровки (Calibration.Controller) (рис. 3-9). - Шаг 9. Чтение и запись значений системных переменных запускают калибровку (рис. 3-10).
- Шаг 10. Нажмите «Открыть соединение»: запустится последний закрытый экземпляр TSMaster; последовательно нажмите «Запустить ЭБУ» и «Запустить измерение» (рис. 3-11).
- Шаг 11. Введите имя переменной и нажмите «Чтение» — отобразится текущее значение 25. Введите имя переменной и запишите значение 50 — значение переменной изменится на 50 (рис. 3-12).











