Перейти к содержимому
Черновик: материал сгенерирован и ещё не вычитан.

Тахографы

Тахограф — контрольное устройство, которое регистрирует пробег, скорость и режим труда и отдыха водителей. Прибор Galileosky умеет два разных дела:

  • отдавать на сервер текущее состояние тахографа (вид деятельности, номера карт, VIN, гос. номер, пробег) в теге «Массив пользователя»;
  • выгружать ddd-файл с карты водителя по команде сервера мониторинга.

Оба сценария реализованы алгоритмами Easy Logic, которые прибор скачивает по команде SCRIPT. Собственного «тахографического» кода в прошивке нет — прошивка предоставляет только порт, тег массива пользователя и канал команд сервера.

ТахографИнтерфейсАлгоритм107x7x LiteXS
Continental VDO DTCO 1381 / 3283 (ddd)RS-232[0] / RS-232[1]galileosky/tahograf_continentalдаданетнет
Continental VDO (ID карт + J1939)CANgalileosky/J1939ToGS_IDDRIVER_VIN{rus,eng,por}даданетнет
Атол Drive 5 / Drive SmartRS-232 через UART-переходникgalileosky/tahograf_atol, …_atol_1даданетнет
Меркурий ТА-001RS-485galileosky/tahograf_mercuryдадада?
ШТРИХ-Тахо RUSRS-485 (или RS-232 через преобразователь)galileosky/tahograf_shtrih, …_shtrih_odдадада?

Ограничения берутся из аппаратных возможностей прошивки 48.28:

  • RS-232 нет у 7x Lite и у XS (HAS_RS232 не определён), поэтому все RS-232-варианты на этих приборах недоступны;
  • CAN нет у XS (HAS_CAN не определён) — вариант с J1939 недоступен;
  • RS-485 есть у всех четырёх исполнений.

Порядок одинаков для всех тахографов, отличаются только тип периферии и имя алгоритма.

  1. Подключите тахограф по схеме соответствующего раздела ниже. Земли (GND) прибора и тахографа должны быть соединены, питание на тахограф подаётся отдельно.

  2. В настройках прибора задайте тип периферии порта, к которому подключён тахограф:

    • RS-232 — значение Нет (RS2320 0 или RS2321 0);
    • RS-485 — Фотокамера Galileosky и ДУТ (RS485FN 2) для Меркурий ТА-001 и ШТРИХ-Тахо RUS.

    ⚙ Тип периферии RS-232 ⚙ Тип периферии RS-485

    Распиновка, скорости и правила подключения портов — в статье «Последовательные порты RS-232 и RS-485».

  3. Включите в основном пакете тег Массив пользователя — без него состояние тахографа на сервер не уедет.

    MAINPACKBIT 185,1

    ⚙ Основной пакет

  4. Удалите алгоритмы, которые занимают тот же порт:

    CLEARSCRIPT
  5. Убедитесь, что прибор в сети (GPRS или Wi-Fi), и загрузите алгоритм:

    SCRIPT galileosky/tahograf_shtrih

    В ответ приходит Script download is sheduled. Загрузка занимает от нескольких минут до 20 при медленном канале.

    ⚙ Консоль команд

  6. Проверьте, что алгоритм лежит в памяти: имя алгоритма появится в идентификационных данных прибора.

    ⚙ Устройство

  7. Включите канал Диагностика алгоритмов и скриптов и посмотрите сообщения алгоритма.

    ⚙ Каналы диагностики

  8. После настройки перезагрузите прибор (RESET).

При локальном подключении алгоритм можно залить файлом .bin вместо скачивания с сервера.

⚙ Загрузка бинарника Easy Logic

Текущее состояние прибор запрашивает у тахографа раз в 30 секунд и складывает в тег «Массив пользователя». Порядок байтов — little-endian, размер — 90 байт.

ПолеРазмер, байтОписание
data_type1тип данных: 0x03 — данные тахографа
taho_type1тип тахографа: 1 — ШТРИХ-Тахо RUS, 2 — Атол Drive 5 / Drive Smart, 3 — Меркурий ТА-001
taho_state1состояние подключения: 0 — не подключались, 1 — не авторизированы, 2 — авторизированы
mode1режим тахографа: 0 — рабочий, 1 — контроля, 2 — калибровки, 3 — предприятия
speed1скорость, км/ч (0…250)
trip / odo4дистанция поездки или показания одометра, 0,1 км
flags1бит 0 — зажигание; бит 1 — отключаемая масса (ADR); бит 2 — «переправа / поезд»
24Параметры водителя 1 (см. ниже)
24Параметры водителя 2, структура та же
taho_vin17VIN, ASCII
taho_vrn15гос. номер, win1251

