Fórum témák

» Több friss téma
Fórum » OBD (autós) készülék
Lapozás: OK   53 / 60
(#) Pepebá válasza atus1981 hozzászólására (») Okt 15, 2015 /
 
Üdv.
Igazából nem tudok segíteni, csak tippem van:
- a gyártók nem minden PID-hez adnak hozzáférést (az a 14-15-l nincs gond, ugye ezek kellenek a diag.hoz, mélyebb adatokhoz gyártó specifikált eszközzel lehet még több adatot megtudni)
- nem minden adatkezelést végez az ECU, különböző egységek önálló életet élnek, az ECU is onnan veszi az adatokat és a kommunikációs csatornán nem érhetők el. (fed.komp, légzsák, ABS..)
Egyébként az lehet tudni milyen protokollal próbálkoztál?
(#) atus1981 válasza Pepebá hozzászólására (») Okt 15, 2015 /
 
Üdv!
ISO9141. Egy 97-es A4 TDI az alany. Talán a műszerfalat kellene faggatni ez ügyben?
(#) sunside hozzászólása Okt 15, 2015 /
 
Sziasztok,
Van egy Autel MaxScan G500 -as kódolvasóm aminek a leírása szerint tudnia kellene törölni a *check engine light*-ot amit persze nem tesz meg. Ezenkívül szinte minden megy rajta, online-offline diagnosztika rendben.
Van valakinek ilyen készüléke és tud tanácsot adni, hogy mit csinálhatok rosszul?
(#) Pepebá válasza atus1981 hozzászólására (») Okt 15, 2015 /
 
Üdv.
Én megpróbálnám. A kódban tudnál segíteni? milyen p.nyelven nyered ki az adatokat. Én raspi-val akarom megpróbálni, python-ban. Tud soros portot kezelni.
(#) atus1981 válasza Pepebá hozzászólására (») Okt 16, 2015 /
 
Arduino.
  1. #include <LiquidCrystal.h>
  2.  
  3.  
  4. #include <SoftwareSerial.h>
  5.  
  6. SoftwareSerial BTSerial(10, 11); // RX | TX
  7.  
  8. //Declare BTSerial Read variables
  9. int CmdCount=1;
  10. byte inData;
  11. char inChar;
  12. String BuildINString="";
  13. String DisplayString="";
  14. long DisplayValue;
  15. String SentMessage="";
  16. int ByteCount=0;
  17. long A;
  18. int B;
  19. int WorkingVal;
  20. String WorkingString="";
  21. int RefreshCounter=0; // when the reading should refresh
  22. int RefreshCounterMax=50; //Adjust this refreshrate
  23. int RESETMenuName=0;
  24.  
  25. //MenuAnalogVal
  26. int x;
  27. //Declare Buttons
  28. int MenuID=0;
  29. int UpDownMenu=0;
  30.  
  31. // initialize the library with the numbers of the interface pins
  32. LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
  33.  
  34. void setup()
  35. {
  36.  
  37.     Serial.begin(38400);
  38.    BTSerial.begin(38400);
  39.    
  40.   // delay(3000);
  41.  
  42.     BTSerial.println("AT+ORGL");
  43.     // set up the LCD's number of columns and rows:
  44.   lcd.begin(16, 2);
  45.   // Print a message to the LCD.
  46.   lcd.setCursor(0, 0);
  47.   Bootup();//Simulate Bootup process doesnt have to be here this only makes it look cool
  48.   Retry:
  49.   lcd.setCursor(0, 0);
  50.   lcd.print("Connecting......    ");
  51.   lcd.setCursor(0, 1);
  52.   lcd.print("                    ");
  53.  
  54.  
  55.   delay(500);
  56.   //Send a test message to see if the ELM327 Chip is responding
  57.   SentMessage = "ATI";
  58.   BTSerial.println("ATI");delay(500);ReadData();
  59.   if (BuildINString.substring(1,7)=="ELM327")
  60.     {
  61.       lcd.setCursor(0, 0);
  62.       lcd.print("Welcome...            ");
  63.       lcd.setCursor(0, 1);
  64.       lcd.print("Connection OK         ");
  65.       delay(1500);
  66.       DisplayString="Reading Data...........";
  67.     }
  68.     else
  69.     {
  70.       lcd.setCursor(0, 0);
  71.       lcd.print("Error             ");
  72.       lcd.setCursor(0, 1);
  73.       lcd.print("No Connection!         ");
  74.       delay(1500);
  75.       goto Retry;
  76.     }
  77.  
  78.  
  79.   delay(1500);
  80. }
  81.  
  82. void loop()
  83. {
  84. RefreshCounter++;
  85.  
  86. x = analogRead (0);
  87. //BTSerial.println(x);
  88. lcd.setCursor(10,1);
  89. if (x > 800 and x < 820){lcd.print ("Select  ");}
  90. if (x > 450 and x < 590){if (MenuID>0){MenuID--;}DisplayString="Reading Data...........";delay(250);}//Left
  91. if (x > 400 and x < 415){if (UpDownMenu<3){UpDownMenu++;}delay(250);RESETMenuName=0;}//DOWN
  92. if (x > 190 and x < 215){if (UpDownMenu>0){UpDownMenu--;}delay(250);RESETMenuName=0;}//UP
  93. if (x > -10 and x < 10) {if (MenuID<13){MenuID++;}DisplayString="Reading Data...........";delay(250);} //Right
  94.  
  95. if (UpDownMenu==0)
  96. {
  97.  
  98.   if(RESETMenuName==0){lcd.setCursor(0, 0);lcd.print("Engine Readings  ");lcd.setCursor(0, 1);lcd.print("                      ");delay(2000);RESETMenuName=1;}
  99.   if (MenuID==0){lcd.setCursor(0, 0);lcd.print("01 Coolant Temp    ");lcd.setCursor(0, 1);lcd.print(DisplayString);if (RefreshCounter==RefreshCounterMax){SentMessage = "01 05";BTSerial.println("01 05");delay(50);ReadData();}}
  100.   if (MenuID==1){lcd.setCursor(0, 0);lcd.print("02 IAT Temp        ");lcd.setCursor(0, 1);lcd.print(DisplayString);if (RefreshCounter==RefreshCounterMax){SentMessage = "01 0F";BTSerial.println("01 0F");delay(50);ReadData();}}
  101.   if (MenuID==2){lcd.setCursor(0, 0);lcd.print("03 Ambient Temp    ");lcd.setCursor(0, 1);lcd.print(DisplayString);if (RefreshCounter==RefreshCounterMax){SentMessage = "01 46";BTSerial.println("01 46");delay(50);ReadData();}}
  102.   if (MenuID==3){lcd.setCursor(0, 0);lcd.print("04 Throttle %      ");lcd.setCursor(0, 1);lcd.print(DisplayString);if (RefreshCounter==RefreshCounterMax){SentMessage = "01 11";BTSerial.println("01 11");delay(50);ReadData();}}
  103.   if (MenuID==4){lcd.setCursor(0, 0);lcd.print("05 CAT 1 Temp      ");lcd.setCursor(0, 1);lcd.print(DisplayString);if (RefreshCounter==RefreshCounterMax){SentMessage = "01 3C";BTSerial.println("01 3C");delay(50);ReadData();}}
  104.   if (MenuID==5){lcd.setCursor(0, 0);lcd.print("06 CAT 2 Temp      ");lcd.setCursor(0, 1);lcd.print(DisplayString);if (RefreshCounter==RefreshCounterMax){SentMessage = "01 3D";BTSerial.println("01 3D");delay(50);ReadData();}}
  105.   if (MenuID==6){lcd.setCursor(0, 0);lcd.print("07 CAT 3 Temp      ");lcd.setCursor(0, 1);lcd.print(DisplayString);if (RefreshCounter==RefreshCounterMax){SentMessage = "01 3E";BTSerial.println("01 3E");delay(50);ReadData();}}
  106.   if (MenuID==7){lcd.setCursor(0, 0);lcd.print("08 CAT 4 Temp      ");lcd.setCursor(0, 1);lcd.print(DisplayString);if (RefreshCounter==RefreshCounterMax){SentMessage = "01 3F";BTSerial.println("01 3F");delay(50);ReadData();}}
  107.   if (MenuID==8){lcd.setCursor(0, 0);lcd.print("09 RPM             ");lcd.setCursor(0, 1);lcd.print(DisplayString);if (RefreshCounter==RefreshCounterMax){SentMessage = "01 0C";BTSerial.println("01 0C");delay(50);ReadData();}}
  108.   if (MenuID==9){lcd.setCursor(0, 0);lcd.print("10 Vehicle Speed   ");lcd.setCursor(0, 1);lcd.print(DisplayString);if (RefreshCounter==RefreshCounterMax){SentMessage = "01 0D";BTSerial.println("01 0D");delay(50);ReadData();}}
  109.   if (MenuID==10){lcd.setCursor(0, 0);lcd.print("11 Air Flow Rate  ");lcd.setCursor(0, 1);lcd.print(DisplayString);if (RefreshCounter==RefreshCounterMax){SentMessage = "01 10";BTSerial.println("01 10");delay(50);ReadData();}}
  110.   if (MenuID==11){lcd.setCursor(0, 0);lcd.print("12 Barometric     ");lcd.setCursor(0, 1);lcd.print(DisplayString);if (RefreshCounter==RefreshCounterMax){SentMessage = "01 33";BTSerial.println("01 33");delay(50);ReadData();}}
  111.   if (MenuID==12){lcd.setCursor(0, 0);lcd.print("13 EGT            ");lcd.setCursor(0, 1);lcd.print(DisplayString);if (RefreshCounter==RefreshCounterMax){SentMessage = "01 78";BTSerial.println("01 78");delay(50);ReadData();}}
  112.   if (MenuID==13){lcd.setCursor(0, 0);lcd.print("14 Fuel Rate");lcd.setCursor(0, 1);lcd.print(DisplayString);if (RefreshCounter==RefreshCounterMax){SentMessage = "01 5E";BTSerial.println("01 5E");delay(50);ReadData();}}
  113. }
  114. if (UpDownMenu==1)
  115. {
  116.   if(RESETMenuName==0){lcd.setCursor(0, 0);lcd.print("Trans Readings   ");lcd.setCursor(0, 1);lcd.print("                      ");delay(2000);RESETMenuName=1;}
  117.   lcd.setCursor(0, 0);lcd.print("Not Implemented      " );  
  118. }
  119. if (UpDownMenu==2)
  120. {
  121.   if(RESETMenuName==0){lcd.setCursor(0, 0);lcd.print("Settings         ");lcd.setCursor(0, 1);lcd.print("                      ");delay(2000);RESETMenuName=1;}
  122.   lcd.setCursor(0, 0);lcd.print("Not Implemented      ");  
  123. }
  124. if (UpDownMenu==3)
  125. {
  126.   if(RESETMenuName==0){lcd.setCursor(0, 0);lcd.print("About By MartinV");lcd.setCursor(0, 1);lcd.print("\\WisperChip V2.00 ");delay(2000);RESETMenuName=1;}
  127.   lcd.setCursor(0, 0);lcd.print("System Version  ");  
  128. }
  129. //Restart RefreshCounter  
  130. if (RefreshCounter>=RefreshCounterMax){RefreshCounter=0;}
  131. delay(1);
  132.  
  133. }
  134.  
  135. //Read Data and act accordingly
  136. void ReadData()
  137. {
  138.  
  139.   BuildINString="";  
  140.   while(BTSerial.available() > 0)
  141.   {
  142.     inData=0;
  143.     inChar=0;
  144.     inData = BTSerial.read();
  145.     inChar=char(inData);
  146.     BuildINString = BuildINString + inChar;
  147.   }
  148.  
  149.   //if(BuildINString!=""){BTSerial.print(BuildINString);}
  150.   BuildINString.replace(SentMessage,"");
  151.   BuildINString.replace(">","");
  152.   BuildINString.replace("OK","");
  153.   BuildINString.replace("STOPPED","");
  154.   BuildINString.replace("SEARCHING","");
  155.   BuildINString.replace("NO DATA","");
  156.   BuildINString.replace("?","");
  157.   BuildINString.replace(",","");
  158.   //BTSerial.print(BuildINString);
  159.  
  160.   //Check which OBD Command was sent and calculate VALUE
  161.   //Calculate RPM I.E Returned bytes wil be 41 0C 1B E0
  162.   //RPM
  163.   if (SentMessage=="01 0C")
  164.   {
  165.     WorkingString = BuildINString.substring(7,9);
  166.     A = strtoul(WorkingString.c_str(),NULL,16);
  167.     WorkingString = BuildINString.substring(10,12);
  168.     B = strtoul(WorkingString.c_str(),NULL,16);
  169.    
  170.    DisplayValue = ((A * 256)+B)/4;
  171.    DisplayString = String(DisplayValue) + " rpm               ";
  172.    lcd.setCursor(0, 1);
  173.    lcd.print(DisplayString);
  174.   }
  175.   //Calculate Vehicle speed I.E Returned bytes wil be 41 0C 1B E0
  176.   if (SentMessage=="01 0D")
  177.   {
  178.     WorkingString = BuildINString.substring(7,9);
  179.     A = strtoul(WorkingString.c_str(),NULL,16);
  180.  
  181.    DisplayValue = A;
  182.    DisplayString = String(DisplayValue) + " km/h              ";
  183.    lcd.setCursor(0, 1);
  184.    lcd.print(DisplayString);
  185.   }
  186.  
  187.   //Coolant Temp
  188.   if (SentMessage=="01 05")
  189.   {
  190.     WorkingString = BuildINString.substring(7,9);
  191.     A = strtoul(WorkingString.c_str(),NULL,16);
  192.  
  193.    DisplayValue = A - 40;
  194.    DisplayString = String(DisplayValue) + " C                ";
  195.    lcd.setCursor(0, 1);
  196.    lcd.print(DisplayString);
  197.   }
  198.  
  199.     //IAT Temp
  200.   if (SentMessage=="01 0F")
  201.   {
  202.     WorkingString = BuildINString.substring(7,9);
  203.     A = strtoul(WorkingString.c_str(),NULL,16);
  204.  
  205.    DisplayValue = A -40;
  206.    DisplayString = String(DisplayValue) + " C                ";
  207.    lcd.setCursor(0, 1);
  208.    lcd.print(DisplayString);
  209.   }
  210.  
  211.   //Air flow Rate
  212.   if (SentMessage=="01 10")
  213.   {
  214.     WorkingString = BuildINString.substring(7,9);
  215.     A = strtoul(WorkingString.c_str(),NULL,16);
  216.     WorkingString = BuildINString.substring(11,13);
  217.     B = strtoul(WorkingString.c_str(),NULL,16);
  218.    
  219.    DisplayValue = ((A * 256)+B)/100;
  220.    DisplayString = String(DisplayValue) + " g/s            ";
  221.    lcd.setCursor(0, 1);
  222.    lcd.print(DisplayString);
  223.   }
  224.  
  225.   //Ambient Temp
  226.   if (SentMessage=="01 46")
  227.   {
  228.     WorkingString = BuildINString.substring(7,9);
  229.     A = strtoul(WorkingString.c_str(),NULL,16);
  230.  
  231.    DisplayValue = A -40;
  232.    DisplayString = String(DisplayValue) + " C             ";
  233.    lcd.setCursor(0, 1);
  234.    lcd.print(DisplayString);
  235.   }
  236.  
  237.   //eNGINE OIL tEMP
  238.   if (SentMessage=="01 5E")
  239.   {
  240.     WorkingString = BuildINString.substring(7,9);
  241.     A = strtoul(WorkingString.c_str(),NULL,16);
  242.         WorkingString = BuildINString.substring(11,13);
  243.     B = strtoul(WorkingString.c_str(),NULL,16);
  244.  
  245.    DisplayValue = ((A*256)+B)*0.05;
  246.    DisplayString = String(DisplayValue) + "     L/h         ";
  247.    lcd.setCursor(0, 1);
  248.    lcd.print(DisplayString);
  249.   }
  250.  
  251.   //Throttle position
  252.   if (SentMessage=="01 11")
  253.   {
  254.     WorkingString = BuildINString.substring(7,9);
  255.     A = strtoul(WorkingString.c_str(),NULL,16);
  256.  
  257.    DisplayValue = A *100/255;
  258.    DisplayString = String(DisplayValue) + " %              ";
  259.    lcd.setCursor(0, 1);
  260.    lcd.print(DisplayString);
  261.   }
  262.   //Barometric pressure
  263.   if (SentMessage=="01 33")
  264.   {
  265.     WorkingString = BuildINString.substring(7,9);
  266.     A = strtoul(WorkingString.c_str(),NULL,16);
  267.  
  268.    DisplayValue = A;
  269.    DisplayString = String(DisplayValue) + " kpa              ";
  270.    lcd.setCursor(0, 1);
  271.    lcd.print(DisplayString);
  272.   }
  273.   //CAT 1 Temp //((A*256)+B)/10 - 40
  274.   if (SentMessage=="01 3C")
  275.   {
  276.     WorkingString = BuildINString.substring(7,9);
  277.     A = strtoul(WorkingString.c_str(),NULL,16);
  278.     WorkingString = BuildINString.substring(10,12);
  279.     B = strtoul(WorkingString.c_str(),NULL,16);
  280.    
  281.    DisplayValue = ((A * 256)+B)/10 - 40;
  282.    DisplayString = String(DisplayValue) + " C               ";
  283.    lcd.setCursor(0, 1);
  284.    lcd.print(DisplayString);
  285.   }
  286.   //CAT 2 Temp //((A*256)+B)/10 - 40
  287.   if (SentMessage=="01 3D")
  288.   {
  289.     WorkingString = BuildINString.substring(7,9);
  290.     A = strtoul(WorkingString.c_str(),NULL,16);
  291.     WorkingString = BuildINString.substring(10,12);
  292.     B = strtoul(WorkingString.c_str(),NULL,16);
  293.    
  294.    DisplayValue = ((A * 256)+B)/10 - 40;
  295.    DisplayString = String(DisplayValue) + " C               ";
  296.    lcd.setCursor(0, 1);
  297.    lcd.print(DisplayString);
  298.   }
  299.   //CAT 3 Temp //((A*256)+B)/10 - 40
  300.   if (SentMessage=="01 3E")
  301.   {
  302.     WorkingString = BuildINString.substring(7,9);
  303.     A = strtoul(WorkingString.c_str(),NULL,16);
  304.     WorkingString = BuildINString.substring(10,12);
  305.     B = strtoul(WorkingString.c_str(),NULL,16);
  306.    
  307.    DisplayValue = ((A * 256)+B)/10 - 40;
  308.    DisplayString = String(DisplayValue) + " C               ";
  309.    lcd.setCursor(0, 1);
  310.    lcd.print(DisplayString);
  311.   }
  312.   //CAT 4 Temp //((A*256)+B)/10 - 40
  313.   if (SentMessage=="01 3F")
  314.   {
  315.     WorkingString = BuildINString.substring(7,9);
  316.     A = strtoul(WorkingString.c_str(),NULL,16);
  317.     WorkingString = BuildINString.substring(10,12);
  318.     B = strtoul(WorkingString.c_str(),NULL,16);
  319.    
  320.    DisplayValue = ((A * 256)+B)/10 - 40;
  321.    DisplayString = String(DisplayValue) + " C               ";
  322.    lcd.setCursor(0, 1);
  323.    lcd.print(DisplayString);
  324.   }
  325.  
  326.  
  327.  
  328. }
  329.  
  330. void Bootup()
  331. {
  332. lcd.print("WisperChip V2.00 ");
  333.      for (int i=0; i <= 1; i++)
  334.      {
  335.        for (int j=1; j <= 4; j++)// -/|\-
  336.        {
  337.         if(j==1){lcd.setCursor(0, 1);lcd.print ("-");delay(200);}
  338.         if(j==2){lcd.setCursor(0, 1);lcd.print ("/");delay(200);}
  339.         if(j==3){lcd.setCursor(0, 1);lcd.print ("|");delay(200);}
  340.         if(j==4){lcd.setCursor(0, 1);lcd.print ("\\");delay(200);}
  341.        }  
  342.      }
  343.  lcd.setCursor(2, 1);
  344.  lcd.print("Martin Viljoen");    
  345. delay(2000);  
  346. }
(#) Pepebá válasza atus1981 hozzászólására (») Okt 18, 2015 /
 
Üdv.
Köszi, igazából a kommunikációra voltam kíváncsi.
Sikerült több adatot kinyerni a verdából?
Szerintem érdemes lenne tanulmányozni az ELM 327 adatlapját, különösen az ATI parancsok és az időzítéseknél.
Nekem ScanXL+márkaspecifikus (Ford) opcióval sikerült 60-65 PID-t kinyerni:
$10 Powertrain Controller
$28 Anti-Lock Brake/traction Control Module
$52 Generic Elektronic Module
$58 Restraint Control Module
címeken. Igaz nem ISO9141 protokollal, de úgy gondolom teljesen mindegy.
Az átlagos programok által produkált PID-nél biztosan meg jeleníteni többet, persze amennyiben a gyártó engedélyezte.
(#) atus1981 válasza Pepebá hozzászólására (») Okt 18, 2015 /
 
Üdv!
Nem volt időm foglalkozni vele, de jó ötletnek bizonyulhat az ELM327 tanulmányozása.
(#) atus1981 válasza Pepebá hozzászólására (») Okt 23, 2015 /
 
Üdv!
Soros porton megkérdeztem a 0120 PID-et az autótól és NO DATA volt a válasz....
0100 PID-re jött egy érték.
Viszont a VAG-COM valami mást kérdez amikor a L/h értéket mutatja.
Állítólag van az ECU-ban egy tábla, ami pár adatból számít fogyasztást...
Erre kéne rájönnöm.
(#) Pepebá válasza atus1981 hozzászólására (») Okt 29, 2015 /
 
Szia!
Tudod ezt használni valamire?
710,7 * VSS / MAF
ez adja az üzemanyag fogyasztást (benzines) , mivel ugye nincs átfolyásmérő.
Igaz az én Fordomból a MAF szenzort is kisprórolták.
Az nem biztos hogy az ECU számolja, nálam a fed.comp.
(#) atus1981 válasza Pepebá hozzászólására (») Okt 29, 2015 /
 
Üdv!
A VSS mit takar?
0110 PID-re jön válasz
(#) Pepebá válasza atus1981 hozzászólására (») Okt 29, 2015 /
 
Szia!
Fordulatszám és meddig próbáltad a PID-ket?
(#) atus1981 válasza Pepebá hozzászólására (») Okt 30, 2015 /
 
0105;010C;010D;010F;0110;0111.
Ezekre jött válasz is.
Viszont a VSS miért nem RPM?
(#) AZoli válasza Pepebá hozzászólására (») Okt 31, 2015 / 1
 
A VSS Vehicle Speed Sensor, azaz sebesség.
(#) atus1981 válasza AZoli hozzászólására (») Okt 31, 2015 /
 
Az mindjárt más... Köszi.
Azt nem tudod véletlen, hogy a
Idézet:
„710,7 * VSS / MAF”
diesel motornál hogyan alakul?
Létezhet, hogy 808 * VSS / MAF ?
A hozzászólás módosítva: Okt 31, 2015
(#) AZoli válasza atus1981 hozzászólására (») Okt 31, 2015 /
 
Diesel motornál sehogy, mert a MAF (beszívott levegő mennyiség) semmilyen összefüggésben nincs a befecskendezett üzemanyag mennyiséggel.
Olyant szoktam látni, hogy befecskendezett üzemanyag mennyiség, amit mg- ban, vagy mm3 -ben adnak meg. Ebből, + RPM és VSS -ből tudsz fogyasztásra következtetni.
Vagy:
0x5E -n van: Engine fuel rate, L/h ((A*256)+B)*0.05
(#) atus1981 válasza AZoli hozzászólására (») Okt 31, 2015 /
 
Az a baj, hogy nem érkezik válasz a 01 5E PID-re... Pedig a VAG-COM valahonnan szedi a L/h értéket.
Benzinesnél, (szintén VAG-COM) én is látom az injektor időt, meg a L/h értéket is. Gondolom ott egyszerűbb.
(#) AZoli válasza atus1981 hozzászólására (») Okt 31, 2015 /
 
És a 0x40 -re mit válaszol? Gondolom no supported a 0x5E, akkor pedig valahol máshol van, faggatni kell a VAG-COM-ot.
(#) atus1981 válasza AZoli hozzászólására (») Okt 31, 2015 /
 
Már a 0120-ra is NO DATA a válasz....
Ha annyira vágnám, hogy merre keressem az értéket, akkor publikáltam volna.
Csináltam olyat is már, hogy a COM portot monitoroztam, amin beszélget az ECU a géppel, de lefagyott a windows.... Szóval ott tartok, hogy
(#) Pepebá válasza AZoli hozzászólására (») Nov 1, 2015 /
 
Üdv.
Köszi a helyreigazítást, természetesen sebesség nem fordulatszám (benéztem)
(#) atus1981 hozzászólása Nov 1, 2015 /
 
Üdv!
Azt lehet tudni, hogy mennyi idő kell az ECU-nak a válaszadásra, ha küldök neki egy PID-et?
Csak azért érdekel, mert 6-7 adat megjelenítésére alkalmas eszközt készítek és minél gyorsabban jönnek a válaszok, annál frissebb értékeket tudok megjeleníteni.
Köszi.
(#) AZoli hozzászólása Nov 19, 2015 /
 
Sziasztok!

Logikai analizátorral én is bele lestem egy ilyen kommunikációba, (ISO9141-2). Próbaképp a teszteren kiválasztottam a TPS-t (Show current data), és az alábbi kommunikáció zajlott:
Teszter: 0xC2 0x33 0xF1 0x01 0x11 0xEC
Ebből világos, hogy a 0x01 a MODE1 és a 0x11 a PID 11 = Throttle position, 0xEC pedig checksum.
De mi az elején a 0xC2 0x33 0xF1?? Ezt hol találom meg?
Az ECU válasza pedig:
0x83 0xF1 0x10 0x41 0x11 0x21 0xF7
Itt is úgy tűnik hogy 0x11 -> TPS, 0x21 -> 12,5% és checksum, amik stimmelnek. De mi az eleje?
(#) zsira18 hozzászólása Nov 19, 2015 /
 
Üdv!
Olyan problémában kéne a segítség ,hogy vetem egy obd2 elm327 wifi-n kommunikáló hibakód olvasót szuperül működik csak nem az én kocsimmal (Mitshubishi colt 1996) feltételezem nem azon a kimeneteken kommunikál mint az én kütyüm. Kérdés van e lehetőség átforrasztani vagy bármilyen módja szóra bírni? A kocsi elvileg a iso 9141-2 protocol szerint van bekötve. (nézzétek el ha hülyeségeket beszélek) Szóval ürülnék ha tudnák vmit csiholni. Köszönöm!
(#) AZoli válasza AZoli hozzászólására (») Nov 20, 2015 /
 
Akkor úgy teszem fel a kérdést, hogy amit Ti csináltatok teszter, azzal az inicializálás (2*400ms) után csak két byte-ot (MODE + PID) küldtök el, és erre válaszol is az ECU? Ha igen, milyen formában?

Zsira18:
Könnyen lehet, hogy a '96 -os Colt még nem tudja az OBDII -t, hiába a szabvány csatlakozó rajta.
(#) atus1981 válasza AZoli hozzászólására (») Nov 20, 2015 /
 
Üdv!
Én amit találtam a neten és másik kijelzőhöz igazítottam az 01 xx formátumot küld, amik a motor hőmérsékletére vagy rpm-re vagy sebességre vagy turbó nyomásra stb. vannak átírva.
Persze a válaszok több karaktert tartalmaznak, de azt ha kicsit visszaolvasol, akkor láthatod, hogy miként válogatja ki a "hasznos" infókat a program. Képletekkel tovább van alakítva, hogy megfelelő értéket adjon és ennyi.
(#) AZoli válasza atus1981 hozzászólására (») Nov 20, 2015 /
 
Köszi a választ, ezt értem, persze látom benne a hasznos infót, és ismerem a képleteket. A bajom inkább az, hogy a csomagokban jönnek olyan karakterek, amikről nem tudom hogy mik. Egy ~10 éve általam épített ELM 232 -vel és egy Peugeot 206-al próbálkozom, és az ELM is küld olyan karaktereket, amiket nem találok egy leírásban sem. Pl. mindkét irányban az utolsó karakter checksum, amiről semmit nem írt senki, és az első 3-4 karaktert sem tudom mire vélni. Pedig ezek biztos hogy összetartozó adatok, mert mindig stimmel a checksum.
(#) atus1981 válasza AZoli hozzászólására (») Nov 20, 2015 /
 
Nem tudom mi jelentősége lehet, de szerintem elhanyagolható, mert a kért adat kinyerhető ezek nélkül is...
(#) AZoli válasza atus1981 hozzászólására (») Dec 1, 2015 /
 
Hello,
Ha még aktuális, időzítésekről ebben a doksiban találtam dolgokat.
Persze azt még mindig itt sem találtam meg, hogy mi az a 3-4 byte a csomagok elején.
(#) atus1981 válasza AZoli hozzászólására (») Dec 1, 2015 /
 
Üdv!
Köszi, már kikísérleteztem, hogy a 150-160 ms-os kérdezés még nem okoz hibát konfigomban..
(#) fater0827 válasza atus1981 hozzászólására (») Dec 1, 2015 /
 
Üdv
Beírtam a keresőbe " OBD PID list " és ezt a dolgot kaptam , " Are you looking for?
List
Obd
Pid
*.***ring.docs.php?&pid=
.php?pid=?
?pid= Bh
?pid= Fh
?pid= Ia " .
Ezt a témát csak figyelem , csoda autóm nincs csak 3 kerekű E-bike na azon ilyen probléma nincs . Talán segítettem -- másnak is .
Üdv
(#) fater0827 válasza sunside hozzászólására (») Dec 1, 2015 /
 
Üdv
Autószervizbe bejáratom van már nem emlékszem milyen hibakódot nem tudott törölni a több 100000-es készülék , ötlet bejött akku le várás párperc , és lőn csoda hiba törölve .
Egyenlő újraindítás , rádió kódra figyelni .
Üdv
Következő: »»   53 / 60
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem