DME problēma. Part 2

Manu auto piemeklējušas DME problēmas! Kādēļ es arvien vairāk sliecos tieši uz šo scenāriju?

 

Ja kāda cilindra sprausla ir atslēgta (kā var spriest pēc konkrētās kļūdas un fakta, ka dzinējs "paliek" uz 5 cilindriem), ''normālā'' (defektam atbilstošā) situācijā izplūdē nonāk:

a. 6 devas gaisa, jo gaiss ieplūst visos cilindros;

b. 5 devas degvielas, jo viena cilindra sprausla ir deaktivēta. 

Ja ar sprauslām viss ir kārtībā, vidējam (visu 6 cilindru) degvielas maisījumam jābūt liesam, ar Lambda ap 1.20.

Bankā, kuras cilindrs ir atslēgts, izplūdē nonāk:

a. 3 devas gaisa, jo gaiss ieplūst visos cilindros;

b. 2 devas degvielas, jo viena cilindra sprausla ir deaktivēta.

Ja ar sprauslām viss ir kārtībā, degvielas maisījumam jābīt ļoti liesam, ar Lambda līdz 1.50.

Rough run dati crash brīdī rāda, ka 5 "atlikušie" cilindri turpina strādāt. Piedevām, 2 atlikušo ''traumētās'' bankas cilindru mehāniskā efektivitāte ir identiska. Tātad - tie strādā korekti un problēma tiešām ir ar konkrētās bankas pēdējo (6.), atslēgto cilindru!

Daudz interesantākus datus šajā brīdī rāda NOx sensors. Tā Lambda bija stabila: 0.78 (tā atbilst minimālajai vērtībai, ko spēj uzrādīt sensors). Šādu vērtību NOx sensors uzrāda crash brīdī gan tukšgaitā, gan paaugstinot dzinēja RPM, gan braucot - slodzē. Kāpēc šī vērtība ir tik svarīga?

Konkrētajā gadījumā abas zondes - gan bankas platjoslas zonde, gan NOx sensors - uzrādīja nevis liesu, bet bagātu degvielas maisījumu, kas nozīmē - atslēgtā sprausla patiesībā tek! Tātad - tas nav DME Lambda zondes vai tās vadības moduļa defekts. 

HPFP spēja uzturēt stabilu spiedienu: 200 bar. Vēl vairāk - tam nebija nekādu problēmu šo spiedienu uzturēt; pat 29F1 (plaussibility kļūda) netika ierakstīta nevienu reizi! Tas nozīmē - sprauslas tecēšana nav fatāla.

Kad tiek mainīti/RPM un/vai pieprasītā grieze, gaisa apjoms, kas tiek piegādāts cilindriem - mainās (tas pieaug desmitiem reižu, no tukšgaitas RPM palielinot līdz 2500 .. 3000 un griezi līdz 150 .. 200 Nm). Savukārt, tekošajai sprauslai nav nekādu iespēju zināt, cik daudz gaisa tiek piegādāts cilindram! Šī ir fundamentālā dīvainība ar nemainīgo Lambda vērtību, kuru uzrāda Lambda zonde un NOx sensors. Tukšgaitā sprausla tek relatīvi nedaudz, taču tās tecēšana pieaug, palielinot RPM un/vai pieprasīto griezi!

a. sprausla pil ļoti stabili - visos crash, Lambda zonde un NOx sensors uzrāda identisku Lambda vērtību;

b. sprausla "zina", cik daudz gaisa ir padots cilindram, tā pil proporcionāli gaisa apjomam.

Redzot šādus diegvielas maisījuma datus, man vairs nav palikušas ne mazākās šaubas - sprausla nevis tek, bet DME turpina atvērt konkrēto sprauslu! Jo tikai DME var zināt, cik daudz gaisa tiek padots cilindram; tikai DME var nodrošināt tik precīzu sprauslas "tecēšanu". DME ir atslēdzis cilindru, bet sprausla turpina atvērties? Šādu defektu var radīt divi pamatiemesli:

