для чего программа tool32

Смена UIF (Vin) через Tool32

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Всем доброго время суток. Как писал раньше буду потихоньку выкладывать что делал и как все прошло. Машина в моих руках с 2015. Я второй владелиц. Так как первый владелиц обслуживался только на официальном дилере поднять историю не составила труда. Ну и как вы понимаете дилер не обновлял софт до крайней версии ПО в блоках. Потому что тупо им запрещено иметь и использовать инженерный софт. Ну да ладно это лирика. Да и к обновлению ПО по блокам думаю в следующем посту. Это инфа будет интересно тем у кого есть свой шнурок и стоит BMW Standard Toolset. Как то я начал разбираться с программкой INPA. И в одном из пунктов а именно UIF меня ждала не очень лицеприятная картина (см. фото но сразу обращу внимание это фото не мое, тупо нашел в интернете но картина была не особо лучше. На картинке видно что во многих блоках UIF(VIN) «ЯЯЯЯЯЯ» или «000000». Начал изучать данный вопрос и пришел к выводу что сменить UIF (VIN) можно 2-я способом:

1 При программирование (обновление ПО) блока в WINKPF и указать в поле VIN свой корректный вин номер
2 Сменить UIF в сервисе Tool32 который идет в BMW Standard Toolset.

Я пошел по первому пути. Но к сожалению не получилось обновить ПО у всех Блоков. Т.к тупо на некоторых боках была последняя версия ПО. Пришлось разбираться как сменить UIF через Tool32.

П.с — Tool32 (ToolSet 32) программа серьезная. Не туда тыкнул или еще что. Может закончится печально. По этому с начало читаем изучаем, потом делаем.

Источник

Tool32 BMW — работа с ЭБУ BMW

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Всем доброго времени суток!

В данной записи, хочу познакомить Вас с программой ToolSet32(далее Tool32), точнее даже не познакомить, так как многие о ней наверняка знают, а провести краткий курс работы с программой, краткое руководство, принцип работы, некоторые особенности и функции программы.
Программа Tool32, входит в состав BMW Standard Tools, включая комплекс Ediabas. Все знают что данный комплекс, является связующим интерфейсом между машиной и диагностическим ПО. Как установить и где скачать BMW Standard Tools, какие адаптеры для этого нужны, я рассказывать не буду, так как этой информации валом в интернете. Скажу одно, что всем, кто хочет работать с ЭБУ BMW этот комплекс обязателен. В его состав входят такие программы как INPA, NCS Expert, WinKFP ну и соответственно Tool32, о последнем и будет речь, так как с остальными более менее всем понятно.
Tool32 это по сути программа для низкоуровневого взаимодействия с блоками управления автомобиля.
Собственно вот она:

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Многие из нас, игнорируют данную программу, в принципе и правильно делают) Так как неосознанные и без понятия действия, могут привести к непредсказуемому результату и неудачным последствиям. Тыкать на абум с этой программой не прокатят, в данном случае надо знать и понимать что делаем и какой будет результат. Ну да ладно, у нас краткий курс и руководство, поэтому не будем отходить от темы.
Для работы в Tool32 требуются SGBD-файлы (SGBD = Steuergerätebeschreibungsdatei). Это файлы, которые описывают доступные функции и параметры этих функций в конкретных блоках управления. Изначально Tool32 была придумана как отладочная программа для разработчиков диагностического ПО.
SGBD-файлы имеют расширение .PRG. Как правило любой диагностический софт использует их, чтобы работать с блоками управления, те же ISTA/P и Rheingold. И даже INPA, которая на самом деле является интерпретатором скриптов (IPO), использующих функции из SGBD-файлов для получения результата и вывода его в виде таблиц или изображений. В том числе и многочисленные утилиты, созданные программистами.
С помощью Tool32 можно открыть SGBD-файл, увидеть список доступных функций (или методов, в терминологии программирования), вызвать их, передав необходимые параметры (если есть) и получить результат выполнения. Точно такие же результаты, но оформленные в более читаемом виде, вы получаете при использовании любого диагностического ПО. Проще говоря, диагностировать что-либо можно даже с помощью одного только Tool32, конечно если позволяет опыт и навыки.