Блок водителя (24 байта):

ПолеРазмер, байтОписание
activity1вид деятельности: 0 — отдых, 1 — готовность, 2 — работа, 3 — вождение
card_type10 — карты нет, 1 — водителя, 2 — мастерской, 3 — контролёра, 4 — предприятия, 5 — «не водителя»
activity_time2время в текущем режиме, мин
driving_time2накопленное время вождения за день, мин
restless_time2время непрерывного управления с последнего отдыха, мин
card_number16номер карты

Какие поля реально заполняются — зависит от тахографа:

ПолеШТРИХ-Тахо RUSАтол Drive 5 / SmartМеркурий ТА-001
taho_stateзаполняетсязаполняетсяне поддерживается
modeзаполняетсяне поддерживаетсяне поддерживается
speedзаполняетсязаполняетсяне поддерживается
activity_time, driving_time, restless_timeзаполняютсяне поддерживаютсяне поддерживаются
card_type1…41 и 50…5

Поля, отмеченные как не поддерживаемые, передаются, но валидных данных не содержат.

Выгрузку инициирует сервер мониторинга, а не приложение: прибор получает команды в теге 0xE1 и отвечает текстом (0xE1) плюс двоичными данными (0xEB). Из конфигуратора выгрузку запустить нельзя — команды TAHO* обрабатывает не прошивка, а алгоритм Easy Logic, и приходят они только по каналу сервер → прибор.

Обмен сервера и прибора при выгрузке ddd

ПолеРазмер
Заголовок 0x011 байт
Длина пакета2 байта
Тег 0x031 байт
IMEI15 байт
Тег 0x041 байт
Идентификатор устройства2 байта
Тег 0xE01 байт
Номер команды — произвольное число, выбранное сервером4 байта
Тег 0xE11 байт
Длина строки с командой1 байт
Текст команды в ASCII
Контрольная сумма2 байта

Та же структура, но вместо текста команды — текст ответа; дополнительно может присутствовать блок двоичных данных.

ПолеРазмер
Заголовок 0x011 байт
Длина пакета2 байта
Тег 0x031 байт
IMEI15 байт
Тег 0x041 байт
Идентификатор устройства2 байта
Тег 0xE01 байт
Номер команды — тот же, что пришёл от сервера4 байта
Тег 0xE11 байт
Длина строки с ответом1 байт
Текст ответа в ASCII
Тег 0xEB1 байт
Длина двоичных данных1 байт
Двоичные данные — содержимое запрошенной части файла
Контрольная сумма2 байта

Длина пакета считается от первого тега до начала контрольной суммы, теги идут по возрастанию номера, данные и контрольная сумма — little-endian. Контрольная сумма считается по CRC-16 Modbus для всего пакета, включая заголовок, поле длины и признак наличия неотправленных данных.

TAHOPREPARE <slot_number>
TAHOFILE <chunk_number>
TAHOKEY <auth_key>
  • TAHOPREPARE — запрос формирования файла выгрузки. slot_number: 1 — первый водитель, 2 — второй. Двоичных данных в ответе нет.
  • TAHOFILE — запрос очередного блока подготовленного файла. Размер файла примерно 27 КБ, размер блока — см. таблицу ниже. Последний блок короче полного.
  • TAHOKEY — установка ключа авторизации. Поддерживаются только цифровые ключи от 0 до 2147483647 (0x7FFFFFFF).

Ответ прибора — в теге 0xE1:

TAHO <answer_code>
КодЗначение
00команда завершена успешно
01терминал не авторизирован
02карта не установлена или установлена карта неподходящего типа
03ошибка выгрузки файла
04неверный параметр
ТахографРазмер блокаОжидание ответа серверомTAHOPREPARETAHOKEY
Continental VDO (RS-232)251 байт7 минутзаглушка, всегда 00заглушка, всегда 00
Атол Drive 5 / Drive Smart242 байта1 минутарабочаярабочая
Меркурий ТА-001242 байта1 минутарабочаязаглушка, всегда 00
ШТРИХ-Тахо RUS242 байта1 минутарабочаярабочая

