кодирование ncs expert bmw e60
Освоил кодирование е60 (EDIABAS, INPA, NCSExpert, Rheingold)
С момента покупки БМВ хотел купить шнурок, все никак руки не доходили)) Но все таки это произошло и пришел мне мой шнурок — Car OBD 2 Diagnostic Tool Cable INPA/Ediabas K+DCAN USB Interface For BMW 98-08
Далее скачал профили для NCS-Expert с забугорного сайта:
ТЫК
И пошел с этим всем делом в машину. Для начала запустил рейнгольд, прочитал ошибки и стер. Теперь не надо будет настырно звонить электрикам, просить чтоб записали на прием и платить бабло за 5 минут работы.
Что было закодировано при помощи NCS-Expert tool:
M-Sport меню
В iDrive Меню после изменения всех 3 ниже перечиленных строк, появится выбор M-HUD
Блок: CAPPL
MDRIVE
aktiv
HUD_M
aktiv
Блок: HUD
M_SPORT_HUD
aktiv = Automatik
aktiv_handschalter = ручное переключение
Тут не все просто, поскольку у меня дизель, Мдрайв отображается неправильно, из за оборотов, в бензинке то больше)
Обратите внимание, если закодировать эту функцию, то одна из кнопок на руле не будет работать (Ромбик либо Звездочка).
По мимо этих трех пунктов, нужно было еще закодировать:
Блок HUD
кодировать с помощью Nettodat:
B 00307000,0010, xx, xx, 00,5C, B5,9C, 9F, A2, A5, D1,00,82,3B, 2E, 21,14
№13 Кодирование с помощью NCS Expert полезных и не очень функций
Желаю здравствовать!
NCS Expert Tool — программа из набора BMW Standart Tools, предназначенная для кодирования ЭБУ (электронных блоков управления), входящая в состав EDIABAS (Электронная диагностическая базовая система).
Научиться пользоваться ей не сложно. Нужен лишь шнурок к авто, компьютер и время. Куча описаний и видео находится в сети по настройке программы перед кодированием, да и описаний самого кодирования предостаточно, так что останавливаться на этом не буду. По этим вопросам можно заглянуть например вот по этим ссылкам: Раз и Два.
Здесь — пошаговая инструкция по кодированию BMW, при помощи NCS Expert и NCS Dummy.
Ещё будьте внимательны с версиями этой программы, поскольку настройка профиля в версии 3.0.1 немного отличается от настройки профиля в версии 4.0.1. Это касается в частности процедуры кодирования ЭБУ. Если у вас при попытке кодирования ЭБУ вылетает ошибка, то проверьте настройки профиля: В редакторе профиля нажимаем на FSW/PSW и место считывания выбираем «из CVT«, а не «из файла ___» — это для версии NCS EXPERT 4.0.1.
Сначала хочу привести расшифровку всех присутствующих у меня ЭБУ.
1RAD — Магнитола BMW Business CD
4DMOT (DDE) — Цифровая электронная система управления дизельным двигателем
ABG — Система подушек безопасности Airbag
CAS — Система доступа в автомобиль
DSC — Система динамического контроля стабильности
EKP — Регулируемый топливный насос
FRM — Модуль в пространстве для ног
FZD — Функциональный центр в крыше
IHK — Встроенная автоматическая система отопления и кондиционирования
JBBF — Электронный блок управления JBE
KOMBI — Комбинация приборов
PDC — Сигнализация при парковке
Далее приведу примеры закодированных мною функций на моём авто. Некоторые из этих функций у меня уже были прописаны. Может старый хозяин заморочился, может завод так установил, но не суть.
-ДХО (вывод пункта меню на приборку в БК): TAG_LICHT_AN и TAG_LICHT_AUS, оба в aktiv \\В моём блоке FRM ДХО можно сделать только дальний в пол- или треть- накала. Ангельские глазки не возможно сделать в качестве ДХО, необходимо менять ЭБУ на FRM2 или FRM3, что возможно будет проделано в будущем
-Текущая скорость в БК (электронный спидометр): BC_DIGITAL_V в aktiv \\у меня это уже присутствовало
-Моментальный расход топлива на приборке в цифровом виде: DIGITAL_KVA в activ \\у меня это уже присутствовало
-Добавить пустое поле в БК: BC_LEERZEILE в aktiv \\у меня это уже присутствовало
-Комфортное закрытие (Складывание зеркал при постановке на охрану и автоматическое раскладывание при снятии): SPIEGEL_KOMFORT_EINKLAPP в activ \\у меня это уже присутствовало
-Альтернативный режим работы аварийки (по два быстрых моргания — американский стиль): DOPPELBLINKIMPULS_WARNBLK в aktiv \\себе не кодировал, но функция интересная
-Мигание туманок при мигании дальним (туманки отключаются в момент мигания дальним): LH_UND_NSW_NICHT_GLEICHZ в aktiv
-Отключение гонга, когда дверь водителя открыта, а ключ находится в слоте: CC_ZUENDSCHLUESSEL в nicht_aktiv
-Открытие\закрытие окон одним нажатием: (водительское) FH_FAHRERTUER_TIPP_AUF \ FH_FAHRERTUER_TIPP_ZU оба в aktiv (пассажирское) FH_BEIFAHRERTUER_TIPP_AUF \ H_BEIFAHRERTUER_TIPP_ZU оба в aktiv \\у меня это уже присутствовало
-Отключение включения кондиционера при нажатии кнопки Auto: C_CKM_D_KLIMA_MIT_AUTO, KLIMA_MIT_AUTO_0, KLIMA_MIT_AUTO_1, KLIMA_MIT_AUTO_10/15, KLIMA_MIT_AUTO_2 все в nicht_aktiv
-Включить надпись AUTO (на экранчике климата) в автоматическом режиме климата: GEBLAESE_AUTO_MIT_A в aktiv
-Сигнализация сработает если машина была закрыта кнопкой, а дверь открыть ключом: SCHAERFEN/ENTSCHAERFEN заменить schloss_und_fernbedienung на nur_mit_fernbedienung
-Комфортный выход (ключ отстреливается при долгом нажатии на кнопку stop): KOMFORT_EJECT в aktiv
-Завершение дворниками цикла очистки до конца при выключении мотора: ZYCLUS_VOLLEND_KLR_AUS в aktiv \\у меня почемуто нет такого параметра, возможно нужен поновее ЭБУ, но функция полезная
-Отключение омывателя фар: SCHEINWERFERREINIGUNG или SCHEINWERFERREININUNG в nicht_aktiv \\себе не кодировал
-Новый режим работы омывателей фар (три более коротких импульса вместо двух): ANZAHL_SPRITZIMPULSE->wert_03 (3 спрей-импульса), DAUER_SPRITZIMPULSE->500_ms (продолжительно спрей импульса), PAUSE_SPRITZIMPULSE->1000_ms (пауза между импульсами) \\себе не кодировал
-Отключение ГОНГА ремней безопасности (индикатор на приборке всё равно горит): SBR_BEIFAHRER_1 и SBR_FAHRER_1 оба в nicht_aktiv \\как утверждает u36a — это именно грамотное отключение гонга, т.к. подушки при этом работают
-Включение AUX на BMW Business CD (если нет, а точнее пропала после сброса клеммы АКБ например): Прошиваем пустым .MAN-файлом
А вообще достаточно полезно посмотреть видео по кодированию от Паши u36a на Yutube. Крайне полезно и доходчиво для тех, кому интересно кодирование и диагностика BMW.
Уже насобирал небольшую базу кодировочных параметров различных блоков на просторах драйва и БМВ-форумов, как-нибудь позже выложу. Поскольку «копейка» достаточно ограничена в комплектации, то применить к своей машине можно только малую часть этих параметров.
Так же есть вопрос к знающим людям по NCS Expert: При попытке открыть Car Key Memory выдаёт ошибку. Причём пробовал различные профили, и сам создавал, и скачивал — результат один. На одном из форумов для е70 вычитал, что просто ключ не имеет памяти, поэтому такая ошибка. А все параметры, которые хранятся в CKM, можно найти в ЭБУ. Так ли это? Или есть другой вариант? Может опять-таки с версией программы что-то нужно настроить по-другому?
Всем спасибо за уделённое время и удачи!
BMW 1 series 2006, двигатель дизельный 2.0 л., 122 л. с., задний привод, механическая коробка передач — электроника
Машины в продаже
BMW 1-Series, 2008
BMW 1-Series, 2007
BMW 1-Series, 2010
BMW 1-Series, 2010
Комментарии 69
Ну тогда блицкриг варианты у меня пока закончились. Может быть с настройками профиля чего не то? Другие блоки норм кодируются?
Посмотрел темы про профили.Зашел в свои профили и там в настройках не стояло какой то галочки, поставил и сразу же блок закодировался, как положенно, хотя прям не давно кодировал блок mulf2 high без проблем.Так что если у кого не кодирует, смотрите настройки профилей, пароль repxet, мало ли кому пригодится.
Может подскажешь куда смотреть, кодирую е60 блок света, изменяю параметры сохраняю, кодирую и ичего не меняется, читаю блок заново и trc остается, как до кодирования, всю голову сломал, что не так делаю
Скорее всего сохраняешь не в тот файл. Блок читается в файл FSW_PSW.TRC, а кодируется из файла FSW_PSW.MAN.
Так и делаю, через дамми работаю trc а после обработки сохраняю man и кодирую, пишет кодирование ок, а ничего не меняется
А кодируешь блок кнопкой «закодировать» или через выбор операции sg_codiren?
Выбираю sg_codiren и кодирую
Спасибо огромное буду пробовать.
Я понял что можно NCS EXPERT но в какой блок заходить подскажи пожалуйста или пошаговое если можно СПАСИБО ОГРОМНОЕ.
Приблизительно как-то так. Точнее сказать не могу, нужно самому эту процедуру проделать, что б каждый шаг точнее описать.
Я понял что можно NCS EXPERT но в какой блок заходить подскажи пожалуйста или пошаговое если можно СПАСИБО ОГРОМНОЕ.
Кодирование со смыслом, часть 9
По всей видимости писать посты на тему кодирования чаще, чем раз в месяц-два у меня не выходит, а жаль.
Сегодня я продолжу тему, обозначенную в восьмой части «Кодирования со смыслом». Мы будем эмулировать настоящий автомобиль как можно точнее, чтобы чётко видеть, какие значения принимают параметры различных блоков при изменениях в комплектации (FA) автомобиля.
В предыдущей части я указал на недостатки базовой работы с SSD-файлом. Дело в том, что при выполнении процедуры чтения ЭБУ на реальном автомобиле, в ASW помимо идентификаторов из FA попадают также идентификаторы всех кодировочных индексов, которые поддерживает индекс в данном блоке (включая идентификатор его самого). Таким образом значения некоторых параметров блока могут зависеть не только от обычных идентификаторов, но и от идентификаторов индексов.
Так выглядит список идентификаторов ASW.TRC после чтения блока LM на Южанке:
Идентификаторы с суффиксом «CI» и есть идентификаторы кодировочных индексов.
А вот пример значения параметра, зависящего от индексов:
Здесь мы видим, что параметр ALC_KLS_ENABLE, отвечающий за работу ламп подсветки поворотов будет иметь значение aktiv, если идентификатор LM_CI_32 не поддерживается (!LM_CI_32) или машина оборудована адаптивным светом (ALC) и есть поддержка LM_CI_32 (ALC+LM_CI_32).
При чтении блоков LM со свежим кодировочным индексом на автомобиле с адаптивным светом и без него, значение параметра у первого будет aktiv, у другого — nicht_aktiv. Однако если мы попытаемся сэмулировать эти автомобили с помощью SSD-файлов, то даже при указании конкретного индекса при генерировании конфигурации блока LM мы в обоих случаях получим значение aktiv.
По каким-то причинам NCS Expert не считает необходимым добавлять в ASW идентификаторы, поддерживаемые указанным индексом. А это значит, что при сравнении двух конфигураций параметр из примера выше в список изменившихся не попадёт (т. к. он всегда будет aktiv) и мы не узнаем о том, что он должен изменить своё значение при кодировании уже дооснащённого автомобиля.
Как же нам заставить NCS Expert учитывать поддерживаемые индексы? Для начала надо выяснить, откуда он вообще их берёт, когда читает реальный автомобиль. Для этого нам вновь нужен NCS Dummy.
Одна из самых реально интересных функций NCS Dummy и одновременно наименее часто используемых — дизассемблинг (разборка) и ассемблинг (сборка) daten-файлов. С помощью этих функций можно практический любой daten-файл преобразовать в текстовый формат, исправить/добавить в него что-либо и собрать обратно, как будто так и было. Именно за счёт этих функций программа и работает, выводя список параметров, их значений и прочее. Опосредованно вы пользуетесь и функцией ассемблинга (сборки) файлов в тот момент, когда добавляете новый вариант значения к параметру: NCS Dummy «разбирает» несколько daten-файлов и собирает их заново, вписывая в них необходимые данные. Причём несмотря на то, что автор программы живёт в Бельгии, могу с абсолютной уверенностью сказать, что функции (диз)ассемблинга имеют русские корни. Да, как всегда за некоторыми изобретениями стоит неприметный «рашн гай».
На деле же с помощью этих функций можно не только добавлять значения, но также новые параметры и даже новые кодировочные индексы для любой железяки, правда всё это уже делается вручную, без NCS Dummy. Программа поможет лишь собрать результат вашей работы в подходящий для NCS Expert формат. Разумеется нужно понимать, что вы редактируете только описание блоков и их параметров, но никак не изменяете сам функционал этих блоков (прошивку то есть), поэтому не стоит ждать каких-то чудес от того, что вы написали на сарае известное слово из трёх букв. Внутри будут по-прежнему лежать дрова, чтобы вы там не написали.
При должном уровне знаний можно изобразить себе уникальный вариант daten-файлов, например с поддержкой кодировочных индексов Combox для кузова E60. Т. е. буквально сделать то, что сделали бы программисты BMW, если бы семейство E60 выпускали вплоть до появления этого самого Combox. Таким образом вам бы не пришлось создавать SSD-файл с описанием машины максимально похожей на вашу, но в другом кузове. Блок CMEDIA отображался бы в списке блоков для кодирования у NCS Expert, как будто всегда там был. В общем инструмент очень мощный и с ним можно сотворить многое.
Играем в переводчика
Но мы пока попробуем только дизассемблинг, т. е. «разберём» некоторые файлы, чтобы понять механизм появления идентификаторов индексов в ASW. В папке с daten-файлами есть несколько файлов в текстовом виде, которые являются де-факто человекопонятными исходниками, а не файлами с которыми работает NCS Expert. Например известный нам E60AT.000 (ну или соответствующий вашему семейству кузовов) преобразуется в файл E60AT.K00.
Можем попробовать преобразовать его обратно в текстовый вид. Для этого нужно открыть NCS Dummy и выбрать вкладку «Disassembly and Checksums»:
Нажимаем кнопку «Browse» верхнего поля ввода и указываем путь к файлу E60AT.K00 из папки C:\NCSEXPER\DATEN\E60\. Сразу как мы выбрали файл E60AT.K00, будет предложено сохранить результат дизассемблирования (если оно успешно). По умолчанию предлагается сделать это просто в папку C:\NCSEXPER\DATEN\. Соглашаемся и потом откроем получившийся E60AT.K00.txt в текстовом редакторе:
Знакомые строчки? Нечто похожее мы видели в E60AT.000, но здесь явно меньше «воды» и больше дела. Мы видим таблицу, в начале которой указана расшифровка нижеследующих строк по типам и данным, которые они содержат, а после идут уже сами строчки с данными.
Всё, что написано в строке после двух слешей «//» на большинстве языков программирования означает комментарий к данной строке и не обрабатывается программой. Эти комментарии генерирует сам NCS Dummy для того чтобы мы могли лучше понять, что именно написано в строке.
В подобном формате сохранено абсолютное большинство daten-файлов, т. е. для их преобразования в читаемый формат можно использовать одну и ту же функцию дизассемблирования. Это позволит нам лучше разобраться в работе NCS Expert и ответить на множество вопросов, но в рамках этой статьи я подробно останавливаться на этом не буду.
Конкретно сейчас нам всё-таки нужно узнать, откуда берётся список поддерживаемых индексом идентификаторов. Ответ на этот вопрос нам даёт файл E60SGVT.000, который нужно также дизассемблировать и увидеть его содержимое в текстовом виде. Вот он:
Здесь мы также видим расшифровку таблицы и сами данные. Расшифровка описывает 4 типа строк:
— DATEINAME — имя файла, есть всего одна запись с таким типом и она содержит имя этого daten-файла;
— AUFTRAGSAUSDRUCK2 — вариант №2 логического выражения для опции. Строк с таким типом в файле нет;
— VERSIONS_ASW — список идентификаторов в ASW;
— AUFTRAGSAUSDRUCK — вариант №1 логического выражения для опции.
Строк с последним типом в файле большинство. Каждая такая строка помимо собственного типа содержит в себе название семейства ЭБУ (Steuergeräte Familie), конкретный кодировочный индекс (Codierbeschreibungsdatei), логическое выражение из идентификаторов ASW (Auftragausdruck), а также некий индекс (Index), который в данном файле всегда пуст. Если логическое условие выполняется (т. е. истинно), то семейство ЭБУ с таким именем и таким кодировочным индексом наверняка в автомобиле есть. Нетрудно заметить, что NCS Dummy в комментарии подсказал нам, как правильно интерпретировать приведённое в строке выражение. К примеру у всех блоков семейства SFZ указано одно и то же:
Коды идентификаторов NCS Dummy любезно расшифровал:
!PU05+(E60, E61, E63, E64)
Выражение буквально означает, что блоки семейства SFZ будут существовать в автомобиле с кузовом E60, E61, E63 или E64 и при этом он должен быть выпущен до сентября 2005 года (09/2005), т. е. не должен иметь временного критерия #0905 (идентификатора PU09). Не обязательно выражение будет одинаковым для всех индексов одного семейства. Тот же LMA имеет также разные варианты выражений по каждому индексу.
Если внимательно посмотреть на структуру таблицы, можно увидеть, что после некоторых строк типа AUFTRAGSAUSDRUCK идёт строка VERSIONS_ASW со списком идентификаторов ASW. Это и есть тот самый список поддерживаемых индексов и он относится к предыдущей строке. Пример:
AUFTRAGSAUSDRUCK : «ARS» «C14» S0041+!(S008D, S0043) <> // ARS+!(N43B20, M47D20)
VERSIONS_ASW : (00A2,00A3,00F6) // ARS_CI_0C, ARS_CI_0D, ARS_CI_0E
NB: Кодировочный индекс во второй колонке первой строки имеет формат «Cxx», где «xx» — номер индекса в десятичном виде. При этом сами идентификаторы содержат номер индекса в hex-виде и чтобы правильно сопоставлять индексы во второй колонке с идентификаторами, следует переводить число из десятичного в шестнадцатиричное в калькуляторе. Вся строка в данном случае описывает индекс ARS_CI_C0E (т. к. 14 = 0Eh)
Такая пара строк означает, что блок семейства ARS с указанным индексом (C14 = C0E в hex-виде) включает в себя также следующие идентификаторы: ARS_CI_0C, ARS_CI_0D, ARS_CI_0E. Проще говоря, себя самого (0Eh) и парочку предыдущих (0Ch, 0Dh). В общем случае правило включения в себя всех старых индексов работает, но это не обязательно будет так. Файл E60SGVT.000 как раз и описывает, какие предыдущие индексы включает в себя каждый следующий.
Итак, мы выяснили, откуда берутся идентификаторы поддерживаемых кодировочных индексов. Осталось заставить NCS Expert работать с ними. Быть может это всё лежит на поверхности? Может стоит почитать справку на тему SSD-файлов?
Часть информации из этой справки я уже публиковал в прошлой записи, теперь посмотрим остальное:
Zeilen, die mit «Y» beginnen werden für die «SGVT»-Verarbeitung angegeben. Dabei wird jeweils mit einem Leerzeichen getrennt das SG mit seinem Ist-Codierindex angegeben. Eine «Y»-Zeile sollte 80 Zeichen nicht überschreiten. Es können beliebig viele «Y»-Zeilen untereinander angeordnet werden.
В вольном переводе здесь написано, что в SSD-файле можно записывать строки с типом «Y», в которой мы можем указать семейство блоков и фактический поддерживаемый индекс. Количество строк может быть любым и единственное ограничение — длина строки не может превышать 80 символов. Правда помимо этого не указано, что индекс должен быть также в десятичном виде без буквы «C» и двухзначным (т. е. если меньше 10, то 05, 08 и т. п.). Итак, формат строки выглядит так:
Подобный кролик в виде SSD-файла псевдо-«Северянки» у нас уже есть, на нём и потренируемся. Добавим указание на индекс LM2_E6X.C35:
M E60_CODIERSCHL ALL
A 001 WBANU91000AB12345A E60_#0307*NU91$205$248$302$415$494$502$508$522$534$548$644$701$853$8S1$861-A090-NMUW
Y LMA 53
Не забываем о том, что в конце обязательно должна быть пустая строка.
Надеюсь не нужно объяснять, почему написано число 53, а не 35?
После загрузки SSD-файла в NCS Expert никаких изменений в ASW.TRC мы к сожалению не увидим:
Проще говоря, NCS Expert просто проигнорировал строку Y-типа.
Ну раз NCS Expert не хочет добавлять индексы сам, тогда может сделать это нам? Сперва узнаем, какие индексы поддерживает LM2_E6X.C35. Догадаться в целом нетрудно, но лучше заглянем в дизассемблированный E60SGVT.000, т. е. E60SGVT.000.txt:
AUFTRAGSAUSDRUCK : «LMA» «C53» (S0001, S0002, S0003, S0004) <> // (E60, E61, E63, E64)
VERSIONS_ASW : (00D1,0102,0155,0212,01F4,021B, 0267,02D6) // LM_CI_0C,LM_CI_0D,LM_CI_0E,LM_CI_21,LM_CI_32,LM_CI_33,LM_CI_34,LM_CI_35
Теперь берём список этих идентификаторов, открываем ASW.TRC в текстовом редакторе, добавляем их в конец файла и сохраняем, к примеру, в ASW.MAN (туда же в папку WORK):
Теперь нужно заставить NCS Expert не генерировать ASW.TRC, а читать список из нашего файла. Для этого нужно в настройках профиля указать режим чтения из файла и соответственно имя файла:
Сам профиль можно не сохранять до выхода из NCS Expert.
Теперь всё готово для загрузки SSD. Теперь при вводе данных SGET будет указан верный индекс:
Это всё хорошо, но не совсем удобно. Т. к. ASW мы ему подсунули свой, то всё, что мы написали в SSD-файле не имеет значения, в том числе и указанный индекс для LMA. Но самое главное убедиться в том, что эти индексы всё-таки используются. Генерируем конфиг для LMA и снова загружаем в NCS Dummy:
Бинго! Теперь всё правильно, у псевдо-«Северянки» без адаптивных фар параметр ALC_KLS_ENABLE принял значение nicht_aktiv.
Теперь можно «дооснастить» машину адаптивными фарами, добавив в SSD-файл опцию $524, а в ASW.MAN допишем идентификатор ALC. Затем при сравнении конфигурационных файлов мы будем видеть куда больше изменившихся параметров, чем при работе просто с SSD.
В списке различий даже нет никакого ALC_KLS_ENABLE, что и требовалось доказать.
Зато при правильной работе с ASW всё есть:
Всё бы ничего, но всё же это неудобно. Зачем вообще в SSD сделана возможность указать индекс, если он в итоге не учитывается?
Идём на компромиссы
Как оказалось — всё-таки учитывается, но только в так называемом режиме верификации. С помощью этого режима можно сгенерировать ASW с правильным списком идентификаторов, причем по всем указанным в SSD блокам, а после использовать этот ASW для автономного кодирования.
Чтобы убедиться, что режим действительно работает, допишем в SSD парочку индексов других блоков:
M E60_CODIERSCHL ALL
A 001 WBANU91000AB12345A E60_#0307*NU91$205$248$302$415$494$502$508$522$534$548$644$701$853$8S1$861-A090-NMUW
Y LMA 53 6BMOT 13 CAS 09
6BMOT — это семейство ЭБУ для шестицилиндрового бензинового мотора и конкретно в данном случае в соответствии с типом кузова NU91 мотор у машины имеет идентификатор N52B30K, ну а CAS в представлении не нуждается. Я указал самые свежие номера индексов для указанных блоков: 53 (35h) для LMA, 13 (0Dh) для мозгов мотора N52B30K (посмотрев в E60SGVT.000.txt) и 09 (09h) для системы доступа в автомобиль.
Далее необходимо перенастроить профиль NCS Expert, вернув назад чтение ASW из ZST/SGVT, плюс включив верификацию:
После закрытия окна настройки в окне NCS Expert останется ровно одна кнопка «Verifikation»:
По нажатию на неё будет предложено выбрать файл для проверки. Указываем на наш SSD-файл псевдо-«Северянки» со всеми вписанными ранее индексами и если всё в порядке, увидим результат работы:
Обратите внимание, что для указанных нами индексов выбраны верные файлы для кодирования: LM2_E6X.C35, MSV80.C0D, CAS3.C09. А теперь заглянем в ASW.TRC:
А вот и наши идентификаторы индексов! Полученный ASW.TRC можно использовать при автономном кодировании, сохранив его как ASM.MAN или же напрямую указав ASW.TRC в качестве источника для чтения ASW.
Игнорирование NCS Expert-ом заданных индексов больше похоже на баг программы, но спасибо хотя бы за то, что это работает в режиме верификации, избавляя нас от необходимости ковыряться в кишках E60SGVT.000.
Итак, получить правильный файл конфигурации блока из SSD-файла можно следующим образом:
— Указать в SSD с помощью Y-строки индекс, поддерживаемый блоком;
— В режиме верификации сформировать правильный ASW;
— Сгенерировать конфиг, используя режим чтения ASW из файла, в котором сохранен правильный ASW.
Работая с двумя SSD (до дооснащения и после) и генерируя для каждого правильные ASW, мы можем сравнивать их в NCS Dummy или в любой другой программе для сравнения файлов с целью получения списка всех изменившихся параметров блока, не прибегая к его кодированию на самом автомобиле.
Существуют также индексы блоков, которые зависят от индексов других блоков, не только своих.
Их немного, но они есть:
— AHL зависит от индексов LM;
— Парные модули (SMC, ручки дверей, блоки сидений) зависят друг от друга;
— Внутренние модули CCC типа CTUNE, CAUDI, CHOST, CAPPL также зависят друг от друга.
На самом деле такая ситуация довольно редкая и связана по большей части с форматом хранения данных: логические выражения для значений параметров привязаны к именам самих параметров и именам их значений (как мы помним, «wert_01» и прочие — это названия значений, а не сами значения). А эти блоки имеют одинаковые имена некоторых параметров, поэтому и выражения для значений у них тоже одинаковые. Тем не менее, чтобы правильно сгенерировать конфиги для таких блоков, необходимо сделать так, чтобы в ASW были указаны все необходимые для кодировки индексы, не только конкретно данного блока.
В следующей части попробуем поглубже разобраться в структуре daten-файлов, что откуда берётся, как формируется и почему оно в итоге вот такое вот.