*Casper* писал(а):У 22 есть код запроса совместимости. Также окрашиваются рабочие. А тупым перебором можно нарваться.
Бум надеяться мне повезет

И не нарвусь.
Итак откатал 60% примерно из заложенного списка.
Блин я на фью отъездил за полтора почти месяца наверное раза 4
Итак. Окончательно уже закрываем ОБД2.
Еще 0101 Докидываю и все.
Описалово
Ответ бензинового фьюжа 1,4л бензинка , рестайл 2006
В остальном все, пиды были даны в предыдущем посте.
Файл CSV для торка http://sanatar.ru/CSV/Ford%20Fusion%20OBD2.csv
На случай глюков хостинга, содержимое файла:
"Name", "ShortName", "ModeAndPID", "Equation", "Min Value", "Max Value", "Units", "Header"
OBD2:
"01 - MIL (1 - ON)","01 - MIL","0101","{A:7}",0,1,"",""
"01 - Fuel system status","01 - Fuel_SyS","0103","A",0,10,"число",""
Статус топливной системы:
1 - открытый контур (Open Loop)
2 - Закрытый контур, ЭБУ учитывает лямбду (Closed Loop), 60 сек. после запуска мотора
4 - открытый контур в движении: торможение двигателем или газ больше 80% (Open Loop Drive)
1 Open loop due to insufficient engine temperature
2 Closed loop, using oxygen sensor feedback to determine fuel mix
4 Open loop due to engine load OR fuel cut due to deceleration
8 Open loop due to system failure
16 Closed loop, using at least one oxygen sensor but there is a fault in the feedback system
"01 - Calculated engine load","01 - Load","0104","A*100/255",0,100,"%",""
Нагрузка на двигатель %, рассчитывается по объему потребляемого воздуха двигателем
"01 - Engine coolant temperature","01 - ECT","0105","A-40",0,120,"C",""
Температура охлаждающей жидкости
"01 - Short term fuel %","01 - STFT","0106","(A-128)*100/128",-15,15,"%",""
Краткосрочная топливная коррекция, берется с первой лямбды
"01 - Long term fuel %","01 - LTFT","0107","(A-128)*100/128",-15,15,"%",""
Долгосрочная топливная коррекция, берется с первой лямбды
"01 - MAP","01 - MAP","010B","A",0,110,"kPa",""
Давление в коллекторе
"01 - Engine RPM","01 - RPM","010C","((A*256)+B)/4",0,7000,"rpm",""
Обороты двигателя
"01 - Vehicle speed","01 - Speed","010D","A",0,200,"km/h",""
Скорость авто
"01 - Timing advance","01 - TA (УОЗ)","010E","(A-128)/2",-100,100,"",""
Угол опережения зажигания
"01 - Intake air temperature (С)","01 - IAT (C)","010F","A-40",0,90,"C",""
Температура воздуха поступающего в двигатель (берется за дросселем)
"01 - Throttle position (%)","01 - TP (%)","0111","A*100/255",0,100,"%",""
Абсолютное положение дроссельной заслонки
"01 - Oxygen sensors present","01 - Oxygen sensors present","0113","A",-100,100,"",""
3 - Наличие датчиков кислорода, поддержка двух датчиков (пид 14 и 15), а также коррекции по 14 пиду.
"01 - Oxygen sensor 1 voltage","01 - O2S1 V","0114","A/200",-10,10,"V",""
Лямбда 1 (напряжение)
"01 - Short term fuel trim (O2S1)","01 - O2S1 %","0114","(B-128)*100/128",-20,20,"%",""
Лямбда 1 (коррекция)
"01 - Oxygen sensor 2 voltage","01 - O2S2 V","0115","A/200",-10,10,"V",""
Лямбда 2 (напряжение)
"01 - OBD standards (6 - EODB)","01 - OBD standards","011C","A",0,1000,"",""
6 - EOBD (Europe), full list
https://en.wikipedia.org/wiki/OBD-II_PIDs#Mode_1_PID_1C
"01 - Distance traveled with MIL","01 - MIL Distance","0121","(A*256)+B",0,20000,"km",""
Пройденное расстояние с заженной лампой неисправности (МИЛ)
"00 - Distance traveled","01 - Distance","","(Val{Trip Distance}*.621371)",0,1000,"km",""
Пройденное расстояние
Вообще папка со всеми CSV тут
http://sanatar.ru/CSV/
Мои пока только:
- Ford Fusion OBD2
- Ford Fusion PCM
- OPEL MERIVA B OBD2
Остальное с инета.
Блок Geely+ABS+MK70 не подходит к нам (фьюжены с МК-70 ABS+EBD , но без ESP - это 60 блок), у нас там другие пиды и их 5 (4 скорости колес и 1 нажатие педали тормоза), найду время займусь им.
PCM
"Name", "ShortName", "ModeAndPID", "Equation", "Min Value", "Max Value", "Units", "Header"
PCM:
PCM точные:
"22 - пропуски зажигания","22 - misfire","221616","A",0,100000,"число",""
"22 - Напряжение АКБ","22 - АКБ V","221172","A/16",0,20,"V",""
"22 - App mode (газ нажат 255, отпущен 0)","22 - App mode","221125","A",0,255,"",""
"22 - частота впрыска","22 - Ingect Fuel","221410","((A*256)+B)*8/1000",0,100,"ms",""
"22 - Количество DTC","22 - DTC","220200","A",0,100,"",""
"22 - Из них некритичных DTC","22 - DTC2","220202","A",0,100,"",""
"22 - Время с момента пуска движка","22 - Time Engine Start","221126","A",-1000,1000,"sec",""
"22 - Fuel Status","22 - Fuel Status","22163C","A",0,5,"",""
1 - открытый контур (Open Loop)
2 - Закрытый контур, ЭБУ учитывает лямбду (Closed Loop), 60 сек. после запуска мотора
4 - открытый контур в движении: торможение двигателем или газ больше 80% (Open Loop Drive)
1 Open loop due to insufficient engine temperature
2 Closed loop, using oxygen sensor feedback to determine fuel mix
4 Open loop due to engine load OR fuel cut due to deceleration
8 Open loop due to system failure
16 Closed loop, using at least one oxygen sensor but there is a fault in the feedback system
"22 - Желаемые обороты","22 - DSDRPM","221135","A*16",0,2000,"",""
"22 - MIL (32 On / 0 Off)","22 - MIL (32 On)","221103","A",0,50,"",""
Лампа МИЛ
"22 - spark advance","22 - sprkadv","22116b","B*0.25",-100,100,"",""
УОЗ
"22 - Прегруз мотора (255 перегруз)","22 - Перегрузка","22116b","A",0,255,"",""
"22 - Нагрузка ГУР (LoW 0 / HigH 128)","22 - ГУР","221101","A",0,150,"",""
"22 - Нагреватель О2! (статусы 0,1,3)","22 - Нагреватель О2","221631","A",0,4,"",""
0 - не запущен
1 - идет прогрев 1 датчика
2 - идет прогрев 2 датчика
3 - оба датчика прогреты
Примерные:
"22* - Педаль газа %*","22* - AP pedal %","221340","(A*0.392155)",0,100,"%",""
"22* - Педаль газа V*","22* - AP pedal V","221340","(A*0.0196)",0,5,"V",""
"22* - Напряжение O2S1*","22* - O2S1","221173","(A*0.25) + (B*0.00098)",0,20,"V",""
"22* - Напряжение O2S2*","22* - O2S2","221174","(A*0.25) + (B*0.00098)",0,20,"V",""
"22* - Барометр (кПа)","22 - Барометр (кПа)","221442","((A*9.54)+(B*0.03375))/0.14503773773",0,110,"кПа",""
"22* - Барометр (мм рт ст)","22 - Барометр (мм рт ст)","221442","((A*9.54)+(B*0.03375))/0.14503773773*7.50061683",0,1000,"мм рт ст",""
"22* - MAP","22 - MAP","221440","(((A*256)+B)*0.0361691)/0.14503773773",0,110,"кПа",""
Давление в коллекторе
"22* - Генератор*","22 - Генератор","2216E8","(A*0.8)+(B*0.003921)",0,100,"%",""
99,4% пик, формула подбиралась на самом слабом генераторе.
"22* - Положение дросселя","22 - Дроссель","220011","A*0.71084",0,150,"%",""
"22* - Датчик дросселя1_V","22 - TP1_V","220917","(A*0.285)+(B*0.0005)",0,5,"V",""
"22* - Датчик дросселя2_V","22 - TP2_V","220918","(A*0.25295)+(B*0.0005)",0,5,"V",""
"22* - IAT_V","22 - IAT_V","22114a","(A*0.01955)+(B*0.00005)",0,10,"V",""
Температура впуска
"22* - ECT_V","22 - ECT_V","22114D","(A*0.01953)+(B*0.00005)",0,10,"",""
Температура ОЖ
Нужно сделать формулу:
"A+B - Скорость! (без форм)","22 - Скорость","2211c1","A+B",0,200,"km/h",""
"A+B - STFT!","22 - STFT","221158","A+B",0,100,"",""
"A+B - RPM!","22 - RPM","221165","A+B",0,7000,"",""
Непонятные:
"0 - 220005(От 83 до 134","22 - 220005","220005","A",-1000,2000,"",""
"0 - 22000E","22 - 22000E","22000E","A",-1000,2000,"",""
В районе 100-133
"0 - 22000F","22 - 22000F","22000F","A",-1000,2000,"",""
в районе 70-80
"0 - 221308","22 - 221308","221308","A",-1000,2000,"",""
МАФ? Данные после запуска мотора
"0 - 221621","22 - 221621","221621","A",-1000,2000,"",""
больше 0 не видел
"0 - 221912","22 - 221912","221912","A",-1000,2000,"",""
изредка на поворотах больше 0
"A+B - 22097C","22 - 22097C","22097C","A+B",-1000,2000,"",""
Данные непонятны от 76 до 255
"A+B - 2216F0","22 - Обороты колеса","2216F0","A+B",-1000,2000,"",""
96 =93+3
"A - 2216F0","22 - Обороты колеса","2216F0","A",-1000,2000,"",""
"B - 2216F0","22 - Обороты колеса","2216F0","B",-1000,2000,"",""
"A+B - 2216F1","22 - 2216F1","2216F1","A+B",-1000,2000,"",""
17 по второму байту , 0 по первому
"A - 2216F1","22 - 2216F1","2216F1","A",-1000,2000,"",""
"B - 2216F1","22 - 2216F1","2216F1","B",-1000,2000,"",""
Нулевые:
"A+B - Мин угол дросселя!","22 - Мин угол дросселя","221169","A+B",-1000,2000,"",""
больше 0 не видел и по А и по Б
"A - Мин угол дросселя!","22 - Мин угол дросселя","221169","A",-1000,2000,"",""
"B - Мин угол дросселя!","22 - Мин угол дросселя","221169","B",-1000,2000,"",""
z"00 - Air or trans 1104","22 - Air or trans!","221104","A",-1000,1000,"",""
z"00 - Air 1102","22 - 1102","221102","A",-1000,2000,"",""
Точные, формула точно известна.
Примерные - мой колхоз, формул нет придумывал сам. За основу брались данные ОБД2 аналогичных пидов, или вольтметр.
Например формула генератора, подбиралась под моего гену (самый нищебродский) и бралась по просадке напряжения в борт сети.
Педаль газа в % вообще колхоз, такого нет нигде, % придуман просто из пида вольтажа педали, из расчета 0в - 0% , 5в - 100%.
Барометр брался по данным автомобиля опель мерива б и китайских часов с барометром. Поэтому тоже точность +/- 2% где-то.
Барометр в мм рт столба, вообще просто захотелось сделать.
Барометр кстате работает честно, во всем времени работы машины, а не только запустили и он запомнил давление. Специально ездил высокого в горы, пока поднимался давление падало, спускался росло. Вывод барометр у меня работает на запущенном моторе постоянно.
Это пока примерно 60% выкатано.
На некоторые потом сделаю формулы, но блин меня уже напрягают:
220005
22000E
22000F
221621
221912
22097C
2216F1
Никак не могу понять и подловить , что это.
Данных о них вообще нет и в езде непонятно, я уже и даже дроссель руками вращал и датчики разные, не могу никак найти что это.
И чую будут еще когда откатаю весь список такие.
Добавлено спустя 32 минуты 30 секунд:
Re: Адаптер AllPRO-USB, ELM327 и Мастер-КИТ NM9213
Теория
Чтобы моя писанина не казалась , чем то непонятным.
Очень кратко.
Что такое пиды - https://ru.wikipedia.org/wiki/OBD-II_PIDs
Делаете запрос пида например:
0105
Ответ машины.
41 05 47
41 05 - повтор комманды, 47 ответ.
Ответ в 1 байт.
Бывают пиды где ответ выглядит так 47 04 (2 байта) , 47 04 04 (3 байта).
Формулы для торка строятся по следующим операциям.
Ответ ЭБУ обычно состоит из нескольких байт. Для обращения к определенному байту ответа используется буквенная адресация.
A-1 байт ответа, B-2, C-3, ..., Z-26, AA-27,AB-28,..
То есть ответ 47 04 05 , это А = 47 , В = 04, С = 05.
Для составления формулы используются следующие операции:
A*10 — умножение
A/2.5 — деление
A+B — сложение
B-10 — вычитание
A<8 - двоичный сдвиг влево
A&4 – побитовое И
() — порядок действий, (A<8)+B
{A:x} — x-тый бит первого байта. A = 00001010 = 0A, {A:0} = 0; {A:1} = 1
[XX] – значение PID, где XX - идентификатор PID, т.е. [0d]-скорость, [ff1001]-скорость по GPS
Baro() - значение внешнего давления или с PID [33] – от двигателя, или [ff1270] – с датчика телефона.
A^B – А в степени B
Log10(A) – Десятичный логарифм из А
SIGNED(A) - воспринимается как байт со знаком, где старший бит - знаковый
ABS(A) - модуль из А
VAL{имя PID} - значение датчика с заданным именем
Разделителем целой и десятичной части коэффициента является знак точки "."
Как вычисляется?
Например: температура ОЖ
0105
Ответ машины.
41 05 47
Повтор комманды 41 05 , ответ 47.
А = 47 (ответ в шестнадцатиричной)
47 переводим из шестнадцатиричной в десятичную, например этим
http://calc-x.ru/hex_to_dec_form.php
Или вручную 4*16+7=71
А = 71 ( в десятичной)
Дальше на пид 0105 есть формула A-40 (
https://ru.wikipedia.org/wiki/OBD-II_PIDs) 71 - 40 = 31С температура ОЖ
Есть пиды где нет формулы, например:
0103 статус топливной системы
Там ответ просто идет из 2 байт
0103
41 03 02 00
Данные есть только по А байту.
Кодируется статус топливной системы 1 - открытый контур, 2- закрытый контур, 4 - открытый контур при движении (когда лямбда не может дать точные данные - силовой режим и торможение движком). Есть еще 8 и 16, это ошибки с датчиками.
Это все подробно тут
https://en.wikipedia.org/wiki/OBD-II_PIDs
Есть пиды кодирующиеся битами
0100 0120 0101 и т.д.
https://en.wikipedia.org/wiki/OBD-II_PIDs#Mode_1_PID_00
Например:
>0100
41 00 BE 3F B8 13
Ответ BE 3F B8 13 надо вот по этой ссылке битами расшифровать
Тоесть перевести данные BE 3F B8 13 из шстнадцатиричной в двоичную
таблица для помощи
Вот по сути если кратко как расшифровывать ответы ЭБУ.