Программа кстати, может работать в тестовом режиме, конечно, какие либо данные с блоков по авто Вы не получите, но, набраться опыта и поучиться работать с программой, работой с файлами вполне. Чтобы активировать тестовый режим, нужно запустить Tool32 (если у кого при установке комплекса программ, не создался ярлык запуска Tool32, то файл для запуска при стандартной установке комплекса, программы находится по пути c:\EDIABAS\Bin\Tool32.exe), далее зайти во вкладку «Configuration», далее выбрать «Ediabas», и поставить галочку в строке «Simulftion», вот так:

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Краткое руководство по работе с файлами и программой, Вам поможет так называемый FAQ, файл Tool32_E.chm, который находится по пути c:\EDIABAS\Bin\Tool32_E.chm, если кто хочет скачать отдельно, вот ссылка (265 Кб). Вот как выглядит FAQ:

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Советую изучить и ознакомиться.
Так как Tool32 работает с файлами SGBD, нам нужно научиться определять и выбирать его правильно. Прежде всего, нам понадобятся файлы SP-daten для кузова с которым хотим работать, эти файлы можно скачать на просторах интернета (я уже приводил ссылки в прошлых записях). На примере своего BMW (е39), я покажу и расскажу как правильно выбрать необходимый файл, в принципе с другими кузовами технология та же. Нам понадобится файл E39SGFAM.DAT, который находится в папке «daten», открываем его текстовым редактором, получаем:

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

В этой таблице перечислены имена блоков управления и соответствующие им имена CABD- и C_SGBD-файлов. CABD = Codierablaufbeschreibungsdatei, скрипт того же формата (IPO), что применяется в INPA, но предназначен для процедуры кодирования блока управления (они часто используются одни и те же, ввиду одинаковости процедуры), а C_SGBD — SGBD-файл с функциями кодирования блока. Вот эти самые C_SGBD нас и интересуют. Например если я ищу файл приборной панели е39, то смотрим KMB получаем имя C_KMB, вот собственно именно с этим именем файл SGBD нам необходимо открыть в программе Tool32.
Сам по себе E39SGFAM.DAT не совсем точен, т.к. предполагает только один вариант CABD-/C_SGBD-файлов на конкретное имя блока, тогда как с выпуском новой прошивки могут потребоваться другие.

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Прошу заметить, что открывать и выбирать нужно только те файлы, функции блоков которые имеются в автомобиле, иначе выполнять какую либо работу с файлом Вы не сможете.

Итак, после открытия файла, Вы увидите кучу открывшихся окошек, это хорошо, так и должно быть, это означает, что связь с машиной установлена, если же никаких окошек нет, то проверяйте настройки Ediabas, либо верно выбранный SGBD-файл.
Из всех открывшихся окошек нас интересуют лишь три: Select Job: название модуля (список функций), Job-Info (подсказка по функции/её параметрам), ну и конечно же Results. Остальные окошки можно свернуть.
При выборе нужной строки одним кликом (одним нажатием), в окошке Job-Info Вы получите пояснения на данную операцию, например:

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

При выборе строки двойным кликом, данная операция будет выполнена, поэтому всё же рекомендую для запуска использовать клавишу F5, ну и предупрежу, строго запускайте операции, в которых Вы имеете понятие, что будет сделано в итоге, окошко Job-Info, так как здесь содержится информация о функции, её параметрах, формате данных и результатах, которые мы получим в результате выполнения данной функции, причем Google-переводчик совместно с этим окошком даст возможность разобраться что выполняет та или иная операция.
Я думаю с этим более менее разобрались, теперь я приведу пример выполненных операций с блоками своей е39, сразу прошу заметить, что в блоках свежее, может быть больше операций.
Раз уж открыли файл функций блока приборной панели (KMB), то например строка c_zcs_lesen, даст нам информацию о шифре ZCS, записанным в приборку:

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Строка c_fg_lesen, даст нам информацию о номере кузова:

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Строка ident, даст информацию о блоке приборки:

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Строка sia_reset файла приборной панели, позволит нам сбросить сервисный интервал.