a. Hardware problēmas. Sprauslas Low-side draiveris (IC un/vai MOSFET) paliek atvērtā pozīcijā visu laiku, lai gan tam būtu jābūt aizvērtam;

b. Software problēmas. DME software nekorekti vada konkrēto sprauslu.

 

Īsumā par hardware problēmu

MOSFET (slēdža) problēma ir faktiski neiespējama, jo defekts pēc īsa brīža pazūd. Bojāts tranzistors nevar "salaboties". Ja tranzistoram būtu liela Ids strāvas noplūde, tajā (slēdzī) izdalītos liela siltumjauda. Tranzistors nekavējoši pārkarstu un tiktu permanenti bojāts (būtu īssavienojums starp D un S). MOSFET draivera bojājuma iespējamība ir bezgalīgi maza; draivera IC darbojas ar ļoti mazu noslodzi (jo low-side slēdžu vadīšana notiek ar ļoti zemu frekvenci).

Un pēdējais arguments: konkrētais cilindrs tiek atslēgts, pirms kādas pamanāmas problēmas (vibrācija, misfires) un nekorekts degvielas maisījums vispār parādās. Arī - DME nedetektē hardware problēmu, lai gan prakse rāda, ka šādas low-side slēdžu problēmas parasti tiek identificētas nekavējoties un nekavējoties tiek ierakstīta kļūda 30BB (piedevām šo kļūdu nevar nodzēst, nesalabojot hardware).

 

Software defekts

Software problēma šķiet ticamāks iemesls. Pats cilindra atslēgšanas events šķiet dīvains - tam nav loģiska izskaidrojuma. Turklāt, jāatceras - pirmās software (neskaitot milzīgo bug apjomu pat pēdējās SW relīzēs, kas liek sevi manīt diezgan bieži) problēmas šos DME skar jau pie 320.000 km nobraukuma. Tad pārstāj darboties eļļas maiņas intervāla uzskaites sistēma. Diemžēl, BMW AG šo problēmu nenovērsa un vienīgais risinājums (ko arī iesaka pats BMW AG) - šo CBS sadaļu atslēgt. Nākošās DME reģistru pārpildīšanās notiek ap 530.000km, kad odometra rādījumi DME tiek sākti no 0. Šajā brīdī DME atmiņā tika ierakstītas pāris pavisam neloģiskas kļūdas, kas apstiprina: virkne DME servisa procedūru izmanto šos ''pārslogotos'' odometra absolūtā nobraukuma reģistrus. Kādas problēmas sākas pēc šādas reģistru pārpildīšanās - to nezina neviens. Pat ne programmatūras izstrādātāji. Jo, kā redzam, šādi (BMW izpratnē - milzīgu nobraukumu/motorstundu) scenāriji nav pat testēti! Jo, ja tie būtu testēti, inženieri būtu šīs pamatkļūdas novērsuši. Loģiski, vai ne? Liela odometra/motorstundu rādījuma versija šķiet ticamākā, taču nevar izslēgt arī citas, piem., kāda cilindru cutoff reižu skaitītāja pārpildīšanos vai vienkārši nekorektas vērtības kādās atmiņas šūnās.


Iespējamie software defekti:

a. nobraukuma reģistru pārpildīšanās;

b. citu eventu (piem., cilindra cutoff skaitītāja; kādas servisa procedūras veikšanas reižu, utml.) reģistru pārpildīšanās;

c. kādu adaptāciju reģistru (piem., tekošas sprauslas pārāk spēcīga korekcija) pārpildīšanās;

d. teorētiski - jebkādu citu reģistru/atmiņas šūnu nekorekts saturs (apstākļu sakritība; matemātiska kļūme konkrētos apstākļos, utjpr.).


Bet, es esmu inženieris, tādēļ - nevis minēšu, bet mēģināšu saprast, kurš no iepriekšminētajiem kļūdas cēloņiem ir īstais.