Формирование ответа на любую команду может занимать продолжительное время; если ответ не пришёл за указанный интервал, сервер повторяет запрос.

Если сервер получил код 01 (терминал не авторизован) — нужно выполнить TAHOKEY и повторить запрос.

Аутентификация смарт-карты предприятия на территории России не требуется, поэтому выгрузка идёт без неё.

Схема подключения Continental VDO по RS-232

Контакты RS-232 соединяются строго по схеме: RX тахографа — TX0 (TX1) прибора, TX тахографа — RX0 (RX1) прибора.

Для подключения используется 6-контактный разъём программирования, калибровки и загрузки данных:

6-контактный разъём VDO Назначение контактов разъёма VDO

Контакты CAN_H и CAN_L на схеме нужны для группы контактов A — это отдельный сценарий, см. раздел про J1939 ниже.

Настройка: тип периферии используемого порта RS-232 — Нет, затем

SCRIPT galileosky/tahograf_continental

Особенности выгрузки:

  • выгрузка возможна только с одной вставленной карты водителя, номер слота значения не имеет; если вставлены две карты, чтение файла вернёт 03;
  • сервер запрашивает часть файла; если тахограф вернул часть — прибор отдаёт её без изменений, иначе возвращается 03;
  • размер блока — 251 байт, ожидание ответа — 7 минут.

Последовательность выгрузки ddd

Continental VDO — ID карт водителей и разбор CAN по J1939

Заголовок раздела «Continental VDO — ID карт водителей и разбор CAN по J1939»

При подключении к разъёму A на задней стороне тахографа прибор дополнительно получает скорость автомобиля, вид деятельности, наличие и ID карт обоих водителей, а при подключении к CAN-шине машины — большой набор параметров по протоколу J1939.

Схема подключения VDO по CAN

Настройка:

  1. В настройках CAN-сканера задайте Тип фильтра — Easy Logic и нужную скорость шины для порта 0.

    ⚙ CAN-сканер

  2. Загрузите алгоритм на нужном языке диагностики:

    SCRIPT galileosky/J1939ToGS_IDDRIVER_VINrus
    SCRIPT galileosky/J1939ToGS_IDDRIVER_VINeng
    SCRIPT galileosky/J1939ToGS_IDDRIVER_VINpor
  3. Включите в основном пакете нужные теги CAN и «Массив пользователя».

Алгоритм несовместим с другими алгоритмами Easy Logic, использующими CAN-шину.

ПолеРазмер, байтОписание
data_type10x7E — ID водителей + VIN
len1длина последующих данных (2…57)
driver_id10 или 19ID водителя 1 (текст)
comma11разделитель ,
driver_id20 или 19ID водителя 2 (текст)

На сервере данные разбираются как текстовые строки: один идентификатор (driver_id1), если вставлена одна карта, два — если обе.

Представление данных J1939 в протоколе Galileosky

