Только что, в эту самую минуту: 4 февраля в 15:50, моей любимой машинке исполнилось ровно 7 лет.
О том, как это узнал будет написано далее, а пока окунемся в небольшой экскурс по истории автомобилей и их компьютерных систем.

Как все знают, самый известный первый автомобиль с двигателем внутреннего сгорания был построен еще в 1885 году Карлом Бенцом. Почти век автомобильная промышленность развивалась и совершенствовала инженерные решения, агрегаты и узлы, материалы и технологии. Двигатели, трансмиссия, ходовая, управление: все развивалось огромными темпами и достигло того момента, когда механическими средствами улучшить показатели системы впрыска или управления уже невозможно. Пришло время компьютеров, полупроводников и сложной электроники.

Сейчас всеми элементами автомобиля управляют электронные блоки, компьютеры, которые контролируют огромный перечень параметров и режимов во всех системах автомобиля. Система впрыска, ABS, рулевое управление, электрика, подушки безопасности. Даже работа стояночного тормоза управляется компьютером. Для того, что бы все блоки могли оперативно взаимодействовать друг с другом, производители использовали различные способы и стандарты связи. Каждый крупный автопроизводитель решал эту задачу самостоятельно. В начале 80-ых годов XX века компании Bosch и Intel предложили новый сетевой интерфейс – Controller Area Network, который получил сокращенное название CAN-шина. CAN-шина в автомобиле предназначена для взаимодействия любых электронных устройств, которые способны передавать и получать определенную информацию. Таким образом, данные о техническом состоянии систем и управляющие сигналы проходят по витой паре в цифровом формате.
Ввиду различных требований к частоте передаваемых сигналов, объему информации и к резервированию данных, CAN-шины подразделяются на три вида:
— Шина CAN силового агрегата (быстрая шина), позволяющая передавать информацию со скоростью до 1Мбит/с . Она служит для связи между блоками управления: двигатель — трансмиссия, ABS — система безопасности и т.д.
— Шина CAN системы "Комфорт" (медленная шина), позволяющая передавать информацию со скоростью
100 кбит/с. Она служит для связи между блоками управления, входящими в систему "Комфорт": подушки, двери, климат.
— Шина данных CAN информационно-командной системы (медленная шина), позволяющая
передавать данные со скоростью 100 kBit/s. Она служит для связи между различными обслуживающими системами, например, мультимедиа и навигация.

Мы всегда работаем с CAN-шиной, когда проводим диагностику, подключаем оборудование типа CLIP или другие диагностические адаптеры, смотрим за показателями систем автомобиля через Torque. Однако при этом мы, посредством специальных команд, выполняем определенные запросы на тот или иной блок. Мы отправляем запрос, блок на этот запрос дает ответ.
Многие, кто делал диагностику блока ABS, знают, что в случае обращения к блоку и запросу информации от него, он переходит в режим диагностики и на экране мигает индикатор ABS. Поэтому не рекомендуется выполнять эти операции в движении, блок может просто не среагировать вовремя на изменение дорожной ситуации.
Запросы и ответы уже присутствуют в CAN-шине и без нас: данные об угле поворота рулевого колеса передаются в ABS для расчета планируемой траектории, выполняется оценка текущей траектории автомобиля и при необходимости, ABS выполняет корректирующие действия и отправляет команды в систему впрыска. Между всеми блоками автомобиля проходит огромный поток данных, в котором есть почти все. Для получения всей этой информации не нужно опрашивать все блоки, не нужно влиять на их работу — достаточно только слушать то, что передается по CAN-шине.

Как всегда, для получения интересной информации о блоках и данных CAN-шины, на помощь приходят PyRen, и дополнительный скрипт от Shr-lnm для прослушивания CAN-шины. Скрипт доступен по ссылке и перезалит на яндекс-диск. Распаковав архив, нужно скопировать содержимое папки bus_mon_mod_v2/ в pyren99/, ко всем остальным файлам и скриптам PyRen. Также потребуется база DDT2000, распакованная рядом с базой клипа, как было описано в этой записи. Поскольку база занимает почти 1Гб, достаточно сохранить только один файл, который будет использоваться для Вашего автомобиля, например для меня, это файл canv_v95.05_20100223T085813.xml. Далее из картинок будет понятно, как узнать, какой файл будет нужен.
Запуск скрипта я привел в Demo-режиме на ПК для удобства копирования картинок, на андроиде этот скрипт работает также и отображает аналогичную информацию. Для запуска скрипта на андроиде, используйте лаунчер — busmon_4a_launcher.py. Владельцам адаптеров с Wi-Fi необходимо внести изменение в этот лаунчер как было описано в #55 записи.
Для ПК запускаем скрипт через командную строку, указав нужный адрес порта — PORT: scripts\pyren99>bus_monitor.py -p PORT --log mon.log
Ключ --log я привел не случайно. Рекомендую включать этот ключ для сбора данных и затем, отключившись от машины, и перенеся лог-файл на другое устройство, иметь возможность в Demo-режиме снова изучить и внимательно посмотреть данные CAN-шины. Для запуска Demo запускаем скрипт с ключом --demo и указываем сохраненный лог-файл: scripts\pyren99>bus_monitor.py --demo -p ppp --log mon.log.
Для включения логирования на андроиде, нужно удалить решетку — # — в начале строки
#sys.argv.append('--log');sys.argv.append('mon.log')
в лаунчере busmon_4a_launcher.py.
После запуска скрипта, выбираем поколение автомобиля и указываем файл базы данных ddt