Ja problēmas cēlonis ir hardware (low-side driver, tā MOSFET), situācija ir sekojoša:

a. DME (pamanot problēmu) atslēdz high-side driver aktivēšanu bojātajam cilindram paredzētajā laikā;

b. low-side slēdzis ir atvērts (bojāts) - bojātā cilindra sprausla tiek atvērta 2 reizes: kopā ar bankas atlikušo aktīvo cilindru sprauslām.

Pamanot dubultu strāvu caur bojātās bankas low-side slēdžiem, DME atslēdz visu banku (kas šoreiz nenotiek).

Ja problēmas cēlonis ir software, iespējamas divas situācijas:

a. iepriekšminētā situācija: DME korekti vada high-side slēdzi (neaktivizē to bojātā cilindra darba laikā), bet kļūdaini vada atslēgtā cilindra sprauslu, atstājot low-side vadības tranzistoru visu laiku atvērtu (nevis - aizver to);

b. DME kļūdaini vada arī high-side slēdzi, patiesībā atstājot it kā atslēgto cilindru ieslēgtu UN nepareizi vada arī šī cilindra sprauslu, atstājot atvērtu low-side slēdzi. Šajā situācijā it kā atslēgtā cilindra sprausla atvērsies 3 reizes: vienu reizi pareizajā brīdī un divas papildus reizes, kopā ar divu atlikušo bankas cilindru sprauslām.

Software problēmas gadījumā DME var nemanīt low-side slēdžu strāvas neatbilstības; nekādas kļūdas neierakstīt (atbilst šai situācijai). 


Uz brīdi ''aizmirsīšu'' par pašu cilindra atslēgšanas dīvainību, bet paanalizēšu datus, kas man ir pieejami un ticami.


Parēķināsim, kādām jābūt Lambda vērtībām abos iespējamajos gadījumos:

a. sprausla atveras 2 reizes 0 vietā;

b. sprausla atveras 3 reizes 0 vietā.


Pirmais scenārijs. Sprausla atveras 2 reizes 0 vietā:

a. bojātajā bankā: 3 devas gaisa un 4 (1+1+2) devas degvielas, Lambda jābūt ap: 0.75

b. izplūdē kopā: 6 devas gaisa; 7 (1+1+1+1+1+2) devas degvielas, Lambda jābūt ap: 0.86


Otrais scenārijs. Sprausla atveras 3 reizes 0 vietā:

a. bojātajā bankā: 3 devas gaisa un 5 (1+1+3) devas degvielas, Lambda jābūt ap: 0.60

b. izplūdē kopā: 6 devas gaisa; 8 (1+1+1+1+1+3) devas degvielas, Lambda jābūt ap: 0.75

 

Abu sensoru (bankas Lambda zonde un NOx sensors) dati liecina, ka šis ir otrais senārijs, jo:

a. bankas Lambda ir stabili zem 0.70 (un nevis ap 0.75);

b. NOx sensors rādījums ir Lambda 0.78, tā dati ir daudz tuvāk 0.75 kā 0.86.

 

Ko nozīmē šāds rezultāts? Acīmredzot, DME:

a. paziņo, ka atslēdz cilindru, bet patiesībā high-side slēdzis turpina strādāt ''ar pilnu jaudu'', cenšoties aktivizēt arī atslēgto sprauslu;

b. atslēgtā cilindra low-side slēdzi DME nevis aizver, bet tieši pretēji - kļūdaini atstāj visu laiku atvērtu.

a punktā minētais defekts nekādi nav iespējams kā hardware problēma. Man nepaliek ne mazāko šaubu - šis ir DME programmatūras defekts. Izskatās, ka nepamatoti (kļūdaini) tiek izsaukta 6.tā cilindra atslēgšanas procedūra, taču arī tā tiek izpildīta pilnīgi nekorekti!