Считали так же информацию о номере кузова с блока EWS:

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Далее откроем файл SGBD функций ЭБУ DME, т.е. нашего ДВС, для этого откроем файл с именем MS411DS1.PRG, видим что строк операций значительно больше:

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Считали информацию по ЭБУ операцией info:

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Посмотрели номер запчасти ЭБУ DME, марку ДВС и тд тп выполнив операцию ident:

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Посмотрели ошибки неисправностей ЭБУ ДВС, выполнив операцию fs_lesen:

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Считали номер ISN для EWS, воспользовавшись операцией isn_lesen:

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Если обобщить то строки имеющие слово lesen позволяют нам считать различного рода информацию с ЭБУ (пример я привел выше), строка info позволяет нам получить информацию о ЭБУ соответственно (маркировка, версия), строка ident позволит нам узнать номер детали ЭБУ, дату выпуска, маркировку ДВС и тд, !далее очень внимательно и аккуратно!, строки с словом loeschen произведет сброс каких либо данных ЭБУ, например строка adapt_loeschen в блоке ДВС, произведет сброс всех адаптаций, строка fs_loeschen удалит все неисправности из памяти ЭБУ ДВС, строки со словами checksumme говорят о работе с контрольной суммой ЭБУ, строки с словом schreiben произведут запись данных в ЭБУ (с этой строкой будьте очень внимательны и аккуратны, выполняйте данную операцию с полным понятием того, что Вы делаете), строки с словом status дадут какую либо информацию, статус, значение, положение в режиме реального времени, например строка status_l_sonde даст нам информацию о напряжении лямбда зондов до катализатора, строки с словом steuern произведут запуск механизма, оборудования, например строка steuern_selbsttest_ein в блоке приборки, произведет запуск теста приборной панели, соответственно строка steuern_selbsttest_aus выключит тест приборной панели, строка со словом reset произведет перезапуск какого либо оборудования, механизма, например строка steuergeraete_reset в блоке приборки, произведет перезапуск приборной панели. Стоит так же упомянуть, что некоторые операции как например c_s_lesen в блоке приборной панели, описан формат единственного аргумента (параметра) функции. Называется аргумент BINAER_BUFFER (и имеет тип Data, т. е. надо ставить соответствующую галочку в поле ввода перед выполнение операции), в таких операциях как например steuern_selbsttest_ein (тест приборной панели) галочка Data соответственно должна быть снята.

Это так сказать простейшие операции для примера работы с файлами функций блоков автомобиля. Естественно функционал программы Tool32 на этом не ограничивается, точнее это самые простейшие операции по считыванию информации с ЭБУ, дабы по-ближе познакомиться с программой.

На данном этапе, знакомство наше с программой подошло к концу. Да и драйв2 нас ограничивает и намекает, что пора заканчивать) Дабы не грузить теорией в своем БЖ, хоть и связанной с работой ЭБУ BMW, следующие записи будут связаны непосредственно с моей е39, а уж потом продолжим наше обучение и работу с ЭБУ BMW. В следующих теоретических записях я познакомлю Вас с более сложными операциями Tool32, хотя эту информацию смогут осилить далеко не все, это по силу программистам, так как работать придется с байтами, калькуляторами для программистов и тд и тп.)

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Всем спасибо за внимание, до Скорых встреч!

Источник

Для чего программа tool32

всмысли акб прописать? К стыду своему должен сказать что один раз всего запускал этот тул

На е60 к примеру емкость прописывается и делается регистрация новой батареи, при ее замене

Если с ПРГ понятно, то второе я не могу понять((

:z_6::nice:
ща посмотрю, что мне скидывали, какую подсказку.
тоже интересна эта тема, мануалы просил, сказали их нет(( учи все сам.

Дать ссылку на Ганхеда?)

надо читать сообщения men’a на тулсах

только весь вопрос не что такое тул и как с ним работать, а чтоже за jobs в prg файлах
неверное многие хотят шпрехать на дойче как только начинают хоть как то работать с этим пакетом standart tools 🙂

а кодирование через тул не сделать, только для очень маленького и ограниченного числа блоков

для меня тул очень удобен, хоть я и знаю то как и многие коекак с натягом 1% от возможностей
но когда есть время на опыты пытаюсь продвинутся дальше

надо уяснить что инпа работает на основе prg-файлов но еще использует ipo-файлы
и в этих ipo иногда используется совсем не всё что было в prg, те мы имеем усеченный функционал
ipo это вообще тупо файл который говорит инпе что и где показывать
т.е. это тупо как html 15-летней давности
сказано туту написать такой текст, тут поставить мигающую точку, тут нарисовать гистограмму, а тут вставить текс из результата данного job из такогото prg
все, инпа тупая и не более того
это тупо GUI этих самых jobs из prg и не более того
именно изза этого там и куча разных косяков бывает
т.к. если програмист изначально делал ipo для америки и там сделал все обозначения в фаренгейтах а потом вдруг использовал этот фал как основу для метрической системы то мы и видим что у нас температуры совершенно безбашенно показываются и тп

т.е. вы понимаете что вы по сути почти всегда и работали с этим самым тулом только через другой пользовательский интерфейс

мне тул нравится за свою скорость получения результата
ну это и понятно, т.к. отсутствует куча посредников, особенно когда вспоминаешь дис
ну и так всякие побочные плюшки, которые познаются по мере опыта

пример чтобы понять как сильно иногда тул упрощает жизнь
вспомним счетчик срабатывания DWA для 39/46/53 кузовов и тп
в инпе его вообще не найдешь(если кто нашел скажите где)
всегда раньше смотрел его через дис, это же жуть минут 15 теряешь пока посмотришь
а если надо часто смотреть то вообще вешайся
в тул же заходишь в zke3 и там запускаешь всего лишь один job(каккто так инфоспихерлесен) и радуешься результату за 30 секунд

кстати запускайте tool в режиме симуляции(в настройках тула, надо включать каждый раз) и тренируйтесь без подключения к машине

а про API рекомендую посмотреть папку API из ediabas позапускать там разные файлики и вообще получить отрыв башки наскока вообще большие возможности у этого пакета
так удобно приехала машина
ты запустил excel и сохранил себе все необходимые данные о машине сразу в excel себе на будущее, для истории

Источник

Учимся диагностировать/кодировать/прошивать (EDIABAS/INPA/NCS Expert/WinFKP/Tool32)

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Кода у меня была e46 я купил себя BMW Scanner и был очень доволен.

Я всегда думал что BMW Scanner для лохов, ну вот решил купить кабель K+DCAN и использовать БМВшные программы для диагностики/кодировки/прошивки на своем новом e92.

Кратко о BMW Tools:

EDIABAS
Некий сервер который работает в фоновом режиме и является мостом между кабелем и программой (INPA/NCS Expert/…)

INPA
Программы для чтение состояние машины, вкратце это программа для диагностики.

NCS Expert
Программы для кодирование модулей машины, с помощью его вы можете добавить/убавить опции на машине.

WinFKP
Программы для прошивки модулей машины, с помощью его вы можете обновить блоки, залить прошивки.

Tool32
Программы для прошивки модулей машины (но низкоуровный), что то явно опасное :D.

Оказался что не все уж можно легко купить, нужно еще найти все эти БМВшный программы, настроить драйвера и как то заставить все это работать. Не буду тянуть, но спустя месяц мне все таки удался это сделать.

Для использование софта нужно
1) Скачать VirtualBox еще ExtensionPack.
2) Запускаем образ входим «USB Drivers» и устанавливаем Original.
3) Подключаем кабель к машине и радуемся.