Скрипт начинает работу и выводит все данные из CAN-шины, которые может получить, связывая их с описанием из базы DDT. То же самое происходит в демо-режиме по сообщениям, сохраненным в лог-файле.

Что бы открыть тот или иной "фрейм", т.е. пакет с данными между теми или иным блоком, нужно ввести его номер, написанный слева.

Так можно долго изучать фреймы и данные своего автомобиля. Со временем становится понятно, что интересны далеко не все фреймы и не все данные в них, и тут разработчик сделал отличную возможность работать с заранее созданными фильтрами сообщений CAN-шины. Для создания такого фильтра, необходимо сначала сформировать полный перечень данных из CAN-шины автомобиля и затем выбрать только нужные из них. Для этого запускаем скрипт с ключом -o и указанием имени результирующего файла: scripts\pyren99>bus_monitor.py -p PORT -o test.out и получаем текстовый файл с полным набором данных из всех блоков. Это можно делать без подключения к автомобилю.

Теперь переносим интересующие нас строки описания в новый файл с именем flt.txt:

И запускаем скрипт со ссылкой на наш файл с фильтром, используя ключ -f flt.txt: scripts\pyren99>bus_monitor.py -p ppp -f flt.txt --log mon.log. То же самое можно сделать и для андроида, скопировав flt.txt в папку pyren99/ и удалив решетку — # — в начале строки в лаунчере:
#sys.argv.append('-f');sys.argv.append('flt.txt')

Таким образом, можно получать интересующие нас данные из CAN-шины без влияния на работу блоков, никаких новых запросов наш адаптер посылать не будет, а только слушать то, что пробегает в шине. Это даже видно по лампочкам-индикаторам: в обычной работе мигает как передача — зеленая, так и прием — оранжевая, а в работе "прослушивания" мигает только прием.
Вот так я и получил информацию о том, какой "истинный" возраст моего автомобиля — как много минут прошло с момента заливки программного обеспечения в его ЭБУ. К слову сказать, эти данные отличаются примерно на месяц с тем, когда автомобиль официально выпущен с конвейера завода и получил регистрацию в базе данных Рено по VIN — Date of manufacture 03 2010 — и был поставлен в страну назначения для продажи в Бельгию- SCENIC III DY 15 110F5S BE 24.03.2010
Берем значение параметра AbsoluteTimeSince1rstIgnition и через любой калькулятор вычисляем дату и время начала отсчета.

Я использовал этот калькулятор, который и дал мне начальную дату, когда было включено в первый раз зажигание на машине.
чт, 04 февраля 2010, 15:50:00

Так, по информации от самого автомобиля можно теперь узнать его точный возраст с точностью до минуты.
Всем отличного настроения и долгих лет без поломок вашим железным коням!
А мою машинку с Минутой рождения!

Обновление скрипта bus_monitor_v3 на форуме и на гугл-диске.
В настоящий момент bus_monitor входит в состав базовой версии скрипта PyRen и дополнительно скачивать не требуется. Используйте пакеты PyRen 9k и новее по мере их выхода.


