The vehicle speed is stored in RAM as the actual speed times 1.25, so the scale of 1.0 / 1.25 is needed to convert to the real value.
All of the variables I posted were derived using the code that implements the KWP1281 measuring blocks function. So unless the measuring blocks are wrong, then I am pretty sure that the intake cam adjustments are for the correct banks.
Any info on why you think these variables are wrong?
Hi Tony,
for the vehicle speed it is quite easy to see: if you would calculate RAM-Value / 1.25,
the variable (is an UINT8) can keep only 255 / 1.25 km/h = 204 km/h.
Having a look at the definition of 'vfzg' in ASAP2 files, it is of type 'vfzg_ub_q1p25'
and it can store speeds from 0 .. 318.75 km/h. The definition of 'vfzg_ub_q1p25' contains
conversion factors (COEFFS 0 1 0 0 0 1.25) which result in the conversion
formula: INT = (0*PHYS^2 + 1*PHYS + 0) / (0 * PHYS^2 + 0 * PHYS + 1.25) = PHYS / 1.25
-> You have to multiply the internal value with 1.25 to get to the physical km/h.
For the two intake cam adjustments:
I used the result type numbers defined in the Funktionsrahmen, section TKMWL, page 1555:
179 wnwi_w Nockenwellenverstellung Bank1 SY_BDE=0 degKW 34 100 +/-100 degKW
180 wnwi2_w Nockenwellenverst.Bank2 SY_BDE=0 & SY_STERVK=1 degKW 34 100 +/-100 degKW
When I look into the image, type 179(0xB3) uses address 0x380F8A and type 180(0xB4) uses 0x380F88.
Therefore I was thinking they are mixed up in your definition.
But in the meas group definitions in the image, it seems like they mixed up also Bank1 and Bank2
for the measurement reports of ME7.1:
measgroup 090: 0001(nmot ), 008D( ), 00B4(wnwi2_w), 00B3(wnwi_w )
measgroup 091: 0001(nmot ), 0002(rl ), 008D( ), 00B4(wnwi2_w)
measgroup 092: 0001(nmot ), 0002(rl ), 008D( ), 00B3(wnwi_w )
For a single-bank engine, type B3 is used in the measurement group definition:
measgroup 090: 0001(nmot ), 025F( ), 00B3(wnwi_w ), 0000(---- )
measgroup 091: 0001(nmot ), 0002(rl ), 025F( ), 00B3(wnwi_w )
measgroup 092: 0000(---- ), 0000(---- ), 0000(---- ), 0000(---- )
Now I'm confused, seems like Bosch mixed up two times. Can't say which one is for which bank,
but most probably the first address is for Bank1 and the second for Bank2 as you said.
Is there a way to determine the bank from the code which uses the variables?