Источник

Кодирование со смыслом, часть 4. BMW 6 series

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Завсегдатай

В этой части речь пойдёт о ещё более глубоком погружении в тонкости кодирования автомобилей BMW. Как и прежде, речь ведётся конкретно о семействе кузовов E60 (соответственно это также E61 и E63/E64). Теоретически всё нижеописанное подходит и для остальных кузовов, разве что E65/E66 стоят несколько особняком. У них там своя атмосфера.

Все посты на тему кодирования не содержат списков конкретных действий типа «Нажмите сюда, потом туда, введите то, введите это и получите результат». Цель этих постов — научить читателя думать и понимать, чтобы он мог решать конкретные задачи самостоятельно без инструкций.

Сегодня мы поговорим о приборной панели. Каждую панель на заводе адаптируют под конкретный автомобиль, вставляют нужные шкалы, калибруют и кодируют. Функциональность приборной панели задаётся на заводе и последующему изменению формально не подлежит. Такими функциями «с завода», например, является бегунок круиз-контроля и работа стрелки под тахометром либо в качестве датчика мгновенного расхода топлива, либо указатель температуры масла на автомобилях с претензией на спорт или являющиеся таковыми.

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Бегунок круиз-контроля (зелёный)

С круизом более-менее понятно: если машина вообще не оборудована круиз-контролем, то бегунок отключен. На кузовах серии E89 (т. е. все «трёшки» и подобные) так и вовсе существует два варианта приборных панелей: HIGH и LOW. В варианте LOW бегунок круиза, не берусь утверждать на 100%, вообще физически отсутствует.

С E60 попроще, там бегунок в приборке, как правило есть. Хотя, несмотря на то, что в ETK есть всего один вариант приборной панели без привязки к опции круиха, таки существуют панели, в которых бегунок физически отсутствует. В этом случае кодирование бесполезно.

В иных вариантах он есть, но может быть просто неактивен. Активен он у вас или нет, можно узнать с помощью так называемого «KI TEST». На данном видео бегунок активен:

Если бегунок у вас есть, значит круиз в принципе активен. Если же нет, то нужно экспериментировать.

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Допустим, вы всё-таки захотели оснастить свой автомобиль этим самым круиз-контролем, в варианте либо «S540A Система поддержания заданной скорости» (дорестайл), либо «S544A Система поддержания заданной скорости с функцией подтормаживания» (рестайл). Это довольно бюджетное дооснащение и в принципе нужно приобрести только ручку и пару кожухов рулевой колонки.

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