Заголовок раздела «Представление данных J1939 в протоколе Galileosky»
ТегПараметрРазрешениеДиапазонПересчёт на сервере
CAN8BITR15Состояние ремня безопасности4 состояния0…3см. таблицу состояний
CAN8BITR16Положение педали рабочего тормоза0,4 %/бит0…100 %× 0,4
CAN8BITR17Пробуксовка сцепления0,4 %/бит0…100 %× 0,4
CAN8BITR18Положение педали акселератора0,4 %/бит0…100 %× 0,4
CAN_A1Обороты двигателя0,125 об/мин на бит0…8031,875 об/мин× 0,125
CAN8BITR25Состояние дверей16 состояний0…15см. таблицу состояний
CAN16BITR5Скорость по тахографу1/256 км/ч на бит0…250,996 км/ч÷ 256
CAN16BITR6Оставшийся пробег до ТО5 км/бит−160635…160640 км× 5 − 160635
CAN16BITR7Оставшееся время до ТО1 ч/бит−32127…32128 ч− 32127
CAN32BITR5Суточный пробег5 м/бит0…21055406 км× 5
CAN_B0Общий пробег5 м/бит0…21055406 км× 5
CAN32BITR0Общее время работы двигателя0,05 ч/бит0…210554060,75 ч× 0,05
CAN32BITR7Суточный расход топлива0,5 л/бит0…2105540607,5 л÷ 2
CAN_A0Всего израсходовано топлива0,5 л/бит0…2105540607,5 л÷ 2
CAN16BITR0CAN16BITR4Нагрузка на 1…5 ось0,5 кг/бит0…32127,5 кг÷ 2
CAN_A1Температура ОЖ двигателя1 °C/бит−40…210 °C− 40
CAN8BITR19Температура топлива1 °C/бит−40…210 °C− 40
CAN16BITR8Температура масла0,03125 °C/бит−273…1735 °C× 0,03125 − 273
CAN8BITR20Давление масла4 кПа/бит0…1000 кПа× 4
CAN8BITR21Состояние парковочного тормоза4 состояния0…3см. таблицу состояний
CAN8BITR22Состояние круиз-контроля8 состояний0…7см. таблицу состояний
CAN8BITR23Состояние рабочего тормоза4 состояния0…3см. таблицу состояний
CAN8BITR24Состояние сцепления4 состояния0…3см. таблицу состояний
CAN16BITR9Мгновенная экономия топлива1/512 км/л на бит0…125,5 км/л÷ 512
CAN8BITR26Нагрузка на двигатель1 %/бит0…250 %
CAN16BITR10Мгновенный расход топлива0,05 л/ч на бит0…3212,75 л/ч× 0,05
CAN_A1Уровень топлива0,4 %/бит0…100 %× 0,4
CAN8BITR27 / CAN8BITR28Вид деятельности водителя 1 / 26 состояний0…7см. таблицу состояний
CAN8BITR29 / CAN8BITR30Наличие карты водителя 1 / 22 состояния0…10 — нет, 1 — есть

Расшифровка состояний:

ТегЗначениеРасшифровка
CAN8BITR15 (ремень)0 / 1 / 2 / 3не пристёгнут / пристёгнут / ошибка / параметр недоступен
CAN8BITR25 (двери)0 / 1 / 2 / 14 / 15хотя бы одна открыта / закрывается последняя / все закрыты / ошибка / недоступно
CAN8BITR21 (парковочный тормоз)0 / 1 / 2 / 3не включён / включён / ошибка / недоступно
CAN8BITR22 (круиз-контроль)0…7отключён / Hold / Accelerate / Decelerate / Resume / Set / Accelerator Override / недоступно
CAN8BITR23 (рабочий тормоз)0 / 1 / 2 / 3педаль не нажата / нажата / ошибка / недоступно
CAN8BITR24 (сцепление)0 / 1 / 2 / 3педаль не нажата / нажата / ошибка / недоступно
CAN8BITR27, CAN8BITR28 (деятельность)0 / 1 / 2 / 3 / 6 / 7отдых / готовность / работа / вождение / ошибка / недоступно

Значения 0011…1101 для состояния дверей на сервер не передаются.

Таблица занимает однобайтовые CAN-теги вплоть до CAN8BITR30 — это последний существующий тег этого типа. CAN8BITR31 использовать нельзя: прошивка 48.28 принимает такой номер без ошибки, но записывает за границу массива (Core/Internal_periferial/CAN/CANCommandHandlers.cpp:366). Если алгоритму нужен ещё один параметр, занимайте свободный тег другой разрядности.

Все сообщения начинаются с префикса J1939: и печатают либо значение параметра (обороты, пробег, температура, нагрузка на ось и т. д.), либо состояние («состояние дверей: все закрыты»). Отдельно стоит обратить внимание на:

  • J1939: Неверная длина сообщения — данные из CAN-шины имеют длину, отличную от стандартной;
  • J1939: Исключение: необработанный CAN ID — пришло сообщение от неотфильтрованного ID;
  • J1939: Исключение: переполнение при переводе в формат с плавающей запятой — значение не удалось обработать из-за его величины;
  • J1939: func — служебное сообщение для разработчиков.

Прибор отдаёт режим и флаги состояния, VIN, гос. номер, скорость, дистанцию поездки, данные обоих водителей и выгружает ddd-файл.

Подключение Атол Drive 5 через UART-переходник:

Схема подключения Атол Drive 5 Распиновка RS-232 Атол Drive 5 Разъём Атол Drive 5

