Скрытое меню BMW F-серии
Первое скрытое меню вызывается путем удержания клавиши на панели приборов в течении 10 сек. Далее просто нажимаешь на эту же кнопку и оно перемещает вас по меню.
Второе скрытое меню вызывается путём удержания джойстика iDrive в положении вверх тоже в течении 10 сек. (Предварительно необходимо нажать кнопку "меню"). Далее делаем 3 поворота вниз, 3 вверх, 1 вниз, 1 вверх, 1 вниз и нажимаем на джойстик iDrive. Далее идем в настройки и там появляется пункт "Сервисное меню"
Ну а теперь все тоже самое, только видео:
Вот если бы кто подсказал действительно интересные скрытые возможности, которые можно достать через меню, был бы премного благодарен!
BMW F01 F02 hidden menu diagnostic mode
7-Series BMW F01 F02 hidden menu lets you check diagnostic data in your car. You don’t need diagnostic interface to view DTC trouble codes, check live data from sensors, check battery voltage, oil and coolant temperature, perform instrument cluster test with needle sweep and LCD diagnostic mode, check warning chimes, also adjust trip computer fuel economy correction. Access to this diagnostic mode can be handy if you have trouble with your car and no access to diagnostic interface.
Warning!
Performing this procedure may cause permanent damage to your car.
Do this at your own risk!
We are not responsible for any loss or damage
Немецкая грамота: что означают индексы BMW
BMW 3200 CS, BMW 525iX, BMW 750Li. Что значит вся эта маркировка? Мы взялись навести порядок в сложной системе букв и цифр и разложить по полочкам, как расшифровать надпись на корме баварского «скакуна».
Чтобы стать настоящим гуру BMW, вам стоит прочитать две наши предыдущие публикации, посвященные эволюции различных серий марки: как легковых, так и спортивных.
Серийно выпускаемые BMW за редким исключением всегда имели цифро-буквенные названия. Суффиксы в виде букв и слов после цифр не только дают более полную характеристику двигателя, но и несут информацию о типе привода, кузова, длине базы. Вот наиболее актуальные из этих символов:
• A (упразднено) = автоматическая трансмиссия,
• C (упразднено) = кузов «купе»,
• d = дизельный двигатель,
• e = автомобиль с широким использованием технологий энергосбережения,
• eDrive = подзаряжаемый от сети гибридный автомобиль, использующий бензиновый и электрический двигатели,
• EfficientDynamics Edition — автомобиль с широким использованием технологий энергосбережения,
• g = двигатель, работающий на сжатом природном газе,
• hydrogen — двигатель, работающий на водороде,
BMW 2002 Automatic
• i = инжекторная система подачи топлива,
• L = удлиненная колесная база,
• s (упразднено) = спортивный автомобиль (также использовалось для обозначения 2-дверного кузова БМВ 3-й серии E36),
• sDrive = привод на задние колеса,
• t / Turbo = турбонаддув,
• T / touring = универсал,
• Ti (упразднено) = обозначение 3-дверного хэтчбека BMW E36 Compact,
• x / xDrive = полный привод.
Буквы
Особняком стоят модели линейки Active Hybrid (гибридные автомобили, использующие бензиновый и электрический двигатели). В нее входят Active Hybrid 3, Active Hybrid 5 и Active Hybrid 7, относящиеся к соответствующим сериям BMW.
BMW ActiveHybrid 7
Существует и префикс в виде буквы M, означающий, что автомобиль имеет компоненты, созданные подразделением BMW M Gmbh. Не следует путать полноценные М-модели и машины, имеющие опции в виде стайлинга, модифицированной подвески, тормозов и прочих деталей, которые были разработаны в M Gmbh.
М-модели в наименовании имеют только букву М и следующую за ней цифру, обозначающую принадлежность к серии, например, М3, М5, М6. Исключение — М-версии машин Z3 и Z3 Coupe, называвшиеся BMW M Roadster и BMW M coupe, а также 1M Coupe, построенное на основе “единички” BMW E82. Автомобили с М-аксессуарами же отличаются префиксом М перед привычным цифробуквенным именем: M 550d xDrive, M550i.
Цифры
С цифрами в названиях всё непросто. Как упоминалось в самой первой статье, отражение приблизительного объема двигателя в литрах в наименованиях машин закрепилось лишь в в конце 50-х — начале 60-х годов. Так, «Изетта» 250 довольствовалась скромным 250-кубовым моторчиком, BMW 3200 CS имел 3.2-литровый 6-цилиндровый двигатель, а BMW 1600 – 1.6-литровый 4-цилиндровый. Машины на полступеньки ниже классом BMW 1600-2 (впоследствии BMW 1602) и BMW 2002 оснащались 1.6-литровым и 2-литровым моторами соответственно, а цифра 2 в конце означала наличие двух дверей.
По мере расширения модельного ряда стало ясно, что такая система не позволяет различать классы машин при использовании двигателей одинакового объема. Тогда новая «пятерка» с индексом E12 ввела новый стандарт из трех цифр: первая обозначала внутрикорпоративный класс машины, последние, как и ранее, — приблизительный объем двигателя в литрах. Теперь «пятерка» с двигателем объемом 1 990 кубических сантиметров называлась BMW 520i, а мотор в 2 788 «кубиков» принадлежал BMW 528i.
Стройную систему, как и в случае с номенклатурой Mercedes-Benz, нарушило появление турбокомпрессора. Но если штутгартцы столкнулись с проблемами только в самом конце ХХ века, то баварцы — на пару десятилетий раньше.
Пара модификаций «семерок» E23 1979 года называлась 732i (6-цилиндровый двигатель объемом 3 210 кубических сантиметров) и 735i (3 430 «кубиков» округлили почему-то в большую сторону, но на эту неточность можно закрыть глаза).
В 1980 году начался выпуск BMW 745i. Думаете, она оснащалась 4.5-литровым двигателем? Как бы не так: это был мотор от 732i с турбокомпрессором. Тем не менее для подчеркивания большей производительности и дороговизны машины новой версии представительского седана умышленно присвоили «неправильный», завышенный индекс. К слову, в 1983 году у нее появился уже двигатель от 735i с турбокомпрессором, но индекс остался прежним, 745i.
Впрочем, случалось и занижение реального объема двигателя. Так, BMW E30 316i с 1982 по 1987 год производилась с мотором объемом 1 766 кубических сантиметров, а статусное купе 8-й серии постоянно скромничало: BMW 840Ci c 1995 по 1999 год предлагалось с 4.4-литровым двигателем, 850Ci приводилось в движение 5.4-литровым мотором, а флагман 850CSi — аж 5.6-литровым.
Тем не менее в последние лет 10 случаи «мошенничества» с индексами участились. Рассмотрим несколько примеров. «Единичка» BMW 130i выпускалась с 2005 по 2013 год, 125i — с 2008 по 2013 год. Можно было бы предполагать, что как минимум у 125i был двигатель меньшего объема, чем у 130i, однако в реальности использовался один и тот же мотор N52B30 разной степени форсировки — 218 л.с. для 125i и 265 (258 c 2009 года) для 130i. Конечно же, с точки зрения маркетинга владельцу 130i нужно было угодить и продемонстрировать превосходство более мощной версии «единички» над менее мощной в виде шильдика на крышке багажника. По той же причине разнесены индексы нынешних F20 114i, 116i, 120i, которые агрегируются с 1.6-литровым турбированным двигателем N13B16.
BMW E63 среди ряда модификаций имела 635d и 630i. Последняя была самой дешевой (если это слово вообще применимо к премиальному купе класса «Гран Туризмо») среди всех версий 6-й серии, объем ее двигателя составлял 2 996 кубических сантиметров. У более же дорогой 635d объем мотора 2 993 «кубика», то есть формально меньше, чем у 630i, но мощность дизеля даже после обновления бензинового мотора оставалась больше на символические 14 л.с. Думаю, не нужно объяснять, почему же индекс дизельной версии больше, чем у бензиновой.
Бывают и совсем курьезные случаи. Можно догадаться, что BMW F30 320i и 328i оснащаются разными вариантами одного и того же 2-литрового бензинового двигателя. Кроме того, есть 320d и 328d. Нюанс в том, что двигатели в этих машинах идентичные, но 328d продается на американском рынке, под вкусы покупателей которого и «заточено» название. Ведь жители Штатов не жалуют машины с маленькими моторами.
Что в итоге?
Безоговорочно доверять цифрам в обозначении моделей теперь нельзя. Они превратились в довольно абстрактные величины, указывающие лишь на тот факт, что в пределах одной серии модель с меньшим числом в индексе менее мощная, чем с большим. К счастью, в буквенных префиксе и суффиксах пока еще правда есть.
Кодирование со смыслом, часть 1. BMW 6 series
Сначала я хотел написать пост про то, как изменить межсервисный интервал по замене масла. Однако вышло немного непонятно и получилось как у всех, одна только практика без теории. Поэтому я решил написать обширную теоретическую часть по кодированию, прочитав которую, вы научитесь хорошо понимать, что и с чем едят и менять всё что угодно и как угодно в своей машине, не прибегая к поискам инструкций. Думал это всё разместить в блоге, но практическая часть всё равно будет и относится она непосредственно к Южанке, поэтому всё-таки будет здесь, в БЖ.
Большинство инструкций по кодированию BMW, как правило, содержат в себе минимум информации, без каких-либо подробностей, вида «измените значение параметра «X» на «aktiv» или «wert_xx», и что-то будет работать по-другому». Этого в большинстве случаев достаточно, эффект достигнут и голова не болит. Однако любознательным товарищам иногда хочется понимать, что за что отвечает и как оно вообще устроено. Ниже пойдёт самая мякотка, но если вас кодирование в принципе не интересует, можно на этом закончить чтение. Поехали!
Предположим, что вы уже знаете, что такое NCS Expert, пакет программ BMW Standard Tools и файлы данных SP-Daten и всё это установили. И даже научились кодировать всякую ерунду типа поворотников на HUD, редактируя файл FSW_PSW.MAN. Хотя и не очень-то даже понимаете, как вообще это всё дело работает.
Начнём с тех самых SP-Daten файлов. Как правило это увесистый архив, в котором есть несколько папок:
cfgdat — файлы конфигурации для NCS Expert, содержит также расшифровки кодов ошибок при кодировании;
data — самая «толстая» папка, в ней лежат прошивки для ЭБУ;
daten — кодировочные файлы и файлы с описанием комплектаций, опций и т. д. Об этих файлах мы и поговорим чуть ниже;
ecu & sgdat — папки с библиотеками для работы с блоками управления. Что-то вроде так называемых интерфейсов, описывающих функции блоков;
Оставшиеся папки содержат в себе информацию о применимости прошивок, их связей друг с другом, данные о формате БД, контрольные суммы и т. д. Тоже интересно, но не в этой теме.
Больше всего нам интересна папка daten. В ней содержатся файлы с расширениями вида .Cxx, где xx — произвольный шестнадцатиричный номер, обозначающий порядковый номер этого файла (или вернее «кодировочный индекс»). На один и тот же ЭБУ может существовать несколько таких файлов (т. е. кодировочных индексов), каждый из которых привязан к версии прошивки в этом блоке. С течением времени в прошивки добавляли новые или изменяли старые функции, а вместе с ними добавлялись/изменялись параметры для них. При таких изменениях заводился новый кодировочный файл, со следующим по порядку индексом. Но не всякая новая прошивка содержит новый же кодировочный индекс, зачастую в прошивке просто исправляют ошибки и ничего более. Например, блок LM2 у E60 имеет аж 53 кодировочных индекса (последний — 35h), правда не все доступны в daten-файлах, а совсем старые уже удалены.
При установке с помощью запуска скрипта LADEN.BAT все файлы копируются в папку NCS Expert и после этого мы можем их использовать. Это понятно, но кое-что в этих файлах есть весьма интересное — файлы с расширениями 000, ZUS и M00. Как оказалось, это обычные текстовые файлы и в них есть любопытная информация. Т. к. рассматриваем мы кузов E60 (и соответсвенно E61, E63 и E64), то самый интересный файл — E60AT.000. Его можно открыть в текстовом редакторе и внимательно изучить, но сначала поговорим о кодировании.
Vehicle />Order
Наверняка вы знакомы с понятием VO (Vehicle Order) или FA (Fahrzeugauftrag). Это шифр, описывающий комплектацию и другие параметры автомобиля. Этот шифр хранится в нескольких блоках автомобиля, в E60 его хранят блоки CAS и LMA. Возможно вы даже изменяли его при кодировании, обычно это делается при дооснащениями каким-либо опциями. В некоторых инструкциях весь шифр называют VO, а отдельный элемент — FA. Это неправильно, т. к. VO и FA это суть одно и то же.
Типичный шифр комплектации автомобиля выглядит вот так (это актуальный на момент публикации FA Южанки):
Когда вы подключаетесь к машине и считываете в NCS Expert FA из машины, он сохраняется в файл fa.trc в папке WORK. Он точно описывает текущую комплектацию автомобиля и некоторые специальные параметры, заданные конкретно для этого автомобиля. Можно разложить этот шифр по полочкам:
#0908 — так называемый временной критерий. Это параметр, который отражает технический уровень автомобиля. По ходу жизни автомобиля на конвеере, в его конструкцию вносятся изменения, добавляют новые возможности или модернизируются старые. В среднем новый временной критерий выходит раз в полгода, а в первые года выпусков и того чаще. В данном случае мой критерий — сентябрь 2008. На самом деле оригинальный заводской был старше,#0907, но он был изменён после установки CIC для корректности работы диагностических программ. По этому критерию программы для работы с авто определяют, какие блоки в машине соответствуют определённым опциям. Если временной критерий неверный, то программы, например, могут неверно отображать список блоков в авто;
&LED5 — цвет и материал обивки. В данном случае Leder D5, он же Saddle Brown;
%0300 — код краски (300, Alpinweiss 3);
*EA51 — Код кузова, двигателя и региона. Как правило, содержится в VIN-номере после первых трёх букв (WBA для немецких или X4X для калининградских авто);
$xxx — коды опций, идущие подряд. В расшифровке автомобиля вы можете увидеть те же коды, только в формате SxxxA;
-xxx (или +xxx) — Персональная настройка. Что-то вроде «галочек» в настройках программ;
Ну вроде всё просто? Вполне. Внимательные могут заметить в начале каждого значения специальный символ, который обозначает тип значения (# для временного критерия, & для обивки, % для краски и т. д.). Теоретически порядок следования этих значений при таких префиксах вообще неважен.
Вернёмся к нашему E60AT.000.
Он весьма объёмный, но в нём есть очень полезная информация с комментариями (они написаны после двух слешей «//», программисты сразу поймут), правда на немецком. Не все опции, вписанные в FA, влияют на кодировку автомобиля. Поэтому для опций, которые влияют, заведены отдельные идентификаторы или набор идентификаторов, которые используются в работе при кодировании. В файле E60AT.000 как раз и приведены соответствия идентификатора или группы идентификаторов какой-либо опции из FA.
Общий формат такой:
X YYYY WWWW ZZZZZ //комментарий
Где X обозначает тип значения в FA, YYYY — собственно само значение из FA (без спец. символа),WWWW — условие, при котором данное соответствие актуально (в большинстве случаев никаких условий нет), ZZZZ — идентификатор для кодирования, иногда их сразу несколько.
Типы значений FA:
A — временной критерий (#xxxx);
Z — актуальный временной критерий (также #xxxx);
W — основные опции ($xxx) или тип кузова/двигателя/региона (*xxxx);
E, H, K — настройка основных опций (-xxx, +xxx);
A #0903 PU03 //PU 09/03
Здесь мы видим, что #0903 в FA соответствуюет идентификатору (отсюда и далее будет «идент» для простоты написания) PU03. При кодировании наличие этого идента позволяет правильно закодировать автомобиль с учётом установленного оборудования (если машина реально соответствует временному критерию «сентябрь 2003»).
A #0305 PU03 DEZ03 MAERZ04 APRIL04 JUNI04 PU04 MAERZ05 //MAERZ PU 03/05 (LM_AHL)
Тут как мы видим, #0305 включает в себя сразу несколько идентификаторов. Все иденты кроме сентября вполне соответствуют обозначениям месяцев на немецком. Сентябрь же обозначается аббревиатурой «PU», не знаю почему.
Рассмотрим вариант с настройкой. В терминах программирования такие настройки соответствуют понятию «флаг», ну или для обывателей — «галочки» в настройках программ:
K OI11 OHNE_FA_SBR //Deaktivierung FAHRER SEATBELTREMINDER (bis PU03/04 im KOMBI ab PU03/04 im SGM! ab PU09/05 im ACSM)
Значения FA с типом K чаще всего пишутся в FA с префиксом «+», а с типом E и H с префиксом «-», хотя некоторые настройки пересекаются по типам. В чём принципиальная разница — не знаю, не разобрался. В примере у нас значение OI11 типа K (т. е. это соответствует +OI11 в FA), которое позволяет отключить напоминание непристёгнутого ремня для водителя. Для кодирования значение +OI11 из FA превращается в идентификатор OHNE_FA_SBR. Т. е. при наличии данной «галочки» в FA, некоторые параметры соответствующих блоков принимают такие значения, которые соответствуют отключенному предупреждению о непристёгнутом ремне. БлагодаряE60AT.000, вы теперь знаете все возможные «галочки».
Далее основные опции:
W 6FL AUDIOPLAYER_USB //USB-/AUDIO- SCHNITTSTELLE
Ну тут всё понятно, $6FL в FA соответствует иденту AUDIOPLAYER_USB. В некоторых случаях на одно значение есть два разных набора идентов в зависимости от условий, например от временного критерия. Как пример, опция $609 (навигация Professional):
W 609 V0908 NAVIGATION CCC //NAVI-SYSTEM PROFESSIONAL OHNE TV (PA021/315ZWAKO 964)NICHT MIT 663
W 609 N0908 NAVIGATION CIC //
Vor (нем. «до») 09/2008 значению $609 соответствуют иденты NAVIGATION и CCC, а Nach(«после») 09/2008 — NAVIGATION и CIC. Там же можно увидеть интересное:
W 6VA CIC //CIC Zusteuerung (03/08-09/08)(NK71 PU71 PV31 PV71 PW51 PX51 PX71 PX91 PY51)Alternativ zusteuerung CIC
Опция $6VA указывает на идент CIC. Так сказать, говорит о заказной установке CIC, действующей с 03/2008 по 09/2008, на перечисленных типах кузовов и двигателях (почему-то правда только E61 и только бензиновые европейки). Т. е. CIC ставился опционально с марта по сентябрь вместо CCC при запросе клиента. А позже CCC был заменён на CIC в качестве системы навигации по умолчанию, но по запросу клиента могли установить CCC (но с новым джойстиком iDrive). В таком случае за «принудительный» CCC отвечает опция $6VB. Кстати, на F-сериях опция $6VA также существует, но означает, что место NBT стоит CIC по запросу клиента (для машин с 07/2012).
W NF33 E60 N52B30 UL LL US ALLRAD OIL_LEVEL_1 //Limousine 525xiUL //US LL 04/05 — 03/07 /160kW</b>
Тип кузова NF33 у нас сразу соответсвует куче идентов: E60 (это тоже идент!), N52B30(модель двигателя), UL (хз что это (UPDATE: подсказали в комментариях, что это класс мощности авто), LL (левый руль), US (исполнение для США), ALLRAD (полный привод),OIL_LEVEL_1 (наверное означает наличие датчика уровня масла).
Теперь зная, какие иденты соответствуют значениям из FA, можно составить их полный список. Вручную это делать не надо, за вас это сделает NCS Expert, когда вы прочитаете FA из машины. Чтобы увидеть список, достаточно открыть файл ASW.TRC из папки WORK:
На основании именно этого списка идентов определяются значения параметров блоков при кодировании, а FA лишь источник для формирования этого списка.
Что нам делать с этим списком и вообще полученными знаниями? Пригодятся они нам для работы с программой NCS Dummy.
Саму программу можно скачать. Там же и инструкция к ней, на английском, но я её не читал, но вы прочитайте всё-таки )
К сожалению, настоящее имя автора неизвестно, только его ник — revtor. Единственное, что мне удалось найти о нём, это то, что живёт он в Антверпене (Бельгия) или пригороде, ему около 35 лет и он владеет BMW 850CSi (нашёл даже номер автомобиля) в отличном состоянии. И ещё удалось найти его фотографию за рулём:
Благодаря этому человеку энтузиасты по всему миру кодируют многочисленные BMW и, конечно же, зарабатывают на этом деньги. Поэтому скажите ему спасибо
Фильтрация списка модулей
NCS Dummy — весьма мощный инструмент, который позволяет наглядно работать с daten и TRC-файлами. С помощью этой программы, например, можно определить все необходимые блоки для кодирования определённой опции. Для этого в программе предусмотрен фильтр списка блоков по различным критерям, один из которых — поиск по иденту опции.
Например, установили вы зеркало с камерой FLA. В расшифровке автомобиля это — опцияS5ACA Автоматический дальний свет. В FA это будет $5AC, именно это значение мы будем добавлять в FA при кодировании. Можно просто добавить эту опцию и закодировать автомобиль целиком (Process Car), т. е. все-все блоки в автомобиле будут закодированы в соответствии с текущим FA (или, вернее, списком идентов). Такой вариант на самом деле годится лишь для новичков, т. к. все параметры блоков, которые вы изменили по своему усмотрению, будут восстановлены к тем значениям, которые соответствуют FA. Т. е. при таком кодировании у вас «слетят» всяческие опции закрытия зеркал с ключа, поворотники в HUD и прочие нестандартные вещи.
Гораздо вернее кодировать только те блоки, в которых есть параметры, зависящие от данной опции и в определении списка зависимых модулей нам как раз и поможет NCS Dummy. После первого запуска необходимо указать пути к папке программы NCS Expert. После этого в первой вкладке у вас появятся на выбор доступные кузова:
Во втором выпадающем списке у нас перечислены все кодировочные файлы для всех модулей. Теперь надо этот список отфильтровать, но для начала заглянем в E60AT.000 и поищем там идент опции 5AC. Нашли:
W 5AC FLA XENONLICHT //FERNLICHTASSISTENT (PU09/05), (Zwako zu SA430oderSA431 und SA522 PA623/072)
Опции 5AC соответствуют иденты FLA и XENONLICHT. Заодно понимаем, что 5AC без опции 522(XENONLICHT) не бывает. Можно даже убрать $522 из FA, но идент XENONLICHT, как мы видим, никуда не денется.
Чтобы отфильтровать список модулей по конкретной опции, надо нажать кнопку «Filter» справа от списка модулей, перейти на вкладку «Order option» (фильтрация по опции), вписать в поле «FLA» и запустить фильтрацию. Спустя непродолжительное время список модулей будет отфильтрован:
NCS Dummy modules filter
Таким образом кодировать нам надо блок света LM, блок головного устройства (CIC, MASK, CCC в зависимости от того, что установлено) и собственно сам модуль FLA. В большинстве инструкций по дооснащению автоматическим дальним написано, что нужно ещё кодировать блок KOMBI (комбинация приборов), однако, как мы видим, в нём нет ни одного параметра, связанного с FLA и модуль отсутствует в списке.
Уже в самом списке параметров можно запустить поиск по тем же критериям и найти зависимые параметры. Здесь также стоит сделать некоторое замечание касательно такой фильтрации и поиска, но для начала расскажу про логические выражения.
Логические выражения (условия)
Каждое значение параметра зависит не только от одного идентификатора, но и от сочетаний этих идентификаторов, причём сочетания могут быть весьма сложные и иногда представляют собой строку вида:
!((ACEA_CO2+!IHKA_CI_0C, IHKA_CI_0C+ACEA_CO2+(E60,E61)+!LUFTKL)+!ALPINA+!S85B50)
Это — логическое выражение (или условие применения), где «, » символизирует логическое «ИЛИ», «+» означает логическое «И», а «!» означает логическое отрицание, а скобки работают примерно также, как в математике. Для программистов такие выражения в целом понятны. Если данное логическое выражение этого значения на основе заданного списка идентов соответсвует истине (т. е. условие выполняется), значение будет выбрано для кодирования. Если же нет, тогда будет выбрано то, у которого условия выполняются. В некоторых случаях параметры могут иметь сразу несколько значений и все они будут выбраны при выполнении условия в каждом из них.
Условия отображаются в графе Options при выборе значения какого-либо параметра:
NCS Dummy logic expressions
На скриншоте выбрано значение «aktiv» для параметра UMWAELZPUMPE модуля IHKA_E60 с индексом 0D (13-ый кодировочный индекс). Тут же рядом пояснение, что данный параметр отвечает за активацию управления дополнительной помпой по CAN-шине и значение «aktiv» будет выбрано при выполнении следующего условия:
(STANDHEIZUNG, NACHRUEST_SHZH)+(M47D20,M57D25,M57D30,N47D20)
STANDHEIZUNG — это опция 536 (подглядываем в E60AT.000) или вернее S536A Автономная система отопления. NACHRUEST_SHZH — это тоже самое, только указывает на персональную настройку +K536 (или возможно -K536, не знаю), обозначает модернизацию отопителя. Остальные иденты обозначают дизельные двигатели соответствующих моделей.
Логически данное выражение выглядит вот так:
(есть опция 536 ИЛИ настройка K536) и (есть любой из двигателей M47D20, M57D25, M57D30 и N47D20)
Т. е. управление помпой будет активно, если у вас дизельный двигатель из перечисленных и установлен автономный отопитель одним из способов. Я так понимаю, заводской вариант идёт как опция, а незаводской — как настройка. Значение же nicht_aktiv выбирается в противоположном случае:
!((STANDHEIZUNG, NACHRUEST_SHZH)+(M47D20,M57D25,M57D30,N47D20))
Выражение обёрнуто в скобки и перед ними стоит знак отрицания, т. е. значение nicht_aktiv будет выбрано в том случае, если выражение внутри скобок ложно по какой-либо причине.
Если же значение параметра вообще не имеет логического выражения, то оно никогда не будет задано при кодировании в заводском режиме. Во многих сериях кузовов применяются одни и те же модули, но в кодировочных файлах для них указаны другие условия, поэтому у того же значения, но с другим кузовом, условие применения может и существовать. Либо в остальных случаях такое значение вообще никогда не задаётся ни при каких условиях и задать его можно только принудительно, кодируя вручную.
Возвращаясь к фильтрации списка модулей или поиска параметров, хочу отметить то, что система не совсем совершенна, ввиду того, что работает как простой поиск подстроки в строке условия и в одном из четырёх режимов: просто как часть строки, в начале строки, в конце или точное соответствие. Т. е. в поле поиска можно писать не только идент опции, но и целое логическое выражение, а можно вообще хоть пару символов из идента. Это удобно, но не хватает режима поиска «как целое слово», чтобы в результаты поиска не попадали иденты, которые хоть и содержат указанную строку, но отношения к теме не имеют. Например, когда мы фильтруем список модулей по строке «FLA», в результатах фильтрации есть сам модуль FLA, который по идее туда не должен попадать, но попал ровно потому что парочка значений в параметрах зависят от идентов типа FLA_CI_05. Т. е. мы искали всё, что завязано на идент «FLA», но попутно ещё нашли и FLA_CI_05 из-за того, что «FLA» — часть этой строки. Сам по себе модуль не может содержать параметры, которые зависят от самого наличия этого модуля, т. к. это абсурд
Update: В версии 0.6.0.5 добавлен режим «Exact word», т. е. поиск по целому слово. Прекрасно.
Специальные иденты и тонкости кодировочных индексов
Кстати, об идентах типа «XXX_CI_XX» (CI = Codierung Index, кодировочный индекс). Такие вы не найдёте в E60AT.000, т. к. это иденты, обозначающие зависимость от кодировочного индекса конкретного модуля.
Например, возьмём параметр STREETLAMP_COUNT (количество уличных источников света, при котором отключается дальний свет) модуля FLA. Он имеет два значения: wert_01 и wert_02. Однако в завимости от кодировочного индекса, этим значениям соответствуют разные данные, т. е. при одном и том же значении в блок будет записано разное количество источников света.
Всего для модуля FLA у нас три кодировочных индекса: 03, 04 и 05, соответственно FLA_E65.C03,FLA_E65.C04, FLA_E65.C05. Интересная особенность индекса 04 в том, что параметрSTREETLAMP_COUNT в нём в принципе отсутствует. Однако не означает, что такого параметра нет. На самом деле он есть, но равен нулю всегда, т. е. хотя бы один источник света автоматом отключает дальний свет. Это интересный случай, обычно в таком случае оставляют параметр с единственно возможным значением, но, видимо это не тот случай.
Итак, в индексе 03 для wert_01 у нас указано 24 источника света, а для wert_02 — 0:
04 индекс у нас на деле жёстко задаёт 0 без возможности смены (не спрашивайте, откуда я это знаю, сейчас не про это , а в 05 индексе wert_01 у нас означает 24 источника света, а wert_02 аж 64:
Количество источников понятно, но нам интересны условия для данных параметров. Так, дляwert_01 логическое выражение такое:
!(!FLA_CI_05,FLA_CI_05+US)
А для wert_02 оно же, но без общего отрицания:
!FLA_CI_05,FLA_CI_05+US
Т. е. значение wert_02 будет выставлено либо если индекс модуля FLA не равен 05, либо он равен 05 и машина американка. В противном случае будет выбран wert_01.
Нетрудно догадаться, что основная разница в достаточном количестве источников света между европейкой и американкой будет только при кодировочном индексе 05. Европейке достанется значение wert_01 (24 источника света), а американке — wert_02 с 64-мя «лампочками». Не очень понятными остаются такие условия в индексе 03, т. к. в любом случае там будет задано wert_02. Скорее всего, если найти какой-нибудь старый архив SP-Daten, где вообще нет индексов 04 и 05, условия для параметров будут другими, но, пожалуй, выяснение этого момента я оставлю на плечах читателей
Пытаться разобрать истинность длинных логических выражений, думаю, не стоит, за вас это будет делать NCS Expert в режиме заводского кодирования. Он будет опираться на список идентов, полученных из FA и кодировочных индексов и сам подберёт нужные значения. Можно управлять установкой параметров, меняя сам FA (даже не обязательно его сохранять в блоки).
Теперь вы лучше понимаете, что такое FA, как он формируется, как на его основе составляется список идентов, как эти иденты используются при определении значений параметров, а так же что такие кодировочные индексы и как всё это дело связано друг с другом.
В следующей части мы поговорим о том, что из себя представляет конфигурация для блока управления, что такое NETTODAT и как его можно применить, а также о добавлении дополнительного варианта значения к параметрам с помощью NCS Dummy. В заключении практическое применение полученных знаний на примере изменения интервала замены масла.