Неработоспособность бегунка (если он физически всё-таки есть) связана с тем, что параметр, отвечающий за его функционирование, находится в той области памяти, которая не подлежит изменению. Вернее, не подлежит изменению с помощью кодировочных индексов. И это не часть прошивки, это область с так называемой заводской кодировкой, поэтому заниматься перепрошивкой приборной панели в надежде, что заработает ползунок, нет никакого смысла. В заводской кодировке хранятся параметры относительно физических характеристик приборной панели (и не только), т. е. диапазоны отображения числа оборотов двигателя, скорости на спидометре и т. д. Всё это не может быть изменено прошивкой.

Вы наверняка слышали о кудесниках, которые за определённую мзду включали каждому желающему этот бегунок. Порядок цен не знаю, но думаю услуга по стоимости близка к стоимости самих запчастей для круиза. Так вот, я не знаю точно, как именно стало известно, как включить бегунок. Скорее всего изначально методом реверс-инжиниринга, путём сравнения дампов памяти (Википедия) приборных панелей с круизом и без него. Далее уже варианты, либо правился сам дамп, а потом заливался обратно в чип памяти, либо программным способом. Второй куда проще в плане того, что демонтировать приборную панель не надо, ничего разбирать, припаивать и отпаивать для чтения памяти тоже.

В публичном доступе информация о том, как самостоятельно выполнить такие изменения, я полагаю, впервые появилась здесь, её разместил житель Финляндии с ником ptikkala на Bimmerforums. Причём там же он привёл неизвестные строчки кода, которые описывают область памяти с заводскими настройками. Нечто подобное можно получить в NCS Dummy, выполнив дизассемблирование кодировочного индекса, но именно таких строчек в полученном текстовом файле вы не увидите. Просто потому что там нет такой информации.

Далее инструкция расползлась уже по сети, переведена на языки (например, здесь на русском) и т. д. Недостаток этой инструкции в том, что она описывает просто по шагам, что нужно делать. Но мы не знаем, что именно делаем и зачем. К примеру, контрольную сумму предлагается просто увеличить на единицу, но в общем случае так поступать нельзя. Работает это всё исключительно благодаря тому, что меняем мы как раз самый младший бит всей последовательности, который и влияет на контрольную сумму таким вот образом. Я попробую пояснить, что именно там происходит и как можно упростить этот процесс, а также попробуем минимизировать возможность допущения ошибки.

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Эту программу большинство обходит стороной и правильно делают, т. к. неразумные действия при работе с ней могут привести к непредсказуемым последствиям. Tool32 — программа для низкоуровневого взаимодействия с блоками управления автомобиля. Сама она идёт в составе комплекса EDIABAS, а с ним знакомы все, кто хотя бы занимается диагностикой BMW. Комплекс является связующим звеном (интерфейсом) между машиной и диагностическим ПО.

Для работы в Tool32 требуются так называемые SGBD-файлы (SGBD =Steuergerätebeschreibungsdatei, ох уж эти чёртовы немцы). Это файлы, которые описывают доступные функции и параметры этих функций в конкретных блоках управления (собственно, SGBD-файл). Изначально Tool32 была придумана как отладочная программа для разработчиков диагностического ПО.

С помощью Tool32 можно открыть SGBD-файл, увидеть список доступных функций (или методов, в терминологии программирования), вызвать их, передав необходимые параметры (если есть) и получить результат выполнения. Точно такие же результаты, но оформленные в более читаемом виде, вы получаете при использовании любого диагностического ПО. Проще говоря, диагностировать что-либо можно даже с помощью одного только Tool32, если вы Рэмбо.

Сегодня мы работаем с приборной панелью, а значит блок управления у нас имеет название KOMBI. Осталось выяснить, какой именно SGBD-файл работает именно с комбинацией приборов. Определить это труда не составляет, ведь в Daten-файлах заложен кладезь информации на этот счёт. Если в первой части я рассказывал про файл E60AT.000, то теперь нам нужен другой файл, называется он E60SGFAM.DAT из той же папки daten, что и E60AT.000:

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

В этой таблице перечислены имена блоков управления и соответствующие им имена CABD- и C_SGBD-файлов. CABD = Codierablaufbeschreibungsdatei, скрипт того же формата (IPO), что применяется в INPA, но предназначен для процедуры кодирования блока управления (они часто используются одни и те же, ввиду одинаковости процедуры), а C_SGBD — SGBD-файл для с функциями кодирования блока. Вот эти самые C_SGBD нас и интересуют и мы сразу видим во второй строчке наш KOMBI и соответствующий ему KOMB60.

Сам по себе этот E60SGFAM.DAT не совсем точен, т. к. предполагает только один вариант CABD-/C_SGBD-файлов на конкретное имя блока, тогда как с выпуском новой прошивки могут потребоваться другие. Это не касается непосредственно KOMBI (у него в любом варианте на сегодняшний день используется KOMB60), но касается других блоков. Рассматривать эту тему я сейчас не буду, т. к. это уже выходит за рамки сегодняшней темы. В будущем, возможно, пролью свет на структуру daten-файлов более подробно.

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Если вы видите эту кучу окошек со списком функций, значит связь с машиной в порядке. Если нет, тогда проверяйте настройки вашего EDIABAS.