Comments 91
Вот такой результат получаю при запуске модуля busmon_4a_launcher.py. Параметр подключения изменен на Wi-Fi. Установлена последняя версия Pyren.
Так бас монитор уже давно через лаунчер запускается, не надо ничего менять.
На выходных попробовал, так не понял как сейчас через лаунчер запустить…
Видимо чтото сломали, я посмотрю.
Заранее спасибо.
amokkspb
Видимо чтото сломали, я посмотрю.
Пробую через ноут с WiFi-адапетром. А/м Веста (пункт 8):
amokkspb
Видимо чтото сломали, я посмотрю.
Maksimus1979
Вот такой результат получаю при запуске модуля busmon_4a_launcher.py. Параметр подключения изменен на Wi-Fi. Установлена последняя версия Pyren.
shr-lnm пожалуйста, посмотрите.
и отдельно бас-монитор вылетает и через лаунчер.
ругается на importlib
под виндой нормально запускается.
Maksimus1979
Вот такой результат получаю при запуске модуля busmon_4a_launcher.py. Параметр подключения изменен на Wi-Fi. Установлена последняя версия Pyren.
поменял ссылку на гугл диск. положил из старых версий пирен — с ним работает на андроиде.
Файл заменил. Сбор данных идёт, но судя по скрину база DDT не понимает Весту))
Чтото в новых версиях перестало работать. Пока не нашел причину, глубоко не было времени копать.
Может подскажете в каком фрейме находится параметр AbsoluteTimeSince1rstIgnition-не нашёл что то, в test out он есть, но через фильтр flt.txt пробовал :все параметры пишет-none.Хочу поискать напрямую…спс.
а эбу тот же самый?
сейчас под рукой нет инструментов, на телефоне новый дамп не захотел сниматься, так что пока не добрался до этого.
Да, судя по Вашим скринам тот же
amokkspb
а эбу тот же самый?
сейчас под рукой нет инструментов, на телефоне новый дамп не захотел сниматься, так что пока не добрался до этого.
Всё, нашёл сам:наработка находится во фрейме "35c".Большое спасибо!
amokkspb
а эбу тот же самый?
сейчас под рукой нет инструментов, на телефоне новый дамп не захотел сниматься, так что пока не добрался до этого.
Здравствуйте.
Я хотел повторить на своей машине, но у меня вылетает с ошибкой когда я запускаю busmon_4a_launcher.py, выдает ошибку
ImportError: No module named tkinter.
Запускаю на телефоне, у меня pyren9k, а файл busmon_4a_launcher.py которы шел с ним, а не тот который вы предложили скачать.
PyRen устанавливал по вашей инструкции. PyRen работает нормально. У _pyren_launcher.py есть кнопка Monitor, это не то же самое? (тут у меня такая же ошибка, ImportError: No module named tkinter)
Спасибо, что помогаете)
добрый день.
к сожалению в последних версиях bus_monitor не проверял. постараюсь проверить в ближайшее время и ответить
Добрый день. Есть какие-нибудь новости? Любопытство не дает покоя)))
и ещё вопрос, а если подогрев сидений не был в родной комплектации, а потом поставили новые с подогревом, то их надо "где-то" включать в бортовом компьютере?
Добрый день.
а новости в каком плане? разработчики сейчас попробовали выпустить готовым приложением PyClip, но функционал там упрощен по сравнению с пиреном, поэтому если будет продолжение — добавлю новую версию, пока там не очень удобно все.
zimirrrr
Добрый день. Есть какие-нибудь новости? Любопытство не дает покоя)))
и ещё вопрос, а если подогрев сидений не был в родной комплектации, а потом поставили новые с подогревом, то их надо "где-то" включать в бортовом компьютере?
подогрев сидений вроде только в приборке активируется для лампочки.
zimirrrr
Добрый день. Есть какие-нибудь новости? Любопытство не дает покоя)))
и ещё вопрос, а если подогрев сидений не был в родной комплектации, а потом поставили новые с подогревом, то их надо "где-то" включать в бортовом компьютере?
а, понял =)
нет, пока не. занимался
тоже ошибка на новых версия пирен.
zimirrrr
Добрый день. Есть какие-нибудь новости? Любопытство не дает покоя)))
и ещё вопрос, а если подогрев сидений не был в родной комплектации, а потом поставили новые с подогревом, то их надо "где-то" включать в бортовом компьютере?
в итоге сделал так:
1. скопировал старую версию 99.
2. в bus_mon в строке name.lower прописал вместо 'pyren' -> 'pyren99'.
3. в старую 99 версию скопировал файлы из конца записи про v3.
на работу обычного пирен 9k версии это не будет влиять.
zimirrrr
Добрый день. Есть какие-нибудь новости? Любопытство не дает покоя)))
и ещё вопрос, а если подогрев сидений не был в родной комплектации, а потом поставили новые с подогревом, то их надо "где-то" включать в бортовом компьютере?
есть более простой вариант.
разработчик отдал на тесты версию.
замените этим файлом существующий.
cloud.mail.ru/public/Gq4r/C7R2SddAk
спасибо, с этим запустился!
Спасибо
Как узнать, какой файл для каких авто? Почему вы выбрали 1, а не 2,3 или 4?
исключительно по версии файла — этот был более свежий. с базой 17 года я не пробовал еще.
То есть если выбрать другой из этих четырёх, то в принципе, скорее всего покажут тоже самое? Первые две цифры это модель?
да, покажут 99% тоже самое.
первое — код проекта / индекс модели. на сценике 3/мегане3 — проект x95
Добрый день.А для запуска скрипта bus_monitor на андроид нужна база DDT, вроде-бы DDT на андроиде не работает
Никто и не говорит, что ДДТ работать будет. Одна папка нужна — база
Спасибо
amokkspb
Никто и не говорит, что ДДТ работать будет. Одна папка нужна — база
Подскажите что делаю неправильно-с bat фала PYren запускается, скомандной строки отправляю C:\Python27\Scripts\pyren09b>pyren.ru -p pp -vv --lod=1 --demo- и пишет C:\Python27\Scripts\pyren09b не является внутренней или внешней командой, исполняемой программой или пакетным файлом
Ошибка в пути. Что там делает знак >?
а какой должен быть?
Смотря какой путь до скриптов, наверное просто слеш — \
результат тот же.При запуске с бат файла стоит->-знак.Может легче вносить изменения в бат-файл, чем париться с командной строкой?
С одной стороны 7 лет красивая цыфра, а с другой, солидный возраст, что говорит о том, что пора искать замену :( я думаю, почитав многих, на 636-й ты уже не глянешь, и повод конечно есть.
Были б деньги взял бы не бумая его, тем более Артем все уже делает.
те ты готов еще сверху кучу бабла выложить?
я уже в эту кучу бабла выложил, и салоны и аркамисы =) еще надо перед летом переднюю подвеску наверное сделать, да и тормоза полностью обновить, зря что ли еще в том году тебя ими напрягал…
Поэтому вложить эти 25-30 тыс за первое ТО с отключением сажи и решением проблем — ну просто как обязательная процедура.
Ремни, вклады ведь все равно меняют, также с сажей — все равно удалять, тут просто начальное ТО чуть дороже…
Молодец, Андрюха! Так держать!)
Ага, держусь ;)
С Днюхой! Как всегда на высоте!
Спасибо!
С Днем Рождения!
Спасибо ;)
Маг-кудесник!
Это все Shr-lnm. Вот это прям кладезь знаний по протоколу. Не было бы на форуме информации — я бы сам не придумал.
Крутяк!
Хеппи бьоздей!
Спасибо!
круто! спасибо)
Рад, что понравилось! Пробуйте тоже! :)
Спасибо за еще одну интересную статью!
а вам спасибо за скрипт, благодаря которому такая статья стала возможной!
Shr-lnm
Спасибо за еще одну интересную статью!
и вам спасибо! за помощь в таком хорошом деле:)
7-ка красивая цифра!
С днем рождения!
Спасибо!
хотя для машины 0 и 1 тоже не плохо =)))
0111
А когда у тебя отсчет пойдет? )
Пути Господни неисповедимы…
С ДР!
Удачи!
Спасибо!
С днем рождения Вас!
Спасибо! :)
Какая лошадь!
А я пока что не осилил связать ELM и Андроид…
Надо собраться и сделать! :)
В тесте оно вроде работало.
Там надо руками адрес ELM в строку кода забивать?
А то по умолчанию предлагается просто выбрать из списка.
для wi-fi? Да, но он не меняется.
а для BT он каждый раз будет экран выдавать и спрашивать какой адаптер.
Блютуз однако у меня.
Меню показывает список устройств в котором значится ОБД2 (мак адрес)
Ну и отлично, его просто пальцем выбрать.
Наверное Я просто не понял, присоединилось ли оно.
Буду пробовать еще…
а сопряжение работает, т.е. блютус подключился в настройках телефона?
торк там всякий работает?
Торк работает.
При первом запуске показал кучу информации, а сейчас почему то при включении закладки "Test Results" сканирует только 1 %.
Информация в реальном времени считывается.
Может первый экземпляр торка еще активен? Проверь все приложения, все лишнее позакрывай.
Интересно)), с днем рождения)))
Спасибо! :)
Крутяк
Очень интересно! С ДР!
Спасибо!
С Днюхой! Можно и отметить как следует — завтра выходной ;)))
Да, уже выбрал вино ;)
с днем рождения!)
Спасибо! ;)))
С Днюхой твою красотку )
Спасибо!:)
Супер, ты как всегда на высоте! Прочитал всю статью, очень интересно, спасибо тебе ещё раз за твои старания! Ну и конечно от души поздравляю тебя как владельца и твоего Сеньку с Минуткой рождения, желаю в первую очередь ему сильных и здоровых коней под капотом, пусть тебя радует и дальше, а тебе здоровья, терпения и всего самого наилучшего!
Спасибо!
спасибо за старания.добавил в закладки
Спасибо, что читаете ;)