Par konkrēto programmatūras defektu mans viedoklis ir skarbs - šis ir ĻOTI zemas kvalitātes realtime vadības sistēmas programmatūras piemērs! Šādas situācijas NEDRĪKST gadīties nekādos apstākļos! Pat, ja cilindrs tiek kļūdaini atslēgts, NEDRĪKST notikt nekotrolēta izpildmehānismu aktivēšana! Kritisko elementu (piem., HPFP vadība, arī sprauslas ir šādi elementi) vadības kontrolei bija jābūt ''virskontroles'' procedūrām (vai pat hardware realizācijai/kontrolei), kas tiek izsauktas ar augstāko prioritāti un, ja identificē abnormālu situāciju, izsauc DME hot restart sekvenci. Redzot šādas DME izpausmes, ir skaidrs, ka šāda funkcionalitāte realizēta nav. Par dažu desmitu centu ietaupīšanu, kas rezultējas ar bojātiem low-side slēdžiem, esmu rakstījis citos bloga ierakstos. Šī situācija ir vēl skarbāka.

 

Šajā gadījumā sekas šādai programmatūras kļūdai ir:

a. izplūdē nokļūst liels daudzums gaisa un degvielas, kas ar lielu iespējamību var eksplodēt un sabojāt izplūdi (CO un NOx katalizatorus, visus sensorus izplūdē). Pat neeksplodējot, šāds degmaisījums sensorus bojā ātri un neatgriezeniski;

b. izplūdē nokļuvušais gaiss un degviela turpina sadegt CO katalizatoros, tos neatgriezeniski bojājot. CO katalizatoru temperatūra pieaug līdz vērtībām, pie kurām iespējama auto aizdegšanās;

c. nekorekti pieslēgtā ''papildsprausla'' rada dubultu slodzi (virs 20A atverot/aizverot sprauslas) high-side slēdžiem, kas ar lielu iespējamību agrāk vai vēlāk tos bojās, nodarot pamatīgus bojājumus pašam DME.

 

Kādi ir iespējamie problēmas risinājumi? Varianti, sākot no vienkāršākā:

a. odometra modificēšana līdz ''drošai'' vērtībai, tad - DME reflash;

b. pilns DME reflash no kāda klona ar ''drošu'' odometra rādījumu;

c. cits DME ar ''drošu'' odometra rādījumu.

Diemžēl, neviens jau īsti nezina, vai reflash attīra visus reģistrus (mani šoreiz interesē - vai attīra tos reģistrus, kuri ir pārpildījušies), kā attīrīt ''nepieejamos'' atmiņas sektorus, utjpr. Zināma jautrība ir garantēta! 

BMW/Siemens - no sirds un rajona, paldies par kvalitatīvo darbu!


Nobeigumā: diagrammas, kā izskatās sprauslu vadība N53 sērijas dzinējam. 

A/B/C - 1.;2.;3. sprauslas low-side slēdža signāls

Aact/Bact/Cact - sprauslu aktivēšanas brīži

HS - high-side slēdža signāls

Ar dzeltenu iekrāsota sprauslu atvēršana/izsmidzināšanas cikls


1.attēls: korekta sprauslu vadība


 

2.attēls: pareizi atslēgta A sprausla. Slēdzis (A) - aizvērts/neaktīvs

 

3.attēls: A sprausla atslēgta, bet bojāts A sprauslas low-side slēdzis (A). Korekti strādājoša DME gadījumā nekavējoši tiek ierakstīta 30BA/30BB kļūda un atslēgtas visas šīs bankas sprauslas. Ja sprausla netiek atslēgta, tā izsmidzina 2 ''liekas'' degvielas porcijas

 

4.attēls: neatslēgta A sprausla un bojāts/nekorekti strādājošs low-side slēdzis A sprauslai. Pilnīgi nekorekti strādājošs DME. ''Atslēgtā'' sprausla izsmidzina 3 ''liekas'' degvielas porcijas


Par progresu - turpinājumā.

 




Komentāri

Šī emuāra populārākās ziņas

G31 Alpina problēmas. Part 1

G31 Alpina problēmas. Part 3

Dažas piezīmes par lodēšanas stacijām