Из всех открывшихся окошек нас интересуют лишь три: Select Job: название модуля (список функций), Job-Info (подсказка по функции/её параметрам), ну и конечно же Results. Остальные окошки можно свернуть. Прежде всего ещё раз предупреждаю, что необдуманные действия могут привести к реальной порче техники, которую потом будет сложно и дорого восстанавливать, поэтому никогда не делайте ничего такого, чего вы до конца не понимаете.

Можно повыбирать разные функции в списке и посмотреть, какую информацию по ним показывает в Job-Info. Ни в коем случае не выбирайте функции двойным кликом, т. к. это приведёт к её запуску. Двойным кликом запускать функции могут только снайперы без тремора в руках, поэтому всё же рекомендую для запуска использовать клавишу F5, но сейчас ничего запускать не надо. Конкретно нас будет интересовать функция c_c_lesen, вот её и выберем.

Итак, что же это за магическая строка, которую мы передаём в качестве аргумента в функциюc_c_lesen? Любознательный гражданин найдёт ответ не где-нибудь, а непосредственно в той же Tool32, в окошечке Job-Info:

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Вообще, это крайне полезное окошечко, на которое можно и нужно обращать внимание, ведь именно в нём содержится информация о функции, её параметрах, формате данных и результатах, которые мы получим в результате выполнения данной функции. А наперевес с Google-переводчиком можно устранить недопонимания.

По c_c_lesen, как видим, описан формат единственного аргумента (параметра) функции. Называется аргумент BINAER_BUFFER (причём имеет тип Data, т. е. надо ставить соответствующую галочку в поле ввода), а в комментарии расписано, из чего он состоит:

Байт 0: Тип данных (01: Данные, 02: Маска данных)
Байт 1: (не используется) Разрядность (01: Byte, 02: Word, 3: Dword)
Байт 2: (не используется) Порядок байт (00: LSB, 01: MSB)
Байт 3: Адресация (00: Свободная, 01: Блочная)
Байты 4-12: (не используется)
Байты 13,14: Длина последовательности (младший/старший)
Байты 15,16: (не используется)
Байты 17,18,19,20: Адрес (младший/старший байт, младшее/старшее слово)
Байты 21,…: Последовательность
Байт 21 + длина посл.: ETX (03) (замыкающий байт)

Значения байтов, которые не используются, можно смело забивать нулями, а вот с остальными параметрами разберёмся. Хотя некоторую ремарку к описанию я бы сделал, относительно байта 2: в описании к нему несколько некорректное смешивание порядка бит (те самые LSB и MSB ипорядка байт), либо само описание неверно, либо описание значений. Впрочем, этот байт всё равно не используется.

Теперь взглянем по новому на те заклинания из инструкции на Bimmerforums, но для упрощения распилим первое заклинание на две части: до последовательности из FFh и всё остальное.

01 01 01 01 00 00 00 00 00 00 00 00 00 17 00 00 00 00 01 31 00

Здесь у нас приведены байты с 0 по 20 включительно. Жирным выделены как раз те байты, которые будут использованы функцией c_c_lesen. Единички в байтах 1 и 2 никакой роли не играют, туда смело можно было писать 00h. Зато остальное нам задаёт следующее:

Тип данных: 01 (Данные)
Адресация: 01 (Блочная)
Длина последовательности: 17 00
Адрес: 00 01 31 00

Не могу точно сказать, что именно подразумевается под типом «маска данных» (который 02h), возможно это какие скрытые данные, резервная копия или что-то в этом духе. В приборной панели работает исключительно тип 01h. Возможно, при записи неверных данных (с неправильной контрольной суммой, например), предварительно создаётся копия, которую можно потом прочитать. Не знаю, не разбирался.

Далее у нас идёт адресация. В режиме свободной (00h) адресации мне не удалось получить какой-нибудь вразумительный ответ. Зато режим блочной адресации работает прекрасно.

Длина последовательности. С ней надо слегка разобраться, как и с адресом. И что означают эти «младший» и «старший» в описании. Чтобы записать какое-то число в память, нужно определиться, в каком порядке вы будете записывать байты (если число занимает больше одного байта). Например:

Число: 48 860
hex-вид: BE DC