Подключение Атол Drive Smart:

Схема подключения Атол Drive Smart Распиновка Атол Drive Smart

Земли прибора, тахографа и UART/RS232-переходника должны быть соединены. Контакты RS-232: RX тахографа/переходника — TX0 (TX1) прибора, TX тахографа/переходника — RX0 (RX1) прибора.

В настройках самого тахографа в разделе Пенал → Протокол пенала должен быть выбран протокол АТОЛ.

Настройка прибора: тип периферии используемого порта RS-232 — Нет, тег «Массив пользователя» включён, затем

SCRIPT galileosky/tahograf_atol # для RS-232[0]
SCRIPT galileosky/tahograf_atol_1 # для RS-232[1]

Выгрузка запускается с сервера командой TAHOPREPARE 1.

Энергосбережение Drive Smart. При выключенном зажигании через 25 секунд бездействия гаснет подсветка дисплея, ещё через 7 минут тахограф переходит в глубокий режим энергосбережения и передача ddd-файла становится невозможной. Выход — любое действие: включение зажигания, нажатие кнопки, вставка карты.

Прибор отдаёт флаги состояния, VIN, гос. номер, дистанцию поездки и данные водителей; скорость, режим и состояние подключения не поддерживаются.

Схема подключения Меркурий ТА-001

Настройка: тип периферии RS-485 — Фотокамера (устаревшая версия) либо Фотокамера и ДУТ, дозиметр ДБГ-С11Д, тег «Массив пользователя» включён, затем

SCRIPT galileosky/tahograf_mercury

В диагностике алгоритм печатает строки с префиксом Taho:

  • Taho no response — тахограф не отвечает;
  • Taho driver1 activity <N> — тахограф отвечает, N — текущий вид деятельности первого водителя.

Алгоритм получения ddd-файла

Самый полный набор данных: режим и флаги, скорость, VIN, гос. номер, дистанция поездки или показания одометра, по водителям — вид деятельности, тип и номер карты, время в текущем режиме, накопленное время вождения за день и время непрерывного управления.

Прошивка тахографа должна быть не ниже версии 1174, для интерфейса RS-485 нужно выбрать протокол ШТРИХ-Тахо сервисным ПО производителя.

Выбор протокола в сервисном ПО

Схема подключения ШТРИХ-Тахо RUS Схема подключения ШТРИХ-Тахо RUS, вариант 2

Тахограф можно подключить и к одному из портов RS-232 — тогда понадобится внешний преобразователь интерфейсов RS-485 ↔ RS-232.

Тип периферии RS-485 — Фотокамера Galileosky и ДУТ. Если тахограф подключён к RS-232 через преобразователь, для соответствующего порта RS-232 тип периферии нужно выбрать Нет.

SCRIPT galileosky/tahograf_shtrih # пробег текущей поездки
SCRIPT galileosky/tahograf_shtrih_od # пробег по одометру

По умолчанию алгоритм работает с портом RS-485. Для работы через RS-232 в дополнение к основному алгоритму загружается вспомогательный настроечный:

SCRIPT galileosky/tahografShtrih_p0 # RS-232[0]
SCRIPT galileosky/tahografShtrih_p1 # RS-232[1]

Выгрузка ddd запускается с сервера командой TAHOPREPARE 1.

  • Раздел «Маршруты» конфигуратора 5 в conf6 отсутствует — он тахографам и не нужен, но упоминается в исходных инструкциях в общих шагах.
  • Динамическая структура хранения архива — исходные инструкции требуют её для приборов 2.x/5.x; для 10, 7x и XS она не нужна, шаг выброшен.
  • Скриншоты конфигуратора 5 и окон Wialon заменены ссылками go:// и текстом.
  • Плагины «Команды», «Диагностика» и Easy Logic пока не входят в ENROLLED_PLUGINS, поэтому ссылки go://plugin.commands, go://plugin.diagnostics и go://plugin.easylogic сработают только после их включения.

См. также: Последовательные порты RS-232 и RS-485 · Поиск параметров в CAN-шине · Внешние CAN-модули: CAN-LOG, SEO CANlog, DTA-CAN · Системы мониторинга водителя (ADAS/DMS) · Передача данных на сервер · Вкладка «Терминал»