Тахографы
Тахограф — контрольное устройство, которое регистрирует пробег, скорость и режим труда и отдыха водителей. Прибор Galileosky умеет два разных дела:
- отдавать на сервер текущее состояние тахографа (вид деятельности, номера карт, VIN, гос. номер, пробег) в теге «Массив пользователя»;
- выгружать ddd-файл с карты водителя по команде сервера мониторинга.
Оба сценария реализованы алгоритмами Easy Logic, которые прибор скачивает по
команде SCRIPT. Собственного «тахографического» кода в прошивке нет — прошивка
предоставляет только порт, тег массива пользователя и канал команд сервера.
Применимость
Заголовок раздела «Применимость»| Тахограф | Интерфейс | Алгоритм | 10 | 7x | 7x Lite | XS |
|---|---|---|---|---|---|---|
| Continental VDO DTCO 1381 / 3283 (ddd) | RS-232[0] / RS-232[1] | galileosky/tahograf_continental | да | да | нет | нет |
| Continental VDO (ID карт + J1939) | CAN | galileosky/J1939ToGS_IDDRIVER_VIN{rus,eng,por} | да | да | нет | нет |
| Атол Drive 5 / Drive Smart | RS-232 через UART-переходник | galileosky/tahograf_atol, …_atol_1 | да | да | нет | нет |
| Меркурий ТА-001 | RS-485 | galileosky/tahograf_mercury | да | да | да | ? |
| ШТРИХ-Тахо RUS | RS-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 есть у всех четырёх исполнений.
Общая настройка прибора
Заголовок раздела «Общая настройка прибора»Порядок одинаков для всех тахографов, отличаются только тип периферии и имя алгоритма.
-
Подключите тахограф по схеме соответствующего раздела ниже. Земли (GND) прибора и тахографа должны быть соединены, питание на тахограф подаётся отдельно.
-
В настройках прибора задайте тип периферии порта, к которому подключён тахограф:
- RS-232 — значение Нет (
RS2320 0илиRS2321 0); - RS-485 — Фотокамера Galileosky и ДУТ (
RS485FN 2) для Меркурий ТА-001 и ШТРИХ-Тахо RUS.
⚙ Тип периферии RS-232 ⚙ Тип периферии RS-485
Распиновка, скорости и правила подключения портов — в статье «Последовательные порты RS-232 и RS-485».
- RS-232 — значение Нет (
-
Включите в основном пакете тег Массив пользователя — без него состояние тахографа на сервер не уедет.
MAINPACKBIT 185,1⚙ Основной пакет
-
Удалите алгоритмы, которые занимают тот же порт:
CLEARSCRIPT -
Убедитесь, что прибор в сети (GPRS или Wi-Fi), и загрузите алгоритм:
SCRIPT galileosky/tahograf_shtrihВ ответ приходит
Script download is sheduled. Загрузка занимает от нескольких минут до 20 при медленном канале.⚙ Консоль команд
-
Проверьте, что алгоритм лежит в памяти: имя алгоритма появится в идентификационных данных прибора.
⚙ Устройство
-
Включите канал Диагностика алгоритмов и скриптов и посмотрите сообщения алгоритма.
⚙ Каналы диагностики
-
После настройки перезагрузите прибор (
RESET).
При локальном подключении алгоритм можно залить файлом .bin вместо скачивания
с сервера.
⚙ Загрузка бинарника Easy Logic
Массив пользователя (90 байт)
Заголовок раздела «Массив пользователя (90 байт)»Текущее состояние прибор запрашивает у тахографа раз в 30 секунд и складывает в тег «Массив пользователя». Порядок байтов — little-endian, размер — 90 байт.
| Поле | Размер, байт | Описание |
|---|---|---|
data_type | 1 | тип данных: 0x03 — данные тахографа |
taho_type | 1 | тип тахографа: 1 — ШТРИХ-Тахо RUS, 2 — Атол Drive 5 / Drive Smart, 3 — Меркурий ТА-001 |
taho_state | 1 | состояние подключения: 0 — не подключались, 1 — не авторизированы, 2 — авторизированы |
mode | 1 | режим тахографа: 0 — рабочий, 1 — контроля, 2 — калибровки, 3 — предприятия |
speed | 1 | скорость, км/ч (0…250) |
trip / odo | 4 | дистанция поездки или показания одометра, 0,1 км |
flags | 1 | бит 0 — зажигание; бит 1 — отключаемая масса (ADR); бит 2 — «переправа / поезд» |
| — | 24 | Параметры водителя 1 (см. ниже) |
| — | 24 | Параметры водителя 2, структура та же |
taho_vin | 17 | VIN, ASCII |
taho_vrn | 15 | гос. номер, win1251 |
Блок водителя (24 байта):
| Поле | Размер, байт | Описание |
|---|---|---|
activity | 1 | вид деятельности: 0 — отдых, 1 — готовность, 2 — работа, 3 — вождение |
card_type | 1 | 0 — карты нет, 1 — водителя, 2 — мастерской, 3 — контролёра, 4 — предприятия, 5 — «не водителя» |
activity_time | 2 | время в текущем режиме, мин |
driving_time | 2 | накопленное время вождения за день, мин |
restless_time | 2 | время непрерывного управления с последнего отдыха, мин |
card_number | 16 | номер карты |
Какие поля реально заполняются — зависит от тахографа:
| Поле | ШТРИХ-Тахо RUS | Атол Drive 5 / Smart | Меркурий ТА-001 |
|---|---|---|---|
taho_state | заполняется | заполняется | не поддерживается |
mode | заполняется | не поддерживается | не поддерживается |
speed | заполняется | заполняется | не поддерживается |
activity_time, driving_time, restless_time | заполняются | не поддерживаются | не поддерживаются |
card_type | 1…4 | 1 и 5 | 0…5 |
Поля, отмеченные как не поддерживаемые, передаются, но валидных данных не содержат.
Выгрузка ddd-файла по протоколу Galileosky
Заголовок раздела «Выгрузка ddd-файла по протоколу Galileosky»Выгрузку инициирует сервер мониторинга, а не приложение: прибор получает
команды в теге 0xE1 и отвечает текстом (0xE1) плюс двоичными данными
(0xEB). Из конфигуратора выгрузку запустить нельзя — команды TAHO*
обрабатывает не прошивка, а алгоритм Easy Logic, и приходят они только по каналу
сервер → прибор.

Структура пакета с командой
Заголовок раздела «Структура пакета с командой»| Поле | Размер |
|---|---|
Заголовок 0x01 | 1 байт |
| Длина пакета | 2 байта |
Тег 0x03 | 1 байт |
| IMEI | 15 байт |
Тег 0x04 | 1 байт |
| Идентификатор устройства | 2 байта |
Тег 0xE0 | 1 байт |
| Номер команды — произвольное число, выбранное сервером | 4 байта |
Тег 0xE1 | 1 байт |
| Длина строки с командой | 1 байт |
| Текст команды в ASCII | — |
| Контрольная сумма | 2 байта |
Структура пакета с ответом
Заголовок раздела «Структура пакета с ответом»Та же структура, но вместо текста команды — текст ответа; дополнительно может присутствовать блок двоичных данных.
| Поле | Размер |
|---|---|
Заголовок 0x01 | 1 байт |
| Длина пакета | 2 байта |
Тег 0x03 | 1 байт |
| IMEI | 15 байт |
Тег 0x04 | 1 байт |
| Идентификатор устройства | 2 байта |
Тег 0xE0 | 1 байт |
| Номер команды — тот же, что пришёл от сервера | 4 байта |
Тег 0xE1 | 1 байт |
| Длина строки с ответом | 1 байт |
| Текст ответа в ASCII | — |
Тег 0xEB | 1 байт |
| Длина двоичных данных | 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 | неверный параметр |
Различия по вендорам
Заголовок раздела «Различия по вендорам»| Тахограф | Размер блока | Ожидание ответа сервером | TAHOPREPARE | TAHOKEY |
|---|---|---|---|---|
| Continental VDO (RS-232) | 251 байт | 7 минут | заглушка, всегда 00 | заглушка, всегда 00 |
| Атол Drive 5 / Drive Smart | 242 байта | 1 минута | рабочая | рабочая |
| Меркурий ТА-001 | 242 байта | 1 минута | рабочая | заглушка, всегда 00 |
| ШТРИХ-Тахо RUS | 242 байта | 1 минута | рабочая | рабочая |
Формирование ответа на любую команду может занимать продолжительное время; если ответ не пришёл за указанный интервал, сервер повторяет запрос.
Если сервер получил код 01 (терминал не авторизован) — нужно выполнить
TAHOKEY и повторить запрос.
Continental VDO DTCO 1381 / 3283 — ddd по RS-232
Заголовок раздела «Continental VDO DTCO 1381 / 3283 — ddd по RS-232»Аутентификация смарт-карты предприятия на территории России не требуется, поэтому выгрузка идёт без неё.

Контакты RS-232 соединяются строго по схеме: RX тахографа — TX0 (TX1) прибора, TX тахографа — RX0 (RX1) прибора.
Для подключения используется 6-контактный разъём программирования, калибровки и загрузки данных:

Контакты CAN_H и CAN_L на схеме нужны для группы контактов A — это отдельный сценарий, см. раздел про J1939 ниже.
Настройка: тип периферии используемого порта RS-232 — Нет, затем
SCRIPT galileosky/tahograf_continentalОсобенности выгрузки:
- выгрузка возможна только с одной вставленной карты водителя, номер слота
значения не имеет; если вставлены две карты, чтение файла вернёт
03; - сервер запрашивает часть файла; если тахограф вернул часть — прибор отдаёт её
без изменений, иначе возвращается
03; - размер блока — 251 байт, ожидание ответа — 7 минут.

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

Настройка:
-
В настройках CAN-сканера задайте Тип фильтра — Easy Logic и нужную скорость шины для порта 0.
⚙ CAN-сканер
-
Загрузите алгоритм на нужном языке диагностики:
SCRIPT galileosky/J1939ToGS_IDDRIVER_VINrusSCRIPT galileosky/J1939ToGS_IDDRIVER_VINengSCRIPT galileosky/J1939ToGS_IDDRIVER_VINpor -
Включите в основном пакете нужные теги CAN и «Массив пользователя».
Алгоритм несовместим с другими алгоритмами Easy Logic, использующими CAN-шину.
Массив пользователя для ID водителей
Заголовок раздела «Массив пользователя для ID водителей»| Поле | Размер, байт | Описание |
|---|---|---|
data_type | 1 | 0x7E — ID водителей + VIN |
len | 1 | длина последующих данных (2…57) |
driver_id1 | 0 или 19 | ID водителя 1 (текст) |
comma1 | 1 | разделитель , |
driver_id2 | 0 или 19 | ID водителя 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 |
CAN16BITR0…CAN16BITR4 | Нагрузка на 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 / 2 | 6 состояний | 0…7 | см. таблицу состояний |
CAN8BITR29 / CAN8BITR30 | Наличие карты водителя 1 / 2 | 2 состояния | 0…1 | 0 — нет, 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»Все сообщения начинаются с префикса J1939: и печатают либо значение параметра
(обороты, пробег, температура, нагрузка на ось и т. д.), либо состояние
(«состояние дверей: все закрыты»). Отдельно стоит обратить внимание на:
J1939: Неверная длина сообщения— данные из CAN-шины имеют длину, отличную от стандартной;J1939: Исключение: необработанный CAN ID— пришло сообщение от неотфильтрованного ID;J1939: Исключение: переполнение при переводе в формат с плавающей запятой— значение не удалось обработать из-за его величины;J1939: func— служебное сообщение для разработчиков.
Атол Drive 5 и Атол Drive Smart
Заголовок раздела «Атол Drive 5 и Атол Drive Smart»Прибор отдаёт режим и флаги состояния, VIN, гос. номер, скорость, дистанцию поездки, данные обоих водителей и выгружает ddd-файл.
Подключение Атол Drive 5 через UART-переходник:

Подключение Атол 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-файла становится невозможной. Выход — любое действие: включение зажигания, нажатие кнопки, вставка карты.
Меркурий ТА-001
Заголовок раздела «Меркурий ТА-001»Прибор отдаёт флаги состояния, VIN, гос. номер, дистанцию поездки и данные водителей; скорость, режим и состояние подключения не поддерживаются.

Настройка: тип периферии RS-485 — Фотокамера (устаревшая версия) либо Фотокамера и ДУТ, дозиметр ДБГ-С11Д, тег «Массив пользователя» включён, затем
SCRIPT galileosky/tahograf_mercuryВ диагностике алгоритм печатает строки с префиксом Taho:
Taho no response— тахограф не отвечает;Taho driver1 activity <N>— тахограф отвечает,N— текущий вид деятельности первого водителя.

ШТРИХ-Тахо RUS
Заголовок раздела «ШТРИХ-Тахо RUS»Самый полный набор данных: режим и флаги, скорость, VIN, гос. номер, дистанция поездки или показания одометра, по водителям — вид деятельности, тип и номер карты, время в текущем режиме, накопленное время вождения за день и время непрерывного управления.
Настройка тахографа
Заголовок раздела «Настройка тахографа»Прошивка тахографа должна быть не ниже версии 1174, для интерфейса RS-485 нужно выбрать протокол ШТРИХ-Тахо сервисным ПО производителя.

Подключение
Заголовок раздела «Подключение»

Тахограф можно подключить и к одному из портов 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.
Что не переносится в conf6
Заголовок раздела «Что не переносится в conf6»- Раздел «Маршруты» конфигуратора 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) · Передача данных на сервер · Вкладка «Терминал»