Как мы видим, число занимает два байта, младший из которых справа, точно также, как и младшие разряды самого числа. В память можно записать эти два байта либо как BE DC (так называемый Big-Endian порядок), либо DC BE (Little-Endian). В скобочках в описании к байту у нас как раз и написано, где младший, а где старший, стало быть запись «младший/старший» означает, что первым идёт младший бит или байт. Таким образом 17 00 в строке следует интерпретировать как 00 17 и это значит, что мы хотим прочитать 17h (23) байт.

Осталось разобраться с адресом, с ним чуть посложнее. Термин «слово» применительно к компьютерной архитектуре изначально означал величину в битах или байтах, равную разрядности процессора (см. Википедию), но последние лет 25-30 «слово» (word) означает 16-битное число, т. е. число, которое имеет значение от 0 (00 00) до 65 535 (FF FF) и оно занимает всегда два байта. Синонимом word-а является тип ushort (безнаковый short).

В пояснении к байтам с адресом написано, что порядок задаётся от младшего к старшему биту и от младшего слова к старшему. Т. е. если адрес в нормальном виде выглядит вот так:

То младшее слово будет CCDD, старшее — AABB. Согласно заданному порядку, нам нужно развернуть как байты в словах (младший/старший байт), так и сами слова (младшее/старшее слово) относительно друг друга. В результате мы получим вот такую запись:

Стало быть то, что записано в тарабарщине заклинания как 00 01 31 00 нужно интерпретировать вот так:

Сначала я поменял местами сами слова, получив соответственно 01 00 и 00 31, а потом развернул и сами байты. Наглядно:

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Конвертация нормального адреса в адрес для использования в c_c_lesen. Сам рисовал

Сейчас эти преобразования запоминать не особо нужно, т. к. для работы с приборной панелью они в общем-то не нужны (в следующей части станет понятно почему), но могут пригодиться для работы с другими блоками.

Вторая часть заклинания:

FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 03

Можно не пересчитывать количество байт вида FFh, их ровно 23 штуки. Как раз столько, сколько мы хотим прочитать по заданному адресу. Я честно не знаю, зачем такой удивительный механизм придуман для чтения кодировочных данных, но вот он такой: передав N штук этих самых FFh и закончив последовательность замыкающим байтом 03h (он всегда равен этому значению), мы получим какой-то ответ. Замыкающий байт означает, что последовательность закончилась. К слову говоря, байты самой последовательности могут быть равны чему угодно (кроме 03h, разумеется), это не имеет значения.

Теперь заклинание полностью и без пробелов между байтами (так проще копировать и вставлять в строку аргументов):

(ширина DRIVE2 не позволяет это всё в одну строчку отобразить)

Оно всего-навсего просит прочитать 23 байта по адресу 00310100h и выдать результат. Обратите внимание на адрес, в кодировочном индексе нет параметров именно с таким адресом или рядом с ним.

Напоминаю, что параметр BINAER_BUFFER функции c_c_lesen сам по себе имеет тип «data», исходя из описания. Поэтому не забываем поставить галочку Data. Пробуем (выполнение запускается однократным нажатием кнопки F5):

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

c_c_lesen Results (кодировочные данные выделены в редакторе картинок)

Получили результат! Или если не получили (ERROR_BIN_BUFFER в качестве ответа или другая ошибка), то всё проверяем, считаем байтики, пробуем ещё раз. Итого у нас в окне результатов есть строка CODIER_DATEN, содержащая всю ту писанину, что мы туда отправили, но вместо последовательности из FFh какие-то вполне конкретные байтики приехали:

CODIER_DATEN = 45 Bytes
0000 : 01 01 01 01 00 00 00 00 00 00 00 00 00 17 00 00
0010 : 00 00 01 31 00 E0 69 01 00 A0 00 18 01 90 01 08
0020 : 02 26 01 36 14 98 22 FB 30 5D 3F BC 03

ACHTUNG, POZOR, ВНИМАНИЕ: Обязательно сохраните в надёжном месте полученные исходные данные!

Выделим отдельно полученные данные:

E0 69 01 00 A0 00 18 01 90 01 08 02 26 01 36 14 98 22 FB 30 5D 3F BC

Первый байт (E0h) является контрольной суммой для оставшихся 22. Теперь подглядим в тот кусочек исходного кода с Bimmerforums:

//3101’16 ACC_ZEIGER_VERBAUT 00000001b // Fuer ACC/Tempomat, ob der ACC-Zeiger vorhanden
// nicht_aktiv 0b // Basisvarinate, ACC-Zeiger nicht verbaut, kein ACC Betrieb
// aktiv 1b // Highvarinate, ACC-Zeiger verbaut

Ага, адрес байта 3101’16, а бит, отвечающий за ползунок круиза, в нём самый младший (крайний справа). По адресу 00310116h у нас как раз выходит последний байт BCh! Т. е. мы вычитали как раз тот блок с кодировочными данными, который и содержит необходимый байт.

