На сборочных конвейерах (End-of-Line, EOL) и в автоматизированных лабораториях верификации ПО внешняя управляющая программа (написанная на C#, Python, C++ или LabVIEW) часто вызывает проект TSMaster в фоновом режиме для выполнения последовательности перепрошивки ЭБУ по протоколу UDS. Чтобы оператор или система верхнего уровня видели не только итоговый вердикт OK / NOK, но и живую шкалу прогресса в процентах и лог каждого диагностического сервиса в реальном времени, инженеры TOSUN разработали эталонную связку на базе COM/RPC-автоматизации и локального UDP-канала телеметрии.

1. Постановка задачи и архитектура взаимодействия

При классическом вызове автоматизированного процесса прошивки через COM-интерфейс управляющее приложение запускает диагностическую последовательность (Automated Diagnostic Flow) в TSMaster. Для непрерывной трансляции промежуточного статуса используется двухконтурная схема:

  1. Контур управления (Control Plane — COM / RPC): внешнее приложение инициализирует экземпляр TSMaster, загружает рабочий проект, выбирает нужную конфигурацию прошивки и запускает или останавливает диагностический поток.
  2. Контур статуса в реальном времени (Status Plane — UDP Socket): встроенный скрипт внутри проекта TSMaster перехватывает системные переменные прогресса прошивки и сообщения каждого шага последовательности, мгновенно пересылая их в виде легковесных UDP-пакетов во внешний GUI или CLI-терминал.
Архитектура взаимодействия внешнего приложения автоматизации и ядра UDS-прошивки TSMaster через COM/RPC и UDP
Архитектура взаимодействия внешнего приложения автоматизации и ядра UDS-прошивки TSMaster через COM/RPC и UDP

2. Пошаговая настройка диагностического контура в TSMaster

Шаг 1. Конфигурация транспортного уровня и файлов прошивки

В модуле Basic Diagnostic Config задаются параметры диагностического канала (CAN, CAN FD или DoIP), идентификаторы физического и функционального запросов/ответов, тайминги ISO-TP (P2, P2*), DLL-библиотека алгоритма безопасности Seed & Key и прикрепляются файлы данных прошивки (.hex, .s19, .bin, .vbf) вместе с драйвером Flash Driver.

Настройка параметров транспортного уровня ISO-TP и диагностических сервисов UDS в TSMaster
Настройка параметров транспортного уровня ISO-TP и диагностических сервисов UDS в TSMaster
Загрузка файлов прошивки (Application / Flash Driver) и подключение алгоритма Seed & Key
Загрузка файлов прошивки (Application / Flash Driver) и подключение алгоритма Seed & Key

Шаг 2. Построение последовательности Automated Diagnostics

В редакторе диагностических последовательностей собирается полный цикл репрограммирования: предпрограммирующий шаг (чтение идентификаторов 0x22, переход в расширенную сессию 0x10 03, отключение DTC 0x85 и связи 0x28), шаг программирования (Programming Session 0x10 02, Security Access 0x27, стирание памяти 0x31, загрузка блоков 0x34 / 0x36 / 0x37, проверка контрольной суммы) и финальный сброс ЭБУ (0x11 01).

Конструирование цепочки автоматизированной прошивки ЭБУ в модуле Automated Diagnostics
Конструирование цепочки автоматизированной прошивки ЭБУ в модуле Automated Diagnostics
Привязка системных переменных прогресса и статуса выполнения диагностической последовательности
Привязка системных переменных прогресса и статуса выполнения диагностической последовательности

Шаг 3. Настройка трансляции прогресса и логов по UDP

В проекте TSMaster создаётся компактный C Mini Program скрипт, который подписывается на изменение системной переменной процента выполнения прошивки и события диагностического лога, упаковывает их в текстовый или JSON-кадр и отправляет через встроенный сетевой стек на локальный UDP-порт (например, 127.0.0.1:8888).

Конфигурация локального сокета и переменных обратной связи в проекте TSMaster
Конфигурация локального сокета и переменных обратной связи в проекте TSMaster
Реализация C-скрипта в TSMaster для отправки процента выполнения и логов шагов по UDP
Реализация C-скрипта в TSMaster для отправки процента выполнения и логов шагов по UDP

3. Демонстрация работы во внешнем клиенте автоматизации

При запуске внешнего управляющего скрипта (например, на Python) приложение по COM/RPC стартует процесс прошивки в TSMaster и одновременно слушает UDP-сокет:

  • В консоли или графическом окне оператора плавно от 0% до 100% обновляется индикатор прогресса передачи блоков TransferData (0x36);
  • В реальном времени выводятся названия выполняемых шагов, время выполнения каждого сервиса и итоговый статус верификации контрольной суммы.
Инициализация COM-сервера TSMaster и приём UDP-телеметрии во внешнем скрипте автоматизации
Инициализация COM-сервера TSMaster и приём UDP-телеметрии во внешнем скрипте автоматизации
Живое отображение шкалы прогресса UDS-прошивки и статусов шагов в окне терминала
Живое отображение шкалы прогресса UDS-прошивки и статусов шагов в окне терминала
Синхронная работа фонового процесса TSMaster и внешней системы управления стендом при успешном завершении прошивки
Синхронная работа фонового процесса TSMaster и внешней системы управления стендом при успешном завершении прошивки