Разложим BCh побитово:

BCh = 188 = 10111100b

Как видим, самый младший бит равен нулю — ползунок выключен. В инструкции нам предлагают увеличить число на единицу, но это реально будет работать только в том случае, если бит действительно равен нулю (т. е. число в десятичном виде чётное). Если же бит у вас установлен, число нечётное, то увеличение на единицу приведёт к непредсказуемым последствиям. Поэтому правильнее всего работать именно в двоичном режиме и проверять, установлен бит (равен единице) или нет.

Помимо этого бита за работу круиза отвечают ещё несколько (этого вам никто ещё не рассказывал):

Бит 0: ползунок вкл/выкл;
Бит 1: единицы измерения шкалы (0: километры, 1: мили);
Бит 2: установлен ли диод круиза (0: нет, 1: да). Актуально только для панелей с индексом 07;
Биты 3-5: не используются (все равны 1);
Биты 6-7: Квадрант нулевого положения.

Напомню, что биты считаются справа налево.

С километрами/милями более-менее понятно, если машина американка или англичанка, бит должен быть установлен.

Бит за номером 2 в кодировочном индексе C07 (в более старых он всегда равен 1 и не используется) по идее должен активировать вот такую иконку:

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Это интересно, но я никогда такого символа на приборных панелях E6x не видел. У меня этот бит установлен с завода (приборная панель уже была с индексом 07). Однако по имеющимся у меня дампам с приборных панелей разных E60, этот бит ставят не всегда, например стабильно на российских E60 он равен 0. Отключение лампы никакого эффекта на отображение круиза не произвело, поэтому если хотите, можете бит установить, а можете оставить. Только нужно помнить, что если у вас он не был установлен (как и бит ползунка), то при установке двух битов контрольная сумму нужно специальным образом считать. Как это сделать я опишу ниже.

Не совсем ясна ситуация с квадрантом нулевого положения. Квадрант — это четверть круга. Двумя битами можно указать на любой из 4: 00b (1), 01b (2), 10b (3), 11b (4). В моём случае указан квадрант номер 3 (10b), у машины из инструкции — 4. В целом, по имеющимся у меня дампам приборных панелей различных кузовов, как с круизом, так и без, можно сделать вывод, что квадрант задан на заводе в любом случае и менять его не нужно.

Переходим к контрольной сумме. Как я уже говорил, в общем случае просто увеличивать на единицу нельзя. Чтобы правильно посчитать сумму, необходимо воспользоваться функциейc_checksumme, но для неё сначала надо составить аналогичное заклинание, но уже содержащее кодировочные данные вместо колбасы из FFh. Т. е. вот так:

Т. е. я заменил все FFh на полученные с помощью c_c_lesen кодировочные данные, заменив последний байт BCh на BDh, но не изменял контрольную сумму, она по-прежнему равна E0h.

Теперь это заклинание нужно отправить в функцию c_checksumme:

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Не забываем поставить галочку Data

В поле OUT_BUFFER функция отобразила последовательность с правильной контрольной суммой, она поменялась с E0h на E1h, т. е. действительно увеличилась на единицу, но исключительно благодаря тому, что я изменил только самый крайний бит последовательности.

Осталось исправить контрольную сумму в нашем заклинании:

Всё, теперь можно записывать! Для этого есть функция c_c_schreiben:

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Если в поле JOB_STATUS мы видим слово OKAY, значит всё прошло успешно. Скажу сразу, эта функция не проверяет контрольную сумму, она запишет всё, что вы ей передали, как есть.

Осталось выполнить перезапуск приборной панели. Для этого есть функция steuergeraete_reset, но она ещё сбрасывает установленное время. Чтобы этого избежать, можно выполнить другую функцию, sg_reset_ohne_uhr_datum:

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Дело сделано! Теперь надо протестировать? Кулхацкеры тестируют вот так:

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Запускаем процедуру (зажигание должно быть выключено) steuern_selbsttest_ein, передав в качестве аргумента число 0 (выключить тест), 1 (однократно), 2 (бесконечно). Выключить тест можно также запуском процедуры steuern_selbsttest_aus. Перед запуском убедитесь, что галочка Data снята.

для чего программа tool32. Смотреть фото для чего программа tool32. Смотреть картинку для чего программа tool32. Картинка про для чего программа tool32. Фото для чего программа tool32

Результат получен, щастье наступило.

На этой ноте я вынужден прерваться, т. к. оказалось, что пост целиком не влез. Нетерпеливые могут сразу поэкспериментировать, а оптимизаторы — дождаться следущего поста, который выйдет на днях.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *