mc 33290 и k-line адаптер

MaksVV
Offline
Зарегистрирован: 06.08.2015
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); //R,T
#define TX 11


byte ECUaddress = 0x01;   // адрес блока двигателя, можно попробовать с другими адресами


bool Init = 0;

byte Parameter;           //номер передаваемого параметра от ECU
byte a;
byte b;
uint8_t number = 0;
byte counter = 0x01; 
byte countPID = 0; 
byte countID = 0; 

int RPM = 0;             // переменная оборотов





void setup() 
{
Serial.begin (115200);
Serial.println(F("---KWP 5 baud init"));
delay (500);
pinMode (TX, OUTPUT);
digitalWrite (TX, HIGH); // BUS IDLE
delay (500);



send5baud(ECUaddress); // функция отправки адреса блоку
mySerial.begin (9600);

}


void loop() {


  

while( mySerial.available()) {
    byte inByte = mySerial.read();
    if (!Init){
      
    
      if (number==0 && inByte == 0x8A){ mySerial.write (0x75); number++;}
 else if (number==1 && inByte == 0x1B){ mySerial.write (0xE4); delay (2); mySerial.write (0x01);  number++; counter++;}
 else if (number==2 && inByte == 0xFE){ mySerial.write (0xF6); number++;}
 else if (number==3){ if (countID!=0) {mySerial.write (inByte^0xFF);} countID++;
    if (countID>=23) {number++;  countID = 0; mySerial.write (0x03); delay (5); mySerial.write (0x03);}}
 else if (number==4 && inByte == 0xFC){mySerial.write (counter); number++;}
 else if (number==5 && inByte == (counter^0xFF)){counter++; mySerial.write (0x09); number++;}
 else if (number==6 && inByte == 0xF6){mySerial.write (0x03); delay (5); mySerial.write (0x07); number++;}
 else if (number==7 && inByte == 0xF8){mySerial.write (counter); number++;}
 else if (number==8 && inByte == (counter^0xFF)) {counter++; mySerial.write (0xF6); number++;}
 else if (number==9 && inByte == 0x09) number++;
 else if (number==10) {mySerial.write (inByte^0xFF); countID++;
      if (countID>=4) {number++;  countID = 0; mySerial.write (0x03); }}
 else if (number==11 && inByte == 0xFC){mySerial.write (counter); number++;}
 else if (number==12 && inByte == (counter^0xFF)){counter++; mySerial.write (0x09); number++;}
 else if (number==13 && inByte == 0xF6){mySerial.write (0x03); delay (5); mySerial.write (0x0B); number++;}
 else if (number==14 && inByte == 0xF4){mySerial.write (counter); number++;}
 else if (number==15 && inByte == (counter^0xFF)){counter++; mySerial.write (0xF6); number++;}
 else if (number==16 && inByte == 0x09) number++;
 else if (number==17) {mySerial.write (inByte^0xFF); countID++;
      if (countID>=8) {number=0;  countID = 0; delay (5); Init=1;}}
              
              
              
              
              }
    
    else{
    if (number ==0){ mySerial.write (0x04); number++;}
    else if (number ==1 && inByte == 0xFB){ mySerial.write (counter);  number++; }
    else if (number ==2 && inByte == (counter ^ 0xFF)) {counter++; mySerial.write (0x29);number++;  }
    else if (number ==3 && inByte == 0xD6) {mySerial.write (0x01);number++;  }
    else if (number ==4 && inByte == 0xFE) {mySerial.write (0x03);number++;  }
    else if (number ==5 && inByte == 0x0F) {mySerial.write (0xF0);number++;  }
    else if (number ==6 && inByte == counter) {mySerial.write (inByte^0xFF);number++; counter++; }
    else if (number ==7 && inByte == 0xE7) {mySerial.write (inByte^0xFF);number++;  }
    else if (number ==8) {Parameter=inByte; mySerial.write (inByte^0xFF);number++;  }
    else if (number ==9) {a=inByte; mySerial.write (inByte^0xFF); number++;}
    else if (number ==10) {b=inByte; mySerial.write (inByte^0xFF);  
          
        if (Parameter == 0x01)  RPM = 0.2*a*b;
    
    countPID++;
    if (countPID>=4) {mySerial.write (0x03); countPID=0; number = 0; Serial.print(" RPM = "); Serial.println(RPM); delay (20);}
    else number = 8;
    }
   
    
      }


    
    Serial.print(" ");
    Serial.print(inByte,HEX);
             }
   
   
     
    }





//ниже отправка блоку байта адреса на 5бод  1 стартбит, 7бит данных, 1 бит проверки четности odd, 1 стоп бит

void send5baud(uint8_t data){              
  // // 1 start bit, 7 data bits, 1 parity, 1 stop bit
  #define bitcount 10
  byte bits[bitcount];
  byte even=1;
  byte bit;
  for (int i=0; i < bitcount; i++){
    bit=0;
    if (i == 0)  bit = 0;
      else if (i == 8) bit = even; // computes parity bit
      else if (i == 9) bit = 1;
      else {
        bit = (byte) ((data & (1 << (i-1))) != 0);
        even = even ^ bit;
      }
    Serial.print(F("bit"));      
    Serial.print(i);          
    Serial.print(F("="));              
    Serial.print(bit);
    if (i == 0) Serial.print(F(" startbit"));
      else if (i == 8) Serial.print(F(" parity"));    
      else if (i == 9) Serial.print(F(" stopbit"));              
    Serial.println();      
    bits[i]=bit;
  }
  // now send bit stream    
  for (int i=0; i < bitcount+1; i++){
    if (i != 0){
      // wait 200 ms (=5 baud), adjusted by latency correction
      delay(200);
      if (i == bitcount) break;
    }
    if (bits[i] == 1){ 
      // high
      digitalWrite(TX, HIGH);
    } else {
      // low
      digitalWrite(TX, LOW);
    }
  }
  mySerial.flush();
}


 

taha17
taha17 аватар
Offline
Зарегистрирован: 08.10.2017

Тот же результат. Я так понял, от k-line шнура нам еще нельзя избавляться??? Если его не подсоеденить в USB, то в терминале тишина. 

---KWP 5 baud init
bit0=0 startbit
bit1=1
bit2=0
bit3=0
bit4=0
bit5=0
bit6=0
bit7=0
bit8=0 parity
bit9=1 stopbit
 55 1 8A 55 1 8A 55 1 8A

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

добавил распечатку в сериал отправленных нами байтов для дебага, ввёл небольшую задержку по получение байтов.

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); //R,T
#define TX 11


byte ECUaddress = 0x01;   // адрес блока двигателя, можно попробовать с другими адресами


bool Init = 0;

byte Parameter;           //номер передаваемого параметра от ECU
byte a;
byte b;
uint8_t number = 0;
byte counter = 0x01; 
byte countPID = 0; 
byte countID = 0; 

int RPM = 0;             // переменная оборотов





void setup() 
{
Serial.begin (115200);
Serial.println(F("---KWP 5 baud init"));
delay (500);
pinMode (TX, OUTPUT);
digitalWrite (TX, HIGH); // BUS IDLE
delay (500);



send5baud(ECUaddress); // функция отправки адреса блоку
mySerial.begin (9600);

}


void loop() {


  

while( mySerial.available()) { 
  delay(5);
  
    byte inByte = mySerial.read();
    Serial.print(" Rx: ");
    Serial.print(inByte,HEX);
    
    if (!Init){
      
    
      if (number==0 && inByte == 0x8A){ mySerial.write (0x75); Serial.print(" Tx: "); Serial.print(0x75,HEX);number++;}
 else if (number==1 && inByte == 0x1B){ mySerial.write (0xE4);  Serial.print(" Tx: "); Serial.print(0xE4,HEX); delay (2); 
         mySerial.write (0x01);   Serial.print(" Tx: "); Serial.print(0x01,HEX);number++; counter++;}
 else if (number==2 && inByte == 0xFE){ mySerial.write (0xF6);  Serial.print(" Tx: "); Serial.print(0xF6,HEX); number++;}
 else if (number==3){ if (countID!=0) {mySerial.write (inByte^0xFF); Serial.print(" Tx: "); Serial.print(inByte^0xFF,HEX);} countID++;
    if (countID>=23) {number++;  countID = 0; mySerial.write (0x03); Serial.print(" Tx: "); Serial.print(0x03,HEX); 
        delay (5); mySerial.write (0x03); Serial.print(" Tx: "); Serial.print(0x03,HEX);}}
 else if (number==4 && inByte == 0xFC){mySerial.write (counter); Serial.print(" Tx: "); Serial.print(counter,HEX); number++;}
 else if (number==5 && inByte == (counter^0xFF)){counter++; mySerial.write (0x09); Serial.print(" Tx: "); Serial.print(0x09,HEX); number++;}
 else if (number==6 && inByte == 0xF6){mySerial.write (0x03); Serial.print(" Tx: "); Serial.print(0x03,HEX); delay (5);
          mySerial.write (0x07);Serial.print(" Tx: "); Serial.print(0x07,HEX); number++;}
 else if (number==7 && inByte == 0xF8){mySerial.write (counter); Serial.print(" Tx: "); Serial.print(counter,HEX); number++;}
 else if (number==8 && inByte == (counter^0xFF)) {counter++; mySerial.write (0xF6); Serial.print(" Tx: "); Serial.print(0xF6,HEX); number++;}
 else if (number==9 && inByte == 0x09) number++;
 else if (number==10) {mySerial.write (inByte^0xFF); Serial.print(" Tx: "); Serial.print(inByte^0xFF,HEX); countID++;
      if (countID>=4) {number++;  countID = 0; mySerial.write (0x03); Serial.print(" Tx: "); Serial.print(0x03,HEX); }}
 else if (number==11 && inByte == 0xFC){mySerial.write (counter);  Serial.print(" Tx: "); Serial.print(counter,HEX); number++;}
 else if (number==12 && inByte == (counter^0xFF)){counter++; mySerial.write (0x09);  Serial.print(" Tx: "); Serial.print(0x09,HEX); number++;}
 else if (number==13 && inByte == 0xF6){mySerial.write (0x03); Serial.print(" Tx: "); Serial.print(0x03,HEX); delay (5); 
          mySerial.write (0x0B); Serial.print(" Tx: "); Serial.print(0x0B,HEX); number++;}
 else if (number==14 && inByte == 0xF4){mySerial.write (counter); Serial.print(" Tx: "); Serial.print(counter,HEX); number++;}
 else if (number==15 && inByte == (counter^0xFF)){counter++; mySerial.write (0xF6); Serial.print(" Tx: "); Serial.print(0xF6,HEX); number++;}
 else if (number==16 && inByte == 0x09) number++;
 else if (number==17) {mySerial.write (inByte^0xFF); Serial.print(" Tx: "); Serial.print(inByte^0xFF,HEX); countID++;
      if (countID>=8) {number=0;  countID = 0; delay (5); Init=1;}}
              
                            
            }
    
    else{
    if (number ==0){ mySerial.write (0x04); number++;}
    else if (number ==1 && inByte == 0xFB){ mySerial.write (counter);  number++; }
    else if (number ==2 && inByte == (counter ^ 0xFF)) {counter++; mySerial.write (0x29);number++;  }
    else if (number ==3 && inByte == 0xD6) {mySerial.write (0x01);number++;  }
    else if (number ==4 && inByte == 0xFE) {mySerial.write (0x03);number++;  }
    else if (number ==5 && inByte == 0x0F) {mySerial.write (0xF0);number++;  }
    else if (number ==6 && inByte == counter) {mySerial.write (inByte^0xFF);number++; counter++; }
    else if (number ==7 && inByte == 0xE7) {mySerial.write (inByte^0xFF);number++;  }
    else if (number ==8) {Parameter=inByte; mySerial.write (inByte^0xFF);number++;  }
    else if (number ==9) {a=inByte; mySerial.write (inByte^0xFF); number++;}
    else if (number ==10) {b=inByte; mySerial.write (inByte^0xFF);  
          
        if (Parameter == 0x01)  RPM = 0.2*a*b;
    
    countPID++;
    if (countPID>=4) {mySerial.write (0x03); countPID=0; number = 0; Serial.print(" RPM = "); Serial.println(RPM); delay (20);}
    else number = 8;
    }
   
    
      }


    
   
             }
   
   
     
    }





//ниже отправка блоку байта адреса на 5бод  1 стартбит, 7бит данных, 1 бит проверки четности odd, 1 стоп бит

void send5baud(uint8_t data){              
  // // 1 start bit, 7 data bits, 1 parity, 1 stop bit
  #define bitcount 10
  byte bits[bitcount];
  byte even=1;
  byte bit;
  for (int i=0; i < bitcount; i++){
    bit=0;
    if (i == 0)  bit = 0;
      else if (i == 8) bit = even; // computes parity bit
      else if (i == 9) bit = 1;
      else {
        bit = (byte) ((data & (1 << (i-1))) != 0);
        even = even ^ bit;
      }
    Serial.print(F("bit"));      
    Serial.print(i);          
    Serial.print(F("="));              
    Serial.print(bit);
    if (i == 0) Serial.print(F(" startbit"));
      else if (i == 8) Serial.print(F(" parity"));    
      else if (i == 9) Serial.print(F(" stopbit"));              
    Serial.println();      
    bits[i]=bit;
  }
  // now send bit stream    
  for (int i=0; i < bitcount+1; i++){
    if (i != 0){
      // wait 200 ms (=5 baud), adjusted by latency correction
      delay(200);
      if (i == bitcount) break;
    }
    if (bits[i] == 1){ 
      // high
      digitalWrite(TX, HIGH);
    } else {
      // low
      digitalWrite(TX, LOW);
    }
  }
  mySerial.flush();
}


Если от блока не увидите далее байтов после 55 01 8A. Поиграйтесь задержкой в строке 48. Например 1 мс или 50мс попробовать. 

taha17 пишет:
Тот же результат. Я так понял, от k-line шнура нам еще нельзя избавляться??? Если его не подсоеденить в USB, то в терминале тишина.

Я не понял как вы подключаете. Нарисуйте. 

taha17
taha17 аватар
Offline
Зарегистрирован: 08.10.2017
---KWP 5 baud init
bit0=0 startbit
bit1=1
bit2=0
bit3=0
bit4=0
bit5=0
bit6=0
bit7=0
bit8=0 parity
bit9=1 stopbit
 Rx: 55 Rx: 1 Rx: 8A Tx: 75 Rx: 1B Tx: E4 Tx: 1 Rx: 1 Rx: 1B Rx: 1B

вот еще кусок ответов, когда через программу диагностики захожу в блок двигателя. уже полностю достучаться не может, пока не закрою терминал ардуино

 Rx: FC Rx: F1 Rx: F0 Rx: FC Rx: FD Rx: D Rx: D Rx: 41 Rx: 54 Rx: D Rx: 0 Rx: 0 Rx: 0 Rx: 55 Rx: 1 Rx: 8A Rx: 55 Rx: 1 Rx: 8A Rx: 55 Rx: 1 Rx: 8A Rx: 0 Rx: 0 Rx: 55 Rx: 1 Rx: 8A Rx: 75 Rx: 1B Rx: E4 Rx: 1 Rx: FE Tx: F6 Rx: F6 Rx: 1B Tx: E4 Rx: 1 Tx: FE Rx: F6 Tx: 9 Rx: 30 Tx: CF Rx: F6 Tx: 9 Rx: 22 Tx: DD Rx: 22 Tx: DD Rx: 22 Tx: DD Rx: 22 Tx: DD Rx: 22 Tx: DD Rx: 22 Tx: DD Rx: 22 Tx: DD Rx: 22 Tx: DD Rx: 1B Tx: E4 Rx: 1 Tx: FE Rx: F6 Tx: 9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 38 Tx: C7 Rx: 39 Tx: C6 Rx: 30 Tx: CF Rx: 36 Tx: C9 Tx: 3 Tx: 3 Rx: 30 Rx: 0 Rx: 0 Rx: 55 Rx: 1 Rx: 8A Rx: 75 Rx: 1B Rx: E4 Rx: 1 Rx: FE Rx: F6 Rx: 9 Rx: 30 Rx: CF Rx: 32 Rx: CD Rx: 38 Rx: C7 Rx: 39 Rx: C6 Rx: 30 Rx: CF Rx: 36 Rx: C9 Rx: 30 Rx: CF Rx: 32 Rx: CD Rx: 31 Rx: CE Rx: 47 Rx: B8 Rx: 54 Rx: AB Rx: 20 Rx: DF Rx: 31 Rx: CE Rx: 2C Rx: D3 Rx: 39 Rx: C6 Rx: 6C Rx: 93 Rx: 20 Rx: DF Rx: 52 Rx: AD Rx: 34 Rx: CB Rx: 20 Rx: DF Rx: 45 Rx: BA Rx: 44 Rx: BB Rx: 43 Rx: BC Rx: 20 Rx: DF Rx: 3 Rx: 3 Rx: FC Tx: 2 Rx: 2 Rx: FD Tx: 9 Rx: F6 Tx: 3 Tx: 7 Rx: 7 Rx: 3 Rx: 7 Rx: 3 Rx: 7 Rx: 3 Rx: 3 Rx: 3 Rx: 3 Rx: 3 Rx: 3 Rx: 3 Rx: 3 Rx: 3 Rx: 0 Rx: 0 Rx: 0 Rx: 55 Rx: 1 Rx: 8A Rx: 75 Rx: 1B Rx: E4 Rx: 1 Rx: FE Rx: F6 Rx: 9 Rx: 30 Rx: CF Rx: 32 Rx: CD Rx: 38 Rx: C7 Rx: 39 Rx: C6 Rx: 30 Rx: CF Rx: 36 Rx: C9 Rx: 30 Rx: CF Rx: 32 Rx: CD Rx: 31 Rx: CE Rx: 47 Rx: B8 Rx: 54 Rx: AB Rx: 20 Rx: DF Rx: 31 Rx: CE Rx: 2C Rx: D3 Rx: 39 Rx: C6 Rx: 6C Rx: 93 Rx: 20 Rx: DF Rx: 52 Rx: AD Rx: 34 Rx: CB Rx: 20 Rx: DF Rx: 45 Rx: BA Rx: 44 Rx: BB Rx: 43 Rx: BC Rx: 20 Rx: DF Rx: 3 Rx: 3 Rx: FC Rx: 2 Rx: FD Rx: 9 Rx: F6 Rx: 3 Rx: 7 Rx: F8 Tx: 3 Rx: 3 Rx: FC Tx: F6 Rx: F6 Rx: 7 Rx: F8 Rx: 3 Rx: FC Rx: F6 Rx: 9 Rx: 20 Tx: DF Rx: 7 Tx: F8 Rx: 3 Tx: FC Rx: F6 Tx: 9 Tx: 3 Rx: 20 Rx: FC Tx: 4 Rx: FB Tx: 9 Rx: F6 Tx: 3 Tx: B Rx: F4 Tx: 5 Rx: FA Tx: F6 Rx: 9 Rx: 0 Tx: FF Rx: 0 Tx: FF Rx: 55 Tx: AA Rx: 1 Tx: FE Rx: 8A Tx: 75 Rx: 1B Tx: E4 Rx: FE Tx: 1 Rx: 1 Tx: FE Rx: F6 Rx: 1B Rx: 1B

По поводу подключения... Все осталось, как и раньше, т.е подключены параллельно.

MaksVV
Offline
Зарегистрирован: 06.08.2015

Я увидел косяк,  исправлю позже. А вы ничего не заметили?

Дак зачем оставили диагностику то подключенной? её быть не должно. Если без неё не работет - что-то не так собрали. Питание 12В, например, на K-line-Arduino не подаете.  Т.е. вам лень схему нарисовать, я ведь не знаю как у вас и раньше было подключено. Кто проект то делает, я или вы?

taha17
taha17 аватар
Offline
Зарегистрирован: 08.10.2017

Вот так подсоединено. Если отсоеденяю от USB синий шнурок. То в терминале глухо. По сути оно ничем не должно влиять, так как пропадает 5V на синем шнурке. А схема которую  вы мне подогнали должна работать. Может что не так запаял мне товарищ.

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

вот так лучше. Даже когда вы отключаете от USB VAG com -  к K-линии он всё равно подключен и, соответственно, и к питанию 12В и GND тоже, я так понимаю. В этом случае VAG com также (наряду с вашим самодельным) осущетсвляет подтяжку к 12В К-линии через резистор. Но может в данном вагкоме подтяжка идет только когда присутствует питание 5В. Это наиболее частая проблема отсутствия связи самодельных к-лайн адаптеров - нужно подбирать сопротивление подтяжки. 

попробуйте замерить на полностью отключенном от всего VAG com е сопротивление между к-лайн (7контакт) и линией 12В (16-контакт). И запаять на своём адаптере вместо R8 такое измеренное сопротивление. Ну или вместо R8 поставить построечник и крутить от 1 до 10кОм, смотреть появится ли связь.
А вообще более правильная, конечно, схема на L9637D. Там резистор всего один, его и надо мучить.
 

MaksVV
Offline
Зарегистрирован: 06.08.2015

вот скетч

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); //R,T
#define TX 11


byte ECUaddress = 0x01;   // адрес блока двигателя, можно попробовать с другими адресами


bool Init = 0;

byte Parameter;           //номер передаваемого параметра от ECU
byte a;
byte b;
uint8_t number = 0;
byte counter = 0x02; 
byte countPID = 0; 
byte countID = 0; 

int RPM = 0;             // переменная оборотов





void setup() 
{
Serial.begin (115200);
Serial.println(F("---KWP 5 baud init"));
delay (500);
pinMode (TX, OUTPUT);
digitalWrite (TX, HIGH); // BUS IDLE
delay (500);



send5baud(ECUaddress); // функция отправки адреса блоку
mySerial.begin (9600);

}


void loop() {


  

if( mySerial.available()>0) { 
  delay(5);
  
    byte inByte = mySerial.read();
    Serial.print(" Rx: ");
    Serial.print(inByte,HEX);
    
    if (!Init){
      
    
      if (number ==0 && inByte == 0x8A){ countID++;  mySerial.write (0x75) ; Serial.print(" Tx: "); Serial.print(0x75,HEX); number++;} 
 else if (number ==1) { mySerial.write (inByte^ 0xFF);  Serial.print(" Tx: "); Serial.print(inByte^0xFF,HEX);  countID++;
          if (countID>=27) {number=4;  countID = 0; mySerial.write (0x03); Serial.print(" Tx: "); Serial.print(0x03,HEX); }}
      
      
    
 else if (number==4 && inByte == 0xFC){mySerial.write (counter); Serial.print(" Tx: "); Serial.print(counter,HEX); number++;}
 else if (number==5 && inByte == (counter^0xFF)){counter++; mySerial.write (0x09); Serial.print(" Tx: "); Serial.print(0x09,HEX); number++;}
 else if (number==6 && inByte == 0xF6){mySerial.write (0x03); Serial.print(" Tx: "); Serial.print(0x03,HEX); delay (5);
          mySerial.write (0x07);Serial.print(" Tx: "); Serial.print(0x07,HEX); number++;}
 else if (number==7 && inByte == 0xF8){mySerial.write (counter); Serial.print(" Tx: "); Serial.print(counter,HEX); number++;}
 else if (number==8 && inByte == (counter^0xFF)) {counter++; mySerial.write (0xF6); Serial.print(" Tx: "); Serial.print(0xF6,HEX); number++;}
 else if (number==9 && inByte == 0x09) number++;
 else if (number==10) {mySerial.write (inByte^0xFF); Serial.print(" Tx: "); Serial.print(inByte^0xFF,HEX); countID++;
      if (countID>=4) {number++;  countID = 0; mySerial.write (0x03); Serial.print(" Tx: "); Serial.print(0x03,HEX); }}
 else if (number==11 && inByte == 0xFC){mySerial.write (counter);  Serial.print(" Tx: "); Serial.print(counter,HEX); number++;}
 else if (number==12 && inByte == (counter^0xFF)){counter++; mySerial.write (0x09);  Serial.print(" Tx: "); Serial.print(0x09,HEX); number++;}
 else if (number==13 && inByte == 0xF6){mySerial.write (0x03); Serial.print(" Tx: "); Serial.print(0x03,HEX); delay (5); 
          mySerial.write (0x0B); Serial.print(" Tx: "); Serial.print(0x0B,HEX); number++;}
 else if (number==14 && inByte == 0xF4){mySerial.write (counter); Serial.print(" Tx: "); Serial.print(counter,HEX); number++;}
 else if (number==15 && inByte == (counter^0xFF)){counter++; mySerial.write (0xF6); Serial.print(" Tx: "); Serial.print(0xF6,HEX); number++;}
 else if (number==16 && inByte == 0x09) number++;
 else if (number==17) {mySerial.write (inByte^0xFF); Serial.print(" Tx: "); Serial.print(inByte^0xFF,HEX); countID++;
      if (countID>=8) {number=0;  countID = 0; delay (5); Init=1;}}
              
                            
            }
    
    else{
    if (number ==0){ mySerial.write (0x04); number++;}
    else if (number ==1 && inByte == 0xFB){ mySerial.write (counter);  number++; }
    else if (number ==2 && inByte == (counter ^ 0xFF)) {counter++; mySerial.write (0x29);number++;  }
    else if (number ==3 && inByte == 0xD6) {mySerial.write (0x01);number++;  }
    else if (number ==4 && inByte == 0xFE) {mySerial.write (0x03);number++;  }
    else if (number ==5 && inByte == 0x0F) {mySerial.write (0xF0);number++;  }
    else if (number ==6 && inByte == counter) {mySerial.write (inByte^0xFF);number++; counter++; }
    else if (number ==7 && inByte == 0xE7) {mySerial.write (inByte^0xFF);number++;  }
    else if (number ==8) {Parameter=inByte; mySerial.write (inByte^0xFF);number++;  }
    else if (number ==9) {a=inByte; mySerial.write (inByte^0xFF); number++;}
    else if (number ==10) {b=inByte; mySerial.write (inByte^0xFF);  
          
        if (Parameter == 0x01)  RPM = 0.2*a*b;
    
    countPID++;
    if (countPID>=4) {mySerial.write (0x03); countPID=0; number = 0; Serial.print(" RPM = "); Serial.println(RPM); delay (20);}
    else number = 8;
    }
   
    
      }


    
   
             }
   
   
     
    }





//ниже отправка блоку байта адреса на 5бод  1 стартбит, 7бит данных, 1 бит проверки четности odd, 1 стоп бит

void send5baud(uint8_t data){              
  // // 1 start bit, 7 data bits, 1 parity, 1 stop bit
  #define bitcount 10
  byte bits[bitcount];
  byte even=1;
  byte bit;
  for (int i=0; i < bitcount; i++){
    bit=0;
    if (i == 0)  bit = 0;
      else if (i == 8) bit = even; // computes parity bit
      else if (i == 9) bit = 1;
      else {
        bit = (byte) ((data & (1 << (i-1))) != 0);
        even = even ^ bit;
      }
    Serial.print(F("bit"));      
    Serial.print(i);          
    Serial.print(F("="));              
    Serial.print(bit);
    if (i == 0) Serial.print(F(" startbit"));
      else if (i == 8) Serial.print(F(" parity"));    
      else if (i == 9) Serial.print(F(" stopbit"));              
    Serial.println();      
    bits[i]=bit;
  }
  // now send bit stream    
  for (int i=0; i < bitcount+1; i++){
    if (i != 0){
      // wait 200 ms (=5 baud), adjusted by latency correction
      delay(200);
      if (i == bitcount) break;
    }
    if (bits[i] == 1){ 
      // high
      digitalWrite(TX, HIGH);
    } else {
      // low
      digitalWrite(TX, LOW);
    }
  }
  mySerial.flush();
}


 

taha17
taha17 аватар
Offline
Зарегистрирован: 08.10.2017

Самодельный k-line работает нормально и без покупного(синего шнурка),..с ардуинкой.., вот убедился.. Про сопротивление поддяжки, раньше знал. В стандартном шнурке ..560 ОМ.. Но мне подгоняли самодельный K-line на (MAX232) там в ручную можно было на три положения поставить, самое большое сопротивление было 2,2 кОМ., все норм работало.

Вот результаты по скетчу:

1. С параллельным соединением(самодельный+покупной)..... так, на всякий случай )))) 

---KWP 5 baud init
bit0=0 startbit
bit1=1
bit2=0
bit3=0
bit4=0
bit5=0
bit6=0
bit7=0
bit8=0 parity
bit9=1 stopbit
 Rx: 55 Rx: 1 Rx: 8A Tx: 75 Rx: 1B Tx: E4 Rx: 1 Tx: FE Rx: F6 Tx: 9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 38 Tx: C7 Rx: 39 Tx: C6 Rx: 30 Tx: CF Rx: 36 Tx: C9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 31 Tx: CE Rx: 47 Tx: B8 Rx: 54 Tx: AB Rx: 20 Tx: DF Rx: 31 Tx: CE Rx: 2C Tx: D3 Rx: 39 Tx: C6 Rx: 6C Tx: 93 Rx: 20 Tx: DF Rx: 52 Tx: AD Rx: 34 Tx: CB Rx: 20 Tx: DF Rx: 45 Tx: BA Rx: 44 Tx: BB Rx: 43 Tx: BC Tx: 3 Rx: 20 Rx: 1B Rx: 1B

2. Самодельный k-line(уже сам)... в дальнейшем,я понимаю, так и продолжим эксперементировать.

---KWP 5 baud init
bit0=0 startbit
bit1=1
bit2=0
bit3=0
bit4=0
bit5=0
bit6=0
bit7=0
bit8=0 parity
bit9=1 stopbit
 Rx: 55 Rx: 1 Rx: 8A Tx: 75 Rx: FF Tx: 0 Rx: FF Tx: 0 Rx: FF Tx: 0 Rx: FF Tx: 0 Rx: 1B Tx: E4 Rx: FF Tx: 0 Rx: FF Tx: 0 Rx: 1 Tx: FE Rx: FF Tx: 0 Rx: FF Tx: 0 Rx: F6 Tx: 9 Rx: FF Tx: 0 Rx: FF Tx: 0 Rx: FF Tx: 0 Rx: FE Tx: 1 Rx: FF Tx: 0 Rx: FF Tx: 0 Rx: FF Tx: 0 Rx: FF Tx: 0 Rx: FF Tx: 0 Rx: FF Tx: 0 Rx: FF Tx: 0 Rx: FF Tx: 0 Rx: FF Tx: 0 Rx: FF Tx: 0 Rx: FF Tx: 0 Tx: 3 Rx: FF Rx: FF Rx: FF Rx: FF Rx: 1B Rx: 1B

Сопротевление R8, на самодельном не замерял.. так как ответ от блока уже есть. какой там резак, уже не помню... долго разбираться в  этом "Ёжике" ))))

MaksVV
Offline
Зарегистрирован: 06.08.2015

буду исправлять по байтику, а по другому никак. У меня то не начем проверять) в Скетче #58 исправьте в строке 59 

countID>=27 на countID>=28 или даже 29 если байты опять дальше не пойдут

пока аппартаную часть не наладите, можно без Vag coma  не выкладывать результаты, все равно нули или FF будут

MaksVV
Offline
Зарегистрирован: 06.08.2015

taha17 пишет:
Самодельный k-line работает нормально и без покупного(синего шнурка),..с ардуинкой.., вот убедился..

но все таки не до конца нормально, раз данные не идут как положено. Ну или придётся вам хоронить свой Ваг ком рядом с ардуиной, когда программа готова будет) Попробуйте воткнуть ваг ком при этом не в комп, а в зарядник для телефона. 

или можно сам ваг ком препарировать. Микруху связи с USB не обязательно выпаивать, достаточно поставить тумблер на линию Tx или порезать её

 

а ваш вариант скорее такой

ну или если жалко ваг ком, пусть вам дружище ещё один адаптер спаяет по такой схеме, она повторяет ваш ваг ком

MaksVV
Offline
Зарегистрирован: 06.08.2015

вот ещё почитайте, обсуждали ваши вопросы уже

taha17
taha17 аватар
Offline
Зарегистрирован: 08.10.2017

Пришли с Китая MC33290/ 5шт/ Если все хорошо, то в понедельник платка будет готова. Ноги прозванивал, сопротивление разное... а то прошлый раз была микросхема, то правая сторона полностью звонилась, все четыре ноги соеденены. если все получится, то перемеряю и выложу сопротивление всех ног одна с одной, вдуг кому понадобится 

MaksVV
Offline
Зарегистрирован: 06.08.2015

вот нашел классную программу воровайку. Версия пробная но 15 дней будет работать. Она может без всякого аппаратного сниффера воровать данные с ком порта. Подключите один только Vag com к ЭБУ и проснифьте этой прогой. Вся прелесть, что прога покажет, кто какие байты шлёт. А то у нас с этим путанница. Подключаете ваг ком в юсб. Потом открываете порт в этой проге и только потом запускаете программму ваг ком. 

taha17
taha17 аватар
Offline
Зарегистрирован: 08.10.2017

Скан K-line шнурка. Диагностика блока двигателя

https://drive.google.com/open?id=1oTrTmk7Ywg7T0pd41WUGzXKuFyYjUjkI

 

Что-то через mc33290 блок ничего не отвечает. Висят диоды на RX,TX,K-линию, видно что что-то передается и принимается, а в мониторе порта глухо. а может блок ничего не отвечает, т.к достаю с дуни (не помню 10 или 11 pin) и потом обратно вставляю, то в терминале появляюся 0 и FF.

Когда мерял сопративление между ногами mc33290, то одна из микросхем чуть отличалась. Наверное из пети микросхем, выпала случайность взять именно эту.

Пробовал вот параллельно с купленым шнурком, то блок двигателя вообще не отвечает. ABS ответил, но терминал пуст. Где то есть косяк ))) 

На LM293 R8(3K2) заменил на 470R. Адекватные пакеты пошли. продолжим наверное на ней 

---KWP 5 baud init
bit0=0 startbit
bit1=1
bit2=0
bit3=0
bit4=0
bit5=0
bit6=0
bit7=0
bit8=0 parity
bit9=1 stopbit
 Rx: 55 Rx: 1 Rx: 8A Tx: 75 Rx: 1B Tx: E4 Rx: 1 Tx: FE Rx: F6 Tx: 9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 38 Tx: C7 Rx: 39 Tx: C6 Rx: 30 Tx: CF Rx: 36 Tx: C9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 31 Tx: CE Rx: 47 Tx: B8 Rx: 54 Tx: AB Rx: 20 Tx: DF Rx: 31 Tx: CE Rx: 2C Tx: D3 Rx: 39 Tx: C6 Rx: 6C Tx: 93 Rx: 20 Tx: DF Rx: 52 Tx: AD Rx: 34 Tx: CB Rx: 20 Tx: DF Rx: 45 Tx: BA Rx: 44 Tx: BB Rx: 43 Tx: BC Tx: 3 Rx: 20 Rx: 1B Rx: 1B

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

у вас ответ от блока полностью соответствует как в посте #59. Вы точно поменяли в скетче это?

MaksVV пишет:
... в Скетче #58 исправьте в строке 059 

countID>=27 на countID>=28 или даже 29 если байты опять дальше не пойдут

MaksVV
Offline
Зарегистрирован: 06.08.2015

по поводу скана сниффа ком порта. Вы что то не то сделали. У вас сеанс связи то был с автомобилем при этом? Судя по скану не было. Может ком порт не тот выбрали в сниффере? Алгоритм такой. Сначала втыкаем VAG com адаптер в юсб. открываем сниффер ком порта. Выбираем режим "Наблюдатель". Открываем тот ком порт, на котором сидит VAG COM. И вот сейчас запускаем программу Vag com и начинаем диагностику с автомобилем. Всё должно отображаться в сниффере белыми и жёлтыми байтами. Желтые байты - это байты, летящие от Vag com к ЭБУ авто. 

taha17
taha17 аватар
Offline
Зарегистрирован: 08.10.2017

MaksVV пишет:

у вас ответ от блока полностью соответствует как в посте #59. Вы точно поменяли в скетче это?

MaksVV пишет:
... в Скетче #58 исправьте в строке 059 

countID>=27 на countID>=28 или даже 29 если байты опять дальше не пойдут

countID>=27

---KWP 5 baud init
bit0=0 startbit
bit1=1
bit2=0
bit3=0
bit4=0
bit5=0
bit6=0
bit7=0
bit8=0 parity
bit9=1 stopbit
 Rx: 55 Rx: 1 Rx: 8A Tx: 75 Rx: 1B Tx: E4 Rx: 1 Tx: FE Rx: F6 Tx: 9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 38 Tx: C7 Rx: 39 Tx: C6 Rx: 30 Tx: CF Rx: 36 Tx: C9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 31 Tx: CE Rx: 47 Tx: B8 Rx: 54 Tx: AB Rx: 20 Tx: DF Rx: 31 Tx: CE Rx: 2C Tx: D3 Rx: 39 Tx: C6 Rx: 6C Tx: 93 Rx: 20 Tx: DF Rx: 52 Tx: AD Rx: 34 Tx: CB Rx: 20 Tx: DF Rx: 45 Tx: BA Rx: 44 Tx: BB Rx: 43 Tx: BC Tx: 3 Rx: 20 Rx: 1B Rx: 1B

countID>=28

---KWP 5 baud init
bit0=0 startbit
bit1=1
bit2=0
bit3=0
bit4=0
bit5=0
bit6=0
bit7=0
bit8=0 parity
bit9=1 stopbit
 Rx: 55 Rx: 1 Rx: 8A Tx: 75 Rx: 1B Tx: E4 Rx: 1 Tx: FE Rx: F6 Tx: 9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 38 Tx: C7 Rx: 39 Tx: C6 Rx: 30 Tx: CF Rx: 36 Tx: C9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 31 Tx: CE Rx: 47 Tx: B8 Rx: 54 Tx: AB Rx: 20 Tx: DF Rx: 31 Tx: CE Rx: 2C Tx: D3 Rx: 39 Tx: C6 Rx: 6C Tx: 93 Rx: 20 Tx: DF Rx: 52 Tx: AD Rx: 34 Tx: CB Rx: 20 Tx: DF Rx: 45 Tx: BA Rx: 44 Tx: BB Rx: 43 Tx: BC Rx: 20 Tx: DF Tx: 3 Rx: 3

countID>=29

---KWP 5 baud init
bit0=0 startbit
bit1=1
bit2=0
bit3=0
bit4=0
bit5=0
bit6=0
bit7=0
bit8=0 parity
bit9=1 stopbit
 Rx: 55 Rx: 1 Rx: 8A Tx: 75 Rx: 1B Tx: E4 Rx: 1 Tx: FE Rx: F6 Tx: 9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 38 Tx: C7 Rx: 39 Tx: C6 Rx: 30 Tx: CF Rx: 36 Tx: C9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 31 Tx: CE Rx: 47 Tx: B8 Rx: 54 Tx: AB Rx: 20 Tx: DF Rx: 31 Tx: CE Rx: 2C Tx: D3 Rx: 39 Tx: C6 Rx: 6C Tx: 93 Rx: 20 Tx: DF Rx: 52 Tx: AD Rx: 34 Tx: CB Rx: 20 Tx: DF Rx: 45 Tx: BA Rx: 44 Tx: BB Rx: 43 Tx: BC Rx: 20 Tx: DF Rx: 3 Tx: FC Tx: 3 Rx: 3

 

taha17
taha17 аватар
Offline
Зарегистрирован: 08.10.2017

MaksVV пишет:

по поводу скана сниффа ком порта. Вы что то не то сделали. У вас сеанс связи то был с автомобилем при этом? Судя по скану не было. Может ком порт не тот выбрали в сниффере? Алгоритм такой. Сначала втыкаем VAG com адаптер в юсб. открываем сниффер ком порта. Выбираем режим "Наблюдатель". Открываем тот ком порт, на котором сидит VAG COM. И вот сейчас запускаем программу Vag com и начинаем диагностику с автомобилем. Всё должно отображаться в сниффере белыми и жёлтыми байтами. Желтые байты - это байты, летящие от Vag com к ЭБУ авто. 

Сеанс связи был

Синим цветом показан (4-6 стр документа). Сразу несколько попыток установки связи идет, а потм блок двигателя отзывается. красным цветом-это неудачные попытки. синим- удачные

MaksVV
Offline
Зарегистрирован: 06.08.2015

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); //R,T
#define TX 11


byte ECUaddress = 0x01;   // адрес блока двигателя, можно попробовать с другими адресами


bool Init = 0;

byte Parameter;           //номер передаваемого параметра от ECU
byte a;
byte b;
uint8_t number = 0;
byte counter = 0x02; 
byte countPID = 0; 
byte countID = 0; 

int RPM = 0;             // переменная оборотов





void setup() 
{
Serial.begin (115200);
Serial.println(F("---KWP 5 baud init"));
delay (500);
pinMode (TX, OUTPUT);
digitalWrite (TX, HIGH); // BUS IDLE
delay (500);



send5baud(ECUaddress); // функция отправки адреса блоку
mySerial.begin (9600);

}


void loop() {


  

if( mySerial.available()>0) { 
  delay(5);
  
    byte inByte = mySerial.read();
    Serial.print(" Rx: ");
    Serial.print(inByte,HEX);
    
    if (!Init){
      
    
      if (number ==0 && inByte == 0x8A){ countID++;  mySerial.write (0x75) ; Serial.print(" Tx: "); Serial.print(0x75,HEX); number++;} 
 else if (number ==1) { mySerial.write (inByte^ 0xFF);  Serial.print(" Tx: "); Serial.print(inByte^0xFF,HEX); 
          if (countID>=27) {delay (30); number=4;  countID = 0;  mySerial.write (0x03);  Serial.print(" Tx: "); Serial.print(0x03,HEX);  }
           countID++;}                                //первый блок идентификаторов
      
      
    
 else if (number==4 && inByte == 0xFC){mySerial.write (counter); Serial.print(" Tx: "); Serial.print(counter,HEX);  number++;}
 else if (number==5 && inByte == (counter^0xFF)){counter++; mySerial.write (0x09); Serial.print(" Tx: "); Serial.print(0x09,HEX); number++;}
 else if (number==6 && inByte == 0xF6){mySerial.write (0x03); Serial.print(" Tx: "); Serial.print(0x03,HEX); number++;}  //конец первого 3 FC 2 FD 9 F6 3
 
 else if (number ==7) { if (inByte == 0x03 && countID>5) {delay (20); number++;  countID = 0;  mySerial.write (0x03);  Serial.print(" Tx: "); Serial.print(0x03,HEX);  }
                       mySerial.write (inByte^ 0xFF);  Serial.print(" Tx: "); Serial.print(inByte^0xFF,HEX); countID++;}    //второй блок идентификаторов


 else if (number==8 && inByte == 0xFC){mySerial.write (counter); Serial.print(" Tx: "); Serial.print(counter,HEX);  number++;}
 else if (number==9 && inByte == (counter^0xFF)){counter++; mySerial.write (0x09); Serial.print(" Tx: "); Serial.print(0x09,HEX); number++;}
 else if (number==10 && inByte == 0xF6){mySerial.write (0x03); Serial.print(" Tx: "); Serial.print(0x03,HEX); number++;}        //конец второго 3 FC 4 FD 9 F6 3

 else if (number ==11) { if (inByte == 0x03) {delay (20); number++;  countID = 0;  mySerial.write (0x03);  Serial.print(" Tx: "); Serial.print(0x03,HEX);  }
                       mySerial.write (inByte^ 0xFF);  Serial.print(" Tx: "); Serial.print(inByte^0xFF,HEX);}    //третий блок идентификаторов


 else if (number==12 && inByte == 0xFC){mySerial.write (counter); Serial.print(" Tx: "); Serial.print(counter,HEX);  number++;}
 else if (number==13 && inByte == (counter^0xFF)){counter++; mySerial.write (0x09); Serial.print(" Tx: "); Serial.print(0x09,HEX); number++;}
 else if (number==14 && inByte == 0xF6){mySerial.write (0x03); Serial.print(" Tx: "); Serial.print(0x03,HEX); number++; Init = 1;}  //конец третьего 3 FC 6 FD 9 F6 3
 


          

              
                            
            }
    
    else{
    if (number ==0){ mySerial.write (0x04); number++;}
    else if (number ==1 && inByte == 0xFB){ mySerial.write (counter);  number++; }
    else if (number ==2 && inByte == (counter ^ 0xFF)) {counter++; mySerial.write (0x29);number++;  }
    else if (number ==3 && inByte == 0xD6) {mySerial.write (0x01);number++;  }
    else if (number ==4 && inByte == 0xFE) {mySerial.write (0x03);number++;  }
    else if (number ==5 && inByte == 0x0F) {mySerial.write (0xF0);number++;  }
    else if (number ==6 && inByte == counter) {mySerial.write (inByte^0xFF);number++; counter++; }
    else if (number ==7 && inByte == 0xE7) {mySerial.write (inByte^0xFF);number++;  }
    else if (number ==8) {Parameter=inByte; mySerial.write (inByte^0xFF);number++;  }
    else if (number ==9) {a=inByte; mySerial.write (inByte^0xFF); number++;}
    else if (number ==10) {b=inByte; mySerial.write (inByte^0xFF);  
          
        if (Parameter == 0x01)  RPM = 0.2*a*b;
    
    countPID++;
    if (countPID>=4) {mySerial.write (0x03); countPID=0; number = 0; Serial.print(" RPM = "); Serial.println(RPM); delay (20);}
    else number = 8;
    }
   
    
      }


    
   
             }
   
   
     
    }





//ниже отправка блоку байта адреса на 5бод  1 стартбит, 7бит данных, 1 бит проверки четности odd, 1 стоп бит

void send5baud(uint8_t data){              
  // // 1 start bit, 7 data bits, 1 parity, 1 stop bit
  #define bitcount 10
  byte bits[bitcount];
  byte even=1;
  byte bit;
  for (int i=0; i < bitcount; i++){
    bit=0;
    if (i == 0)  bit = 0;
      else if (i == 8) bit = even; // computes parity bit
      else if (i == 9) bit = 1;
      else {
        bit = (byte) ((data & (1 << (i-1))) != 0);
        even = even ^ bit;
      }
    Serial.print(F("bit"));      
    Serial.print(i);          
    Serial.print(F("="));              
    Serial.print(bit);
    if (i == 0) Serial.print(F(" startbit"));
      else if (i == 8) Serial.print(F(" parity"));    
      else if (i == 9) Serial.print(F(" stopbit"));              
    Serial.println();      
    bits[i]=bit;
  }
  // now send bit stream    
  for (int i=0; i < bitcount+1; i++){
    if (i != 0){
      // wait 200 ms (=5 baud), adjusted by latency correction
      delay(200);
      if (i == bitcount) break;
    }
    if (bits[i] == 1){ 
      // high
      digitalWrite(TX, HIGH);
    } else {
      // low
      digitalWrite(TX, LOW);
    }
  }
  mySerial.flush();
}


MaksVV
Offline
Зарегистрирован: 06.08.2015

taha17 пишет:
Синим цветом показан (4-6 стр документа).

у меня ошибка открытия вашего документа. Открывается только 1-я страница

taha17
taha17 аватар
Offline
Зарегистрирован: 08.10.2017

MaksVV пишет:

taha17 пишет:
Синим цветом показан (4-6 стр документа).

у меня ошибка открытия вашего документа. Открывается только 1-я страница

Вот пересохранил в простой .doc

https://drive.google.com/open?id=1tEJOQ1IdxvwDWDXWwRE6-f2RjDl3Ur1W

MaksVV
Offline
Зарегистрирован: 06.08.2015

странно, у меня желтым отправленные нами байты подсвечивает. Ну да ладно. Это можно понять по эху, т.к. когда от нас байты идут на эбу - получается по два одинаковых байта, т.е. эхо.

Если два одинаковых - значит это мы отправляем в сторону ЭБУ

если одиночный - значит байт шлёт эбу в сторону нас. 

MaksVV
Offline
Зарегистрирован: 06.08.2015

исправил скетч #70, пробуйте 

taha17
taha17 аватар
Offline
Зарегистрирован: 08.10.2017

MaksVV пишет:

исправил скетч #70, пробуйте 

---KWP 5 baud init
bit0=0 startbit
bit1=1
bit2=0
bit3=0
bit4=0
bit5=0
bit6=0
bit7=0
bit8=0 parity
bit9=1 stopbit
 Rx: 55 Rx: 1 Rx: 8A Tx: 75 Rx: 1B Tx: E4 Rx: 1 Tx: FE Rx: F6 Tx: 9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 38 Tx: C7 Rx: 39 Tx: C6 Rx: 30 Tx: CF Rx: 36 Tx: C9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 31 Tx: CE Rx: 47 Tx: B8 Rx: 54 Tx: AB Rx: 20 Tx: DF Rx: 31 Tx: CE Rx: 2C Tx: D3 Rx: 39 Tx: C6 Rx: 6C Tx: 93 Rx: 20 Tx: DF Rx: 52 Tx: AD Rx: 34 Tx: CB Rx: 20 Tx: DF Rx: 45 Tx: BA Rx: 44 Tx: BB Rx: 43 Tx: BC Rx: 20 Tx: DF Tx: 3 Rx: 3 Rx: FC Tx: 2 Rx: FD Tx: 9 Rx: F6 Tx: 3 Tx: 7 Rx: 7 Rx: 7 Rx: 7
 

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

ок, идем дальше. пока ждём, исправляю 

MaksVV
Offline
Зарегистрирован: 06.08.2015

пробуем 

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); //R,T
#define TX 11


byte ECUaddress = 0x01;   // адрес блока двигателя, можно попробовать с другими адресами


bool Init = 0;

byte Parameter;           //номер передаваемого параметра от ECU
byte a;
byte b;
uint8_t number = 0;
byte counter = 0x02; 
byte countPID = 0; 
byte countID = 0; 

int RPM = 0;             // переменная оборотов





void setup() 
{
Serial.begin (115200);
Serial.println(F("---KWP 5 baud init"));
delay (500);
pinMode (TX, OUTPUT);
digitalWrite (TX, HIGH); // BUS IDLE
delay (500);



send5baud(ECUaddress); // функция отправки адреса блоку
mySerial.begin (9600);

}


void loop() {


  

if( mySerial.available()>0) { 
  delay(5);
  
    byte inByte = mySerial.read();
    Serial.print(" Rx: ");
    Serial.print(inByte,HEX);
    
    if (!Init){
      
    
      if (number ==0 && inByte == 0x8A){ countID++;  mySerial.write (0x75) ; Serial.print(" Tx: "); Serial.print(0x75,HEX); number++;} 
 else if (number ==1) { mySerial.write (inByte^ 0xFF);  Serial.print(" Tx: "); Serial.print(inByte^0xFF,HEX); 
          if (countID>=27) {delay (30); number=4;  countID = 0;  mySerial.write (0x03);  Serial.print(" Tx: "); Serial.print(0x03,HEX);  }
           countID++;}                                //первый блок идентификаторов
      
      
    
 else if (number==4 && inByte == 0xFC){mySerial.write (counter); Serial.print(" Tx: "); Serial.print(counter,HEX);  number++;}
 else if (number==5 && inByte == (counter^0xFF)){counter++; mySerial.write (0x09); Serial.print(" Tx: "); Serial.print(0x09,HEX); number++;}
 else if (number==6 && inByte == 0xF6){mySerial.write (0x03); Serial.print(" Tx: "); Serial.print(0x03,HEX); number++;}  //конец первого 3 FC 2 FD 9 F6 3
 
 else if (number ==7) { if (inByte == 0x03) {delay (20); number++;  countID = 0;  mySerial.write (0x03);  Serial.print(" Tx: "); Serial.print(0x03,HEX);  }
                       mySerial.write (inByte^ 0xFF);  Serial.print(" Tx: "); Serial.print(inByte^0xFF,HEX);}    //второй блок идентификаторов


 else if (number==8 && inByte == 0xFC){mySerial.write (counter); Serial.print(" Tx: "); Serial.print(counter,HEX);  number++;}
 else if (number==9 && inByte == (counter^0xFF)){counter++; mySerial.write (0x09); Serial.print(" Tx: "); Serial.print(0x09,HEX); number++;}
 else if (number==10 && inByte == 0xF6){mySerial.write (0x03); Serial.print(" Tx: "); Serial.print(0x03,HEX); number++;}        //конец второго 3 FC 4 FD 9 F6 3

 else if (number ==11) { if (inByte == 0x03) {delay (20); number++;  countID = 0;  mySerial.write (0x03);  Serial.print(" Tx: "); Serial.print(0x03,HEX);  }
                       mySerial.write (inByte^ 0xFF);  Serial.print(" Tx: "); Serial.print(inByte^0xFF,HEX);}    //третий блок идентификаторов


 else if (number==12 && inByte == 0xFC){mySerial.write (counter); Serial.print(" Tx: "); Serial.print(counter,HEX);  number++;}
 else if (number==13 && inByte == (counter^0xFF)){counter++; mySerial.write (0x09); Serial.print(" Tx: "); Serial.print(0x09,HEX); number++;}
 else if (number==14 && inByte == 0xF6){mySerial.write (0x03); Serial.print(" Tx: "); Serial.print(0x03,HEX); number++; Init = 1;}  //конец третьего 3 FC 6 FD 9 F6 3
 


          

              
                            
            }
    
    else{
    if (number ==0){ mySerial.write (0x04); number++;}
    else if (number ==1 && inByte == 0xFB){ mySerial.write (counter);  number++; }
    else if (number ==2 && inByte == (counter ^ 0xFF)) {counter++; mySerial.write (0x29);number++;  }
    else if (number ==3 && inByte == 0xD6) {mySerial.write (0x01);number++;  }
    else if (number ==4 && inByte == 0xFE) {mySerial.write (0x03);number++;  }
    else if (number ==5 && inByte == 0x0F) {mySerial.write (0xF0);number++;  }
    else if (number ==6 && inByte == counter) {mySerial.write (inByte^0xFF);number++; counter++; }
    else if (number ==7 && inByte == 0xE7) {mySerial.write (inByte^0xFF);number++;  }
    else if (number ==8) {Parameter=inByte; mySerial.write (inByte^0xFF);number++;  }
    else if (number ==9) {a=inByte; mySerial.write (inByte^0xFF); number++;}
    else if (number ==10) {b=inByte; mySerial.write (inByte^0xFF);  
          
        if (Parameter == 0x01)  RPM = 0.2*a*b;
    
    countPID++;
    if (countPID>=4) {mySerial.write (0x03); countPID=0; number = 0; Serial.print(" RPM = "); Serial.println(RPM); delay (20);}
    else number = 8;
    }
   
    
      }


    
   
             }
   
   
     
    }





//ниже отправка блоку байта адреса на 5бод  1 стартбит, 7бит данных, 1 бит проверки четности odd, 1 стоп бит

void send5baud(uint8_t data){              
  // // 1 start bit, 7 data bits, 1 parity, 1 stop bit
  #define bitcount 10
  byte bits[bitcount];
  byte even=1;
  byte bit;
  for (int i=0; i < bitcount; i++){
    bit=0;
    if (i == 0)  bit = 0;
      else if (i == 8) bit = even; // computes parity bit
      else if (i == 9) bit = 1;
      else {
        bit = (byte) ((data & (1 << (i-1))) != 0);
        even = even ^ bit;
      }
    Serial.print(F("bit"));      
    Serial.print(i);          
    Serial.print(F("="));              
    Serial.print(bit);
    if (i == 0) Serial.print(F(" startbit"));
      else if (i == 8) Serial.print(F(" parity"));    
      else if (i == 9) Serial.print(F(" stopbit"));              
    Serial.println();      
    bits[i]=bit;
  }
  // now send bit stream    
  for (int i=0; i < bitcount+1; i++){
    if (i != 0){
      // wait 200 ms (=5 baud), adjusted by latency correction
      delay(200);
      if (i == bitcount) break;
    }
    if (bits[i] == 1){ 
      // high
      digitalWrite(TX, HIGH);
    } else {
      // low
      digitalWrite(TX, LOW);
    }
  }
  mySerial.flush();
}


 

taha17
taha17 аватар
Offline
Зарегистрирован: 08.10.2017

---KWP 5 baud init
bit0=0 startbit
bit1=1
bit2=0
bit3=0
bit4=0
bit5=0
bit6=0
bit7=0
bit8=0 parity
bit9=1 stopbit
 Rx: 55 Rx: 1 Rx: 8A Tx: 75 Rx: 1B Tx: E4 Rx: 1 Tx: FE Rx: F6 Tx: 9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 38 Tx: C7 Rx: 39 Tx: C6 Rx: 30 Tx: CF Rx: 36 Tx: C9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 31 Tx: CE Rx: 47 Tx: B8 Rx: 54 Tx: AB Rx: 20 Tx: DF Rx: 31 Tx: CE Rx: 2C Tx: D3 Rx: 39 Tx: C6 Rx: 6C Tx: 93 Rx: 20 Tx: DF Rx: 52 Tx: AD Rx: 34 Tx: CB Rx: 20 Tx: DF Rx: 45 Tx: BA Rx: 44 Tx: BB Rx: 43 Tx: BC Rx: 20 Tx: DF Tx: 3 Rx: 3 Rx: FC Tx: 2 Rx: FD Tx: 9 Rx: F6 Tx: 3 Rx: 7 Tx: F8 Rx: 3 Tx: 3 Tx: FC Rx: F6 Rx: 7 Rx: 7
 
MaksVV
Offline
Зарегистрирован: 06.08.2015

ага. есть косяк, исправляю

MaksVV
Offline
Зарегистрирован: 06.08.2015

исправил #70. 

taha17
taha17 аватар
Offline
Зарегистрирован: 08.10.2017

MaksVV пишет:

исправил #70. 

---KWP 5 baud init
bit0=0 startbit
bit1=1
bit2=0
bit3=0
bit4=0
bit5=0
bit6=0
bit7=0
bit8=0 parity
bit9=1 stopbit
 Rx: 55 Rx: 1 Rx: 8A Tx: 75 Rx: 1B Tx: E4 Rx: 1 Tx: FE Rx: F6 Tx: 9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 38 Tx: C7 Rx: 39 Tx: C6 Rx: 30 Tx: CF Rx: 36 Tx: C9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 31 Tx: CE Rx: 47 Tx: B8 Rx: 54 Tx: AB Rx: 20 Tx: DF Rx: 31 Tx: CE Rx: 2C Tx: D3 Rx: 39 Tx: C6 Rx: 6C Tx: 93 Rx: 20 Tx: DF Rx: 52 Tx: AD Rx: 34 Tx: CB Rx: 20 Tx: DF Rx: 45 Tx: BA Rx: 44 Tx: BB Rx: 43 Tx: BC Rx: 20 Tx: DF Tx: 3 Rx: 3 Rx: FC Tx: 2 Rx: FD Tx: 9 Rx: F6 Tx: 3 Rx: 7 Tx: F8 Rx: 3 Tx: FC Rx: F6 Tx: 9 Rx: 20 Tx: DF Rx: 47 Tx: B8 Rx: 34 Tx: CB Rx: 31 Tx: CE Rx: 3 Tx: 3 Tx: FC Rx: FC Tx: 3 Rx: FC Tx: 9 Rx: F6 Tx: 3 Rx: 4 Tx: FB Rx: 4 Tx: FB Rx: A Tx: F5 Rx: 4 Tx: FB Rx: 3 Tx: 3 Tx: FC Rx: FC Tx: 4 Rx: FB Tx: 9 Rx: F6 Tx: 3 Rx: 4 Rx: 4 Rx: 4

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

хм, вроде всё правильно сейчас, но ЭБУ не успевает байты чтоли принять, сейчас задержку добавлю

MaksVV
Offline
Зарегистрирован: 06.08.2015

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); //R,T
#define TX 11


byte ECUaddress = 0x01;   // адрес блока двигателя, можно попробовать с другими адресами


bool Init = 0;

byte Parameter;           //номер передаваемого параметра от ECU
byte a;
byte b;
uint8_t number = 0;
byte counter = 0x02; 
byte countPID = 0; 
byte countID = 0; 

int RPM = 0;             // переменная оборотов





void setup() 
{
Serial.begin (115200);
Serial.println(F("---KWP 5 baud init"));
delay (500);
pinMode (TX, OUTPUT);
digitalWrite (TX, HIGH); // BUS IDLE
delay (500);



send5baud(ECUaddress); // функция отправки адреса блоку
mySerial.begin (9600);

}


void loop() {


  

if( mySerial.available()>0) { 
  delay(5);
  
    byte inByte = mySerial.read();
    Serial.print(" Rx: ");
    Serial.print(inByte,HEX);
    
    if (!Init){
      
    
      if (number ==0 && inByte == 0x8A){ countID++;  mySerial.write (0x75) ; Serial.print(" Tx: "); Serial.print(0x75,HEX); number++;} 
 else if (number ==1) { mySerial.write (inByte^ 0xFF);  Serial.print(" Tx: "); Serial.print(inByte^0xFF,HEX); 
          if (countID>=27) {delay (10); number=4;  countID = 0;  mySerial.write (0x03);  Serial.print(" Tx: "); Serial.print(0x03,HEX); Serial.println ("    END of ID_1");  Serial.println ();}
           countID++;}                                //первый блок идентификаторов
      
      
    
 else if (number==4 && inByte == 0xFC){mySerial.write (counter); Serial.print(" Tx: "); Serial.print(counter,HEX);  number++;}
 else if (number==5 && inByte == (counter^0xFF)){ counter++; mySerial.write (0x09); Serial.print(" Tx: "); Serial.print(0x09,HEX); number++;}
 else if (number==6 && inByte == 0xF6){ mySerial.write (0x03); Serial.print(" Tx: "); Serial.print(0x03,HEX); number++; Serial.println ("    END of Present_1"); Serial.println ();}  //конец первого 3 FC 2 FD 9 F6 3
 
 else if (number ==7) {  

                       
                       if (inByte == 0x03 && countID>5) { number++;  counter++ ; countID = 0;mySerial.write (0x03);  Serial.print(" Tx: "); Serial.print(0x03,HEX); Serial.println ("     END of ID_2"); Serial.println ();}
                       else { mySerial.write (inByte^ 0xFF);  Serial.print(" Tx: "); Serial.print(inByte^0xFF,HEX); countID++;  }}    //второй блок идентификаторов


 else if (number==8 && inByte == 0xFC){ mySerial.write (counter); Serial.print(" Tx: "); Serial.print(counter,HEX);  number++;}
 else if (number==9 && inByte == (counter^0xFF)){ counter++; mySerial.write (0x09); Serial.print(" Tx: "); Serial.print(0x09,HEX); number++;}
 else if (number==10 && inByte == 0xF6){ mySerial.write (0x03); Serial.print(" Tx: "); Serial.print(0x03,HEX); number++; Serial.println ("     END of Present_2"); Serial.println ();}        //конец второго 3 FC 4 FD 9 F6 3

 else if (number ==11) {  if (inByte == 0x03) { counter++; number++;  countID = 0;  mySerial.write (0x03);  Serial.print(" Tx: "); Serial.print(0x03,HEX);  Serial.println ("    END of ID_3"); Serial.println (); }
                       else mySerial.write (inByte^ 0xFF);  Serial.print(" Tx: "); Serial.print(inByte^0xFF,HEX);}    //третий блок идентификаторов


 else if (number==12 && inByte == 0xFC){ mySerial.write (counter); Serial.print(" Tx: "); Serial.print(counter,HEX);  number++;}
 else if (number==13 && inByte == (counter^0xFF)){ counter++; mySerial.write (0x09); Serial.print(" Tx: "); Serial.print(0x09,HEX); number++;}
 else if (number==14 && inByte == 0xF6){ mySerial.write (0x03); Serial.print(" Tx: "); Serial.print(0x03,HEX); number++; Init = 1; Serial.println ("        END of Present_3"); Serial.println ();}  //конец третьего 3 FC 6 FD 9 F6 3
 


          

              
                            
            }
    
    else{
    if (number ==0){ mySerial.write (0x04); number++;}
    else if (number ==1 && inByte == 0xFB){ mySerial.write (counter);  number++; }
    else if (number ==2 && inByte == (counter ^ 0xFF)) {counter++; mySerial.write (0x29);number++;  }
    else if (number ==3 && inByte == 0xD6) {mySerial.write (0x01);number++;  }
    else if (number ==4 && inByte == 0xFE) {mySerial.write (0x03);number++;  }
    else if (number ==5 && inByte == 0x0F) {mySerial.write (0xF0);number++;  }
    else if (number ==6 && inByte == counter) {mySerial.write (inByte^0xFF);number++; counter++; }
    else if (number ==7 && inByte == 0xE7) {mySerial.write (inByte^0xFF);number++;  }
    else if (number ==8) {Parameter=inByte; mySerial.write (inByte^0xFF);number++;  }
    else if (number ==9) {a=inByte; mySerial.write (inByte^0xFF); number++;}
    else if (number ==10) {b=inByte; mySerial.write (inByte^0xFF);  
          
        if (Parameter == 0x01)  RPM = 0.2*a*b;
    
    countPID++;
    if (countPID>=4) {mySerial.write (0x03); countPID=0; number = 0; Serial.print(" RPM = "); Serial.println(RPM); delay (20);}
    else number = 8;
    }
   
    
      }


    
   
             }
   
   
     
    }





//ниже отправка блоку байта адреса на 5бод  1 стартбит, 7бит данных, 1 бит проверки четности odd, 1 стоп бит

void send5baud(uint8_t data){              
  // // 1 start bit, 7 data bits, 1 parity, 1 stop bit
  #define bitcount 10
  byte bits[bitcount];
  byte even=1;
  byte bit;
  for (int i=0; i < bitcount; i++){
    bit=0;
    if (i == 0)  bit = 0;
      else if (i == 8) bit = even; // computes parity bit
      else if (i == 9) bit = 1;
      else {
        bit = (byte) ((data & (1 << (i-1))) != 0);
        even = even ^ bit;
      }
    Serial.print(F("bit"));      
    Serial.print(i);          
    Serial.print(F("="));              
    Serial.print(bit);
    if (i == 0) Serial.print(F(" startbit"));
      else if (i == 8) Serial.print(F(" parity"));    
      else if (i == 9) Serial.print(F(" stopbit"));              
    Serial.println();      
    bits[i]=bit;
  }
  // now send bit stream    
  for (int i=0; i < bitcount+1; i++){
    if (i != 0){
      // wait 200 ms (=5 baud), adjusted by latency correction
      delay(200);
      if (i == bitcount) break;
    }
    if (bits[i] == 1){ 
      // high
      digitalWrite(TX, HIGH);
    } else {
      // low
      digitalWrite(TX, LOW);
    }
  }
  mySerial.flush();
}


taha17
taha17 аватар
Offline
Зарегистрирован: 08.10.2017
---KWP 5 baud init
bit0=0 startbit
bit1=1
bit2=0
bit3=0
bit4=0
bit5=0
bit6=0
bit7=0
bit8=0 parity
bit9=1 stopbit
 Rx: 55 Rx: 1 Rx: 8A Tx: 75 Rx: 1B Tx: E4 Rx: 1 Tx: FE Rx: F6 Tx: 9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 38 Tx: C7 Rx: 39 Tx: C6 Rx: 30 Tx: CF Rx: 36 Tx: C9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 31 Tx: CE Rx: 47 Tx: B8 Rx: 54 Tx: AB Rx: 20 Tx: DF Rx: 31 Tx: CE Rx: 2C Tx: D3 Rx: 39 Tx: C6 Rx: 6C Tx: 93 Rx: 20 Tx: DF Rx: 52 Tx: AD Rx: 34 Tx: CB Rx: 20 Tx: DF Rx: 45 Tx: BA Rx: 44 Tx: BB Rx: 43 Tx: BC Rx: 20 Tx: DF Tx: 3END of ID_1
 Rx: 3 Rx: FC Tx: 2 Rx: FD Tx: 9 Rx: F6 Tx: 3END of Present_1
 Rx: 7 Tx: F8END of ID_2
 Rx: 3 Tx: FCEND of ID_2
 Rx: F6 Tx: 9END of ID_2
 Rx: 20 Tx: DFEND of ID_2
 Rx: 47 Tx: B8END of ID_2
 Rx: 34 Tx: CBEND of ID_2
 Rx: 31 Tx: CEEND of ID_2
 Rx: 3 Tx: 3 Tx: FCEND of ID_2
 Rx: 3

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

короче заливайте скетч Александра по ссылке из поста #41 , поменяйте только пины софт сериала на 10 и 11 

в самом начале поменять строки

#define pinKLineRX 2
#define pinKLineTX 3

на 

#define pinKLineRX 10
#define pinKLineTX 11

 

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

мой скетч #83 исправил, может заработает наконец

taha17
taha17 аватар
Offline
Зарегистрирован: 08.10.2017

оТВЕТ на скетч от Александра:

SETUP
START
------connect addr=23 baud=9600
---KWP 5 baud init
bit0=0 startbit
bit1=1
bit2=1
bit3=1
bit4=0
bit5=1
bit6=0
bit7=0
bit8=1 parity
bit9=1 stopbit
---KWPReceive sz=3 blockCounter=0
IN: sz=3 data=55 1 8A 
------readconnectblocks
---KWPReceive sz=0 blockCounter=1
IN: sz=16 data=F 1 F6 37 4D 4F 39 32 30 38 30 30 53 20 20 3 
---KWPSendAckBlock blockCounter=2
---KWPSend sz=4 blockCounter=2
OUT:3 2 9 3 
---KWPReceive sz=0 blockCounter=3
IN: sz=16 data=F 3 F6 4B 6F 6D 62 69 69 6E 73 74 72 75 6D 3 
---KWPSendAckBlock blockCounter=4
---KWPSend sz=4 blockCounter=4
OUT:3 4 9 3 
---KWPReceive sz=0 blockCounter=5
IN: sz=16 data=F 5 F6 65 6E 74 20 20 20 20 20 30 36 36 61 3 
---KWPSendAckBlock blockCounter=6
---KWPSend sz=4 blockCounter=6
OUT:3 6 9 3 
---KWPReceive sz=0 blockCounter=7
IN: sz=9 data=8 7 F6 0 0 F8 4B D2 3 
---KWPSendAckBlock blockCounter=8
---KWPSend sz=4 blockCounter=8
OUT:3 8 9 3 
---KWPReceive sz=0 blockCounter=9
IN: sz=4 data=3 9 9 3 
label=7MO920800S Kombiinstruent     066
------readSensors 1
---KWPSend sz=5 blockCounter=10
OUT:4 A 29 1 3 
---KWPReceive sz=0 blockCounter=11
IN: sz=16 data=F B E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=12
OUT:4 C 29 2 3 
---KWPReceive sz=0 blockCounter=13
IN: sz=16 data=F D E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=14
OUT:4 E 29 32 3 
---KWPReceive sz=0 blockCounter=15
IN: sz=13 data=C F E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=16
OUT:4 10 29 1 3 
---KWPReceive sz=0 blockCounter=17
IN: sz=16 data=F 11 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=18
OUT:4 12 29 2 3 
---KWPReceive sz=0 blockCounter=19
IN: sz=16 data=F 13 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=20
OUT:4 14 29 32 3 
---KWPReceive sz=0 blockCounter=21
IN: sz=13 data=C 15 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=22
OUT:4 16 29 1 3 
---KWPReceive sz=0 blockCounter=23
IN: sz=16 data=F 17 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=24
OUT:4 18 29 2 3 
---KWPReceive sz=0 blockCounter=25
IN: sz=16 data=F 19 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=26
OUT:4 1A 29 32 3 
---KWPReceive sz=0 blockCounter=27
IN: sz=13 data=C 1B E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=28
OUT:4 1C 29 1 3 
---KWPReceive sz=0 blockCounter=29
IN: sz=16 data=F 1D E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=30
OUT:4 1E 29 2 3 
---KWPReceive sz=0 blockCounter=31
IN: sz=16 data=F 1F E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=32
OUT:4 20 29 32 3 
---KWPReceive sz=0 blockCounter=33
IN: sz=13 data=C 21 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=34
OUT:4 22 29 1 3 
---KWPReceive sz=0 blockCounter=35
IN: sz=16 data=F 23 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=36
OUT:4 24 29 2 3 
---KWPReceive sz=0 blockCounter=37
IN: sz=16 data=F 25 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=38
OUT:4 26 29 32 3 
---KWPReceive sz=0 blockCounter=39
IN: sz=13 data=C 27 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=40
OUT:4 28 29 1 3 
---KWPReceive sz=0 blockCounter=41
IN: sz=16 data=F 29 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=42
OUT:4 2A 29 2 3 
---KWPReceive sz=0 blockCounter=43
IN: sz=16 data=F 2B E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=44
OUT:4 2C 29 32 3 
---KWPReceive sz=0 blockCounter=45
IN: sz=13 data=C 2D E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=46
OUT:4 2E 29 1 3 
---KWPReceive sz=0 blockCounter=47
IN: sz=16 data=F 2F E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=48
OUT:4 30 29 2 3 
---KWPReceive sz=0 blockCounter=49
IN: sz=16 data=F 31 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=50
OUT:4 32 29 32 3 
---KWPReceive sz=0 blockCounter=51
IN: sz=13 data=C 33 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=52
OUT:4 34 29 1 3 
---KWPReceive sz=0 blockCounter=53
IN: sz=16 data=F 35 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=54
OUT:4 36 29 2 3 
---KWPReceive sz=0 blockCounter=55
IN: sz=16 data=F 37 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=56
OUT:4 38 29 32 3 
---KWPReceive sz=0 blockCounter=57
IN: sz=13 data=C 39 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=58
OUT:4 3A 29 1 3 
---KWPReceive sz=0 blockCounter=59
IN: sz=16 data=F 3B E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=60
OUT:4 3C 29 2 3 
---KWPReceive sz=0 blockCounter=61
IN: sz=16 data=F 3D E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=62
OUT:4 3E 29 32 3 
---KWPReceive sz=0 blockCounter=63
IN: sz=13 data=C 3F E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=64
OUT:4 40 29 1 3 
---KWPReceive sz=0 blockCounter=65
IN: sz=16 data=F 41 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=66
OUT:4 42 29 2 3 
---KWPReceive sz=0 blockCounter=67
IN: sz=16 data=F 43 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=68
OUT:4 44 29 32 3 
---KWPReceive sz=0 blockCounter=69
IN: sz=13 data=C 45 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=70
OUT:4 46 29 1 3 
---KWPReceive sz=0 blockCounter=71
IN: sz=16 data=F 47 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=72
OUT:4 48 29 2 3 
---KWPReceive sz=0 blockCounter=73
IN: sz=16 data=F 49 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=74
OUT:4 4A 29 32 3 
---KWPReceive sz=0 blockCounter=75
IN: sz=13 data=C 4B E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=76
OUT:4 4C 29 1 3 
---KWPReceive sz=0 blockCounter=77
IN: sz=16 data=F 4D E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=78
OUT:4 4E 29 2 3 
---KWPReceive sz=0 blockCounter=79
IN: sz=16 data=F 4F E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=80
OUT:4 50 29 32 3 
---KWPReceive sz=0 blockCounter=81
IN: sz=13 data=C 51 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=82
OUT:4 52 29 1 3 
---KWPReceive sz=0 blockCounter=83
IN: sz=16 data=F 53 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=84
OUT:4 54 29 2 3 
---KWPReceive sz=0 blockCounter=85
IN: sz=16 data=F 55 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=86
OUT:4 56 29 32 3 
---KWPReceive sz=0 blockCounter=87
IN: sz=13 data=C 57 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=88
OUT:4 58 29 1 3 
---KWPReceive sz=0 blockCounter=89
IN: sz=16 data=F 59 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=90
OUT:4 5A 29 2 3 
---KWPReceive sz=0 blockCounter=91
IN: sz=16 data=F 5B E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=92
OUT:4 5C 29 32 3 
---KWPReceive sz=0 blockCounter=93
IN: sz=13 data=C 5D E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=94
OUT:4 5E 29 1 3 
---KWPReceive sz=0 blockCounter=95
IN: sz=16 data=F 5F E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=96
OUT:4 60 29 2 3 
---KWPReceive sz=0 blockCounter=97
IN: sz=16 data=F 61 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=98
OUT:4 62 29 32 3 
---KWPReceive sz=0 blockCounter=99
IN: sz=13 data=C 63 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=100
OUT:4 64 29 1 3 
---KWPReceive sz=0 blockCounter=101
IN: sz=16 data=F 65 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=102
OUT:4 66 29 2 3 
---KWPReceive sz=0 blockCounter=103
IN: sz=16 data=F 67 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=104
OUT:4 68 29 32 3 
---KWPReceive sz=0 blockCounter=105
IN: sz=13 data=C 69 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=106
OUT:4 6A 29 1 3 
---KWPReceive sz=0 blockCounter=107
IN: sz=16 data=F 6B E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=108
OUT:4 6C 29 2 3 
---KWPReceive sz=0 blockCounter=109
IN: sz=16 data=F 6D E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=110
OUT:4 6E 29 32 3 
---KWPReceive sz=0 blockCounter=111
IN: sz=13 data=C 6F E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=112
OUT:4 70 29 1 3 
---KWPReceive sz=0 blockCounter=113
IN: sz=16 data=F 71 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=114
OUT:4 72 29 2 3 
---KWPReceive sz=0 blockCounter=115
IN: sz=16 data=F 73 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=116
OUT:4 74 29 32 3 
---KWPReceive sz=0 blockCounter=117
IN: sz=13 data=C 75 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=118
OUT:4 76 29 1 3 
---KWPReceive sz=0 blockCounter=119
IN: sz=16 data=F 77 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=120
OUT:4 78 29 2 3 
---KWPReceive sz=0 blockCounter=121
IN: sz=16 data=F 79 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=122
OUT:4 7A 29 32 3 
---KWPReceive sz=0 blockCounter=123
IN: sz=13 data=C 7B E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=124
OUT:4 7C 29 1 3 
---KWPReceive sz=0 blockCounter=125
IN: sz=16 data=F 7D E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=126
OUT:4 7E 29 2 3 
---KWPReceive sz=0 blockCounter=127
IN: sz=16 data=F 7F E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=128
OUT:4 80 29 32 3 
---KWPReceive sz=0 blockCounter=129
IN: sz=13 data=C 81 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=130
OUT:4 82 29 1 3 
---KWPReceive sz=0 blockCounter=131
IN: sz=16 data=F 83 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=132
OUT:4 84 29 2 3 
---KWPReceive sz=0 blockCounter=133
IN: sz=16 data=F 85 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=134
OUT:4 86 29 32 3 
---KWPReceive sz=0 blockCounter=135
IN: sz=13 data=C 87 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=136
OUT:4 88 29 1 3 
---KWPReceive sz=0 blockCounter=137
IN: sz=16 data=F 89 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=138
OUT:4 8A 29 2 3 
---KWPReceive sz=0 blockCounter=139
IN: sz=16 data=F 8B E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=140
OUT:4 8C 29 32 3 
---KWPReceive sz=0 blockCounter=141
IN: sz=13 data=C 8D E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=142
OUT:4 8E 29 1 3 
---KWPReceive sz=0 blockCounter=143
IN: sz=16 data=F 8F E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=144
OUT:4 90 29 2 3 
---KWPReceive sz=0 blockCounter=145
IN: sz=16 data=F 91 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=146
OUT:4 92 29 32 3 
---KWPReceive sz=0 blockCounter=147
IN: sz=13 data=C 93 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=148
OUT:4 94 29 1 3 
---KWPReceive sz=0 blockCounter=149
IN: sz=16 data=F 95 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=150
OUT:4 96 29 2 3 
---KWPReceive sz=0 blockCounter=151
IN: sz=16 data=F 97 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=152
OUT:4 98 29 32 3 
---KWPReceive sz=0 blockCounter=153
IN: sz=13 data=C 99 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=154
OUT:4 9A 29 1 3 
---KWPReceive sz=0 blockCounter=155
IN: sz=16 data=F 9B E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=156
OUT:4 9C 29 2 3 
---KWPReceive sz=0 blockCounter=157
IN: sz=16 data=F 9D E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=158
OUT:4 9E 29 32 3 
---KWPReceive sz=0 blockCounter=159
IN: sz=13 data=C 9F E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=160
OUT:4 A0 29 1 3 
---KWPReceive sz=0 blockCounter=161
IN: sz=16 data=F A1 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=162
OUT:4 A2 29 2 3 
---KWPReceive sz=0 blockCounter=163
IN: sz=16 data=F A3 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=164
OUT:4 A4 29 32 3 
---KWPReceive sz=0 blockCounter=165
IN: sz=13 data=C A5 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=166
OUT:4 A6 29 1 3 
---KWPReceive sz=0 blockCounter=167
IN: sz=16 data=F A7 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=168
OUT:4 A8 29 2 3 
---KWPReceive sz=0 blockCounter=169
IN: sz=16 data=F A9 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=170
OUT:4 AA 29 32 3 
---KWPReceive sz=0 blockCounter=171
IN: sz=13 data=C AB E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=172
OUT:4 AC 29 1 3 
---KWPReceive sz=0 blockCounter=173
IN: sz=16 data=F AD E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=174
OUT:4 AE 29 2 3 
---KWPReceive sz=0 blockCounter=175
IN: sz=16 data=F AF E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=176
OUT:4 B0 29 32 3 
---KWPReceive sz=0 blockCounter=177
IN: sz=13 data=C B1 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=178
OUT:4 B2 29 1 3 
---KWPReceive sz=0 blockCounter=179
IN: sz=16 data=F B3 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=180
OUT:4 B4 29 2 3 
---KWPReceive sz=0 blockCounter=181
IN: sz=16 data=F B5 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=182
OUT:4 B6 29 32 3 
---KWPReceive sz=0 blockCounter=183
IN: sz=13 data=C B7 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=184
OUT:4 B8 29 1 3 
---KWPReceive sz=0 blockCounter=185
IN: sz=16 data=F B9 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=186
OUT:4 BA 29 2 3 
---KWPReceive sz=0 blockCounter=187
IN: sz=16 data=F BB E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=188
OUT:4 BC 29 32 3 
---KWPReceive sz=0 blockCounter=189
IN: sz=13 data=C BD E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=190
OUT:4 BE 29 1 3 
---KWPReceive sz=0 blockCounter=191
IN: sz=16 data=F BF E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=192
OUT:4 C0 29 2 3 
---KWPReceive sz=0 blockCounter=193
IN: sz=16 data=F C1 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=194
OUT:4 C2 29 32 3 
---KWPReceive sz=0 blockCounter=195
IN: sz=13 data=C C3 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=196
OUT:4 C4 29 1 3 
---KWPReceive sz=0 blockCounter=197
IN: sz=16 data=F C5 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=198
OUT:4 C6 29 2 3 
---KWPReceive sz=0 blockCounter=199
IN: sz=16 data=F C7 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=200
OUT:4 C8 29 32 3 
---KWPReceive sz=0 blockCounter=201
IN: sz=13 data=C C9 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=202
OUT:4 CA 29 1 3 
---KWPReceive sz=0 blockCounter=203
IN: sz=16 data=F CB E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=204
OUT:4 CC 29 2 3 
---KWPReceive sz=0 blockCounter=205
IN: sz=16 data=F CD E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=206
OUT:4 CE 29 32 3 
---KWPReceive sz=0 blockCounter=207
IN: sz=13 data=C CF E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=208
OUT:4 D0 29 1 3 
---KWPReceive sz=0 blockCounter=209
IN: sz=16 data=F D1 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=210
OUT:4 D2 29 2 3 
---KWPReceive sz=0 blockCounter=211
IN: sz=16 data=F D3 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=212
OUT:4 D4 29 32 3 
---KWPReceive sz=0 blockCounter=213
IN: sz=13 data=C D5 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=214
OUT:4 D6 29 1 3 
---KWPReceive sz=0 blockCounter=215
IN: sz=16 data=F D7 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=216
OUT:4 D8 29 2 3 
---KWPReceive sz=0 blockCounter=217
IN: sz=16 data=F D9 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=218
OUT:4 DA 29 32 3 
---KWPReceive sz=0 blockCounter=219
IN: sz=13 data=C DB E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=220
OUT:4 DC 29 1 3 
---KWPReceive sz=0 blockCounter=221
IN: sz=16 data=F DD E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=222
OUT:4 DE 29 2 3 
---KWPReceive sz=0 blockCounter=223
IN: sz=16 data=F DF E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=224
OUT:4 E0 29 32 3 
---KWPReceive sz=0 blockCounter=225
IN: sz=13 data=C E1 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=226
OUT:4 E2 29 1 3 
---KWPReceive sz=0 blockCounter=227
IN: sz=16 data=F E3 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=228
OUT:4 E4 29 2 3 
---KWPReceive sz=0 blockCounter=229
IN: sz=16 data=F E5 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=230
OUT:4 E6 29 32 3 
---KWPReceive sz=0 blockCounter=231
IN: sz=13 data=C E7 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=232
OUT:4 E8 29 1 3 
---KWPReceive sz=0 blockCounter=233
IN: sz=16 data=F E9 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=234
OUT:4 EA 29 2 3 
---KWPReceive sz=0 blockCounter=235
IN: sz=16 data=F EB E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=236
OUT:4 EC 29 32 3 
---KWPReceive sz=0 blockCounter=237
IN: sz=13 data=C ED E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=238
OUT:4 EE 29 1 3 
---KWPReceive sz=0 blockCounter=239
IN: sz=16 data=F EF E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=240
OUT:4 F0 29 2 3 
---KWPReceive sz=0 blockCounter=241
IN: sz=16 data=F F1 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=242
OUT:4 F2 29 32 3 
---KWPReceive sz=0 blockCounter=243
IN: sz=13 data=C F3 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=244
OUT:4 F4 29 1 3 
---KWPReceive sz=0 blockCounter=245
IN: sz=16 data=F F5 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=246
OUT:4 F6 29 2 3 
---KWPReceive sz=0 blockCounter=247
IN: sz=16 data=F F7 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=248
OUT:4 F8 29 32 3 
---KWPReceive sz=0 blockCounter=249
IN: sz=13 data=C F9 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=250
OUT:4 FA 29 1 3 
---KWPReceive sz=0 blockCounter=251
IN: sz=16 data=F FB E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=252
OUT:4 FC 29 2 3 
---KWPReceive sz=0 blockCounter=253
IN: sz=16 data=F FD E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=254
OUT:4 FE 29 32 3 
---KWPReceive sz=0 blockCounter=255
IN: sz=13 data=C FF E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=0
OUT:4 0 29 1 3 
---KWPReceive sz=0 blockCounter=1
IN: sz=16 data=F 1 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=2
OUT:4 2 29 2 3 
---KWPReceive sz=0 blockCounter=3
IN: sz=16 data=F 3 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=4
OUT:4 4 29 32 3 
---KWPReceive sz=0 blockCounter=5
IN: sz=13 data=C 5 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=6
OUT:4 6 29 1 3 
---KWPReceive sz=0 blockCounter=7
IN: sz=16 data=F 7 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=8
OUT:4 8 29 2 3 
---KWPReceive sz=0 blockCounter=9
IN: sz=16 data=F 9 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=10
OUT:4 A 29 32 3 
---KWPReceive sz=0 blockCounter=11
IN: sz=13 data=C B E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=12
OUT:4 C 29 1 3 
---KWPReceive sz=0 blockCounter=13
IN: sz=16 data=F D E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=14
OUT:4 E 29 2 3 
---KWPReceive sz=0 blockCounter=15
IN: sz=16 data=F F E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=16
OUT:4 10 29 32 3 
---KWPReceive sz=0 blockCounter=17
IN: sz=13 data=C 11 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=18
OUT:4 12 29 1 3 
---KWPReceive sz=0 blockCounter=19
IN: sz=16 data=F 13 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=20
OUT:4 14 29 2 3 
---KWPReceive sz=0 blockCounter=21
IN: sz=16 data=F 15 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=22
OUT:4 16 29 32 3 
---KWPReceive sz=0 blockCounter=23
IN: sz=13 data=C 17 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=24
OUT:4 18 29 1 3 
---KWPReceive sz=0 blockCounter=25
IN: sz=16 data=F 19 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=26
OUT:4 1A 29 2 3 
---KWPReceive sz=0 blockCounter=27
IN: sz=16 data=F 1B E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=28
OUT:4 1C 29 32 3 
---KWPReceive sz=0 blockCounter=29
IN: sz=13 data=C 1D E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=30
OUT:4 1E 29 1 3 
---KWPReceive sz=0 blockCounter=31
IN: sz=16 data=F 1F E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=32
OUT:4 20 29 2 3 
---KWPReceive sz=0 blockCounter=33
IN: sz=16 data=F 21 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=34
OUT:4 22 29 32 3 
---KWPReceive sz=0 blockCounter=35
IN: sz=13 data=C 23 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=36
OUT:4 24 29 1 3 
---KWPReceive sz=0 blockCounter=37
IN: sz=16 data=F 25 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=38
OUT:4 26 29 2 3 
---KWPReceive sz=0 blockCounter=39
IN: sz=16 data=F 27 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=40
OUT:4 28 29 32 3 
---KWPReceive sz=0 blockCounter=41
IN: sz=13 data=C 29 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=42
OUT:4 2A 29 1 3 
---KWPReceive sz=0 blockCounter=43
IN: sz=16 data=F 2B E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=44
OUT:4 2C 29 2 3 
---KWPReceive sz=0 blockCounter=45
IN: sz=16 data=F 2D E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=46
OUT:4 2E 29 32 3 
---KWPReceive sz=0 blockCounter=47
IN: sz=13 data=C 2F E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=48
OUT:4 30 29 1 3 
---KWPReceive sz=0 blockCounter=49
IN: sz=16 data=F 31 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=50
OUT:4 32 29 2 3 
---KWPReceive sz=0 blockCounter=51
IN: sz=16 data=F 33 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=52
OUT:4 34 29 32 3 
---KWPReceive sz=0 blockCounter=53
IN: sz=13 data=C 35 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=54
OUT:4 36 29 1 3 
---KWPReceive sz=0 blockCounter=55
IN: sz=16 data=F 37 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=56
OUT:4 38 29 2 3 
---KWPReceive sz=0 blockCounter=57
IN: sz=16 data=F 39 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=58
OUT:4 3A 29 32 3 
---KWPReceive sz=0 blockCounter=59
IN: sz=13 data=C 3B E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=60
OUT:4 3C 29 1 3 
---KWPReceive sz=0 blockCounter=61
IN: sz=16 data=F 3D E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=62
OUT:4 3E 29 2 3 
---KWPReceive sz=0 blockCounter=63
IN: sz=16 data=F 3F E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=64
OUT:4 40 29 32 3 
---KWPReceive sz=0 blockCounter=65
IN: sz=13 data=C 41 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=66
OUT:4 42 29 1 3 
---KWPReceive sz=0 blockCounter=67
IN: sz=16 data=F 43 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=68
OUT:4 44 29 2 3 
---KWPReceive sz=0 blockCounter=69
IN: sz=16 data=F 45 E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=70
OUT:4 46 29 32 3 
---KWPReceive sz=0 blockCounter=71
IN: sz=13 data=C 47 E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=72
OUT:4 48 29 1 3 
---KWPReceive sz=0 blockCounter=73
IN: sz=16 data=F 49 E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  text=842.40 rpm
type=35  a=0  b=50  text=0.00 l/h
------readSensors 2
---KWPSend sz=5 blockCounter=74
OUT:4 4A 29 2 3 
---KWPReceive sz=0 blockCounter=75
IN: sz=16 data=F 4B E7 24 A8 8 5 A 96 11 20 20 11 20 20 3 
count=4
type=36  a=168  b=8  text=430160.00 km
type=5  a=10  b=150  text=50.00 °C
type=17  a=32  b=32  text=
type=17  a=32  b=32  text=
------readSensors 50
---KWPSend sz=5 blockCounter=76
OUT:4 4C 29 32 3 
---KWPReceive sz=0 blockCounter=77
IN: sz=13 data=C 4D E7 24 A8 8 1 A2 1A 5 4F 6E 3 
count=3
type=36  a=168  b=8  text=430160.00 km
type=1  a=162  b=26  text=842.40 rpm
type=5  a=79  b=110  text=79.00 °C
------readSensors 1
---KWPSend sz=5 blockCounter=78
OUT:4 4E 29 1 3 
---KWPReceive sz=0 blockCounter=79
IN: sz=16 data=F 4F E7 8 A B0 7 64 0 1 A2 1A 23 0 32 3 
count=4
type=8  a=10  b=176  text=176.00  
type=7  a=100  b=0  text=0.00 km/h
type=1  a=162  b=26  t

ответ на ваш скетч

---KWP 5 baud init
bit0=0 startbit
bit1=1
bit2=0
bit3=0
bit4=0
bit5=0
bit6=0
bit7=0
bit8=0 parity
bit9=1 stopbit
 Rx: 55 Rx: 1 Rx: 8A Tx: 75 Rx: 1B Tx: E4 Rx: 1 Tx: FE Rx: F6 Tx: 9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 38 Tx: C7 Rx: 39 Tx: C6 Rx: 30 Tx: CF Rx: 36 Tx: C9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 31 Tx: CE Rx: 47 Tx: B8 Rx: 54 Tx: AB Rx: 20 Tx: DF Rx: 31 Tx: CE Rx: 2C Tx: D3 Rx: 39 Tx: C6 Rx: 6C Tx: 93 Rx: 20 Tx: DF Rx: 52 Tx: AD Rx: 34 Tx: CB Rx: 20 Tx: DF Rx: 45 Tx: BA Rx: 44 Tx: BB Rx: 43 Tx: BC Rx: 20 Tx: DF Tx: 3    END of ID_1

 Rx: 3 Rx: FC Tx: 2 Rx: FD Tx: 9 Rx: F6 Tx: 3    END of Present_1

 Rx: 7 Tx: F8 Rx: 3 Tx: FC Rx: 7 Tx: F8 Rx: 3 Tx: FC Rx: 7 Tx: F8 Rx: 3 Tx: 3     END of ID_2

 Tx: FC

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

ну вот, в скетче Александра, показывает уже параметры.  температуру, обороты. Вроде как эффект достигнут)

taha17
taha17 аватар
Offline
Зарегистрирован: 08.10.2017

MaksVV пишет:

ну вот, в скетче Александра, показывает уже параметры.  температуру, обороты. Вроде как эффект достигнут)

Что-то в этом есть ))) осталось полностью разобраться в этом скетче и добавить(проверить) друние PIDы

MaksVV
Offline
Зарегистрирован: 06.08.2015

ещё поправил #83

MaksVV
Offline
Зарегистрирован: 06.08.2015

вы должны составить таблицу какие параметры по 4 штуки присутствуют  в каждой странице параметров в программе VAG COM

taha17
taha17 аватар
Offline
Зарегистрирован: 08.10.2017

MaksVV пишет:

ещё поправил #83

Вот результат

---KWP 5 baud init
bit0=0 startbit
bit1=1
bit2=0
bit3=0
bit4=0
bit5=0
bit6=0
bit7=0
bit8=0 parity
bit9=1 stopbit
 Rx: 55 Rx: 1 Rx: 8A Tx: 75 Rx: 1B Tx: E4 Rx: 1 Tx: FE Rx: F6 Tx: 9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 38 Tx: C7 Rx: 39 Tx: C6 Rx: 30 Tx: CF Rx: 36 Tx: C9 Rx: 30 Tx: CF Rx: 32 Tx: CD Rx: 31 Tx: CE Rx: 47 Tx: B8 Rx: 54 Tx: AB Rx: 20 Tx: DF Rx: 31 Tx: CE Rx: 2C Tx: D3 Rx: 39 Tx: C6 Rx: 6C Tx: 93 Rx: 20 Tx: DF Rx: 52 Tx: AD Rx: 34 Tx: CB Rx: 20 Tx: DF Rx: 45 Tx: BA Rx: 44 Tx: BB Rx: 43 Tx: BC Rx: 20 Tx: DF Tx: 3    END of ID_1

 Rx: 3 Rx: FC Tx: 2 Rx: FD Tx: 9 Rx: F6 Tx: 3    END of Present_1

 Rx: 7 Tx: F8 Rx: 3 Rx: 7 Tx: F8 Rx: 3 Rx: 7 Tx: F8 Rx: 3

В скетче от Александра скорость стоит 19200 у Вас 115200. Может перейти на одну какую ??

По поводу блоков параметром, я два видоса тогда выкидывал... только уже их затер на ютюбе. ща на компе найду.

 

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

короче мой скетч можно ещё мучить и мучить. Берите Скетч Александра. 

/*
Arduino Nano OBD reader (OBD protocol KW1281,  Audi A4 B5 etc.)

wiring:
D2 --- OBD level shifter input (RX) (e.g. LM339)
D3 --- OBD level shifter output (TX) (e.g. LM339)
A5 --- Arduino 20x4 LCD display SCL
A4 --- Arduino 20x4 LCD display SDA

NOTE: For the level shifting, I used a 'AutoDia K409 Profi USB adapter', disassembled it,
      and connected the Arduino to the level shifter chip (LM339) - the original FTDI chip TX line
      was removed (so it does not influence the communication)                                                                                              
*/

#include <Wire.h>
#include "LiquidCrystal_I2C.h"
#include "NewSoftwareSerial.h"

#define pinKLineRX 2
#define pinKLineTX 3
#define pinLED 13
#define pinBuzzer 9
#define pinButton 10


// https://www.blafusel.de/obd/obd2_kw1281.html

#define ADR_Engine 0x01
#define ADR_Gears  0x02
#define ADR_ABS_Brakes 0x03
#define ADR_Airbag 0x15
#define ADR_Dashboard 0x17
#define ADR_Immobilizer 0x25
#define ADR_Central_locking 0x35

//#define DEBUG 1

LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x20 for a 16 chars and 2 line display
NewSoftwareSerial obd(pinKLineRX, pinKLineTX, false); // RX, TX, inverse logic

uint8_t currAddr = 0;
uint8_t blockCounter = 0;
uint8_t errorTimeout = 0;
uint8_t errorData = 0;
bool connected = false;
int sensorCounter = 0;
int pageUpdateCounter = 0;
int alarmCounter = 0;

uint8_t currPage = 1;


int8_t coolantTemp = 0;
int8_t oilTemp = 0;
int8_t intakeAirTemp = 0;
int8_t oilPressure = 0;
float engineLoad = 0;
int   engineSpeed = 0;
float throttleValve = 0;
float supplyVoltage = 0;
uint8_t vehicleSpeed = 0;
uint8_t fuelConsumption = 0;
uint8_t fuelLevel = 0;
unsigned long odometer = 0;


String floatToString(float v){
  String res; 
  char buf[16];      
  dtostrf(v,4, 2, buf); 
  res=String(buf);
  return res;
}

void disconnect(){
  connected = false;
  currAddr = 0;
}

void lcdPrint(int x, int y, String s, int width = 0){
  lcd.setCursor(x,y);
  while (s.length() < width) s += " ";
  lcd.print(s);
}

void obdWrite(uint8_t data){
#ifdef DEBUG
  Serial.print("uC:");
  Serial.println(data, HEX);
#endif
  obd.write(data);
}

uint8_t obdRead(){
  unsigned long timeout = millis() + 1000;  
  while (!obd.available()){
    if (millis() >= timeout) {
      Serial.println(F("ERROR: obdRead timeout"));
      disconnect();      
      errorTimeout++;
      return 0;
    }
  }
  uint8_t data = obd.read();
#ifdef DEBUG  
  Serial.print("ECU:");
  Serial.println(data, HEX);
#endif  
  return data;
}

// 5Bd, 7O1
void send5baud(uint8_t data){
  // // 1 start bit, 7 data bits, 1 parity, 1 stop bit
  #define bitcount 10
  byte bits[bitcount];
  byte even=1;
  byte bit;
  for (int i=0; i < bitcount; i++){
    bit=0;
    if (i == 0)  bit = 0;
      else if (i == 8) bit = even; // computes parity bit
      else if (i == 9) bit = 1;
      else {
        bit = (byte) ((data & (1 << (i-1))) != 0);
        even = even ^ bit;
      }
    Serial.print(F("bit"));      
    Serial.print(i);          
    Serial.print(F("="));              
    Serial.print(bit);
    if (i == 0) Serial.print(F(" startbit"));
      else if (i == 8) Serial.print(F(" parity"));    
      else if (i == 9) Serial.print(F(" stopbit"));              
    Serial.println();      
    bits[i]=bit;
  }
  // now send bit stream    
  for (int i=0; i < bitcount+1; i++){
    if (i != 0){
      // wait 200 ms (=5 baud), adjusted by latency correction
      delay(200);
      if (i == bitcount) break;
    }
    if (bits[i] == 1){ 
      // high
      digitalWrite(pinKLineTX, HIGH);
    } else {
      // low
      digitalWrite(pinKLineTX, LOW);
    }
  }
  obd.flush();
}


bool KWP5BaudInit(uint8_t addr){
  Serial.println(F("---KWP 5 baud init"));
  //delay(3000);
  send5baud(addr);
  return true;
}


bool KWPSendBlock(char *s, int size){
  Serial.print(F("---KWPSend sz="));
  Serial.print(size);
  Serial.print(F(" blockCounter="));
  Serial.println(blockCounter);    
  // show data
  Serial.print(F("OUT:"));
  for (int i=0; i < size; i++){    
    uint8_t data = s[i];
    Serial.print(data, HEX);
    Serial.print(" ");    
  }  
  Serial.println();
  for (int i=0; i < size; i++){
    uint8_t data = s[i];    
    obdWrite(data);
    /*uint8_t echo = obdRead();  
    if (data != echo){
      Serial.println(F("ERROR: invalid echo"));
      disconnect();
      errorData++;
      return false;
    }*/
    if (i < size-1){
      uint8_t complement = obdRead();        
      if (complement != (data ^ 0xFF)){
        Serial.println(F("ERROR: invalid complement"));
        disconnect();
        errorData++;
        return false;
      }
    }
  }
  blockCounter++;
  return true;
}

// count: if zero given, first received byte contains block length
// 4800, 9600 oder 10400 Baud, 8N1
bool KWPReceiveBlock(char s[], int maxsize, int &size){  
  bool ackeachbyte = false;
  uint8_t data = 0;
  int recvcount = 0;
  if (size == 0) ackeachbyte = true;
  Serial.print(F("---KWPReceive sz="));
  Serial.print(size);
  Serial.print(F(" blockCounter="));
  Serial.println(blockCounter);
  if (size > maxsize) {
    Serial.println("ERROR: invalid maxsize");
    return false;
  }  
  unsigned long timeout = millis() + 1000;  
  while ((recvcount == 0) || (recvcount != size)) {
    while (obd.available()){      
      data = obdRead();
      s[recvcount] = data;    
      recvcount++;      
      if ((size == 0) && (recvcount == 1)) {
        size = data + 1;
        if (size > maxsize) {
          Serial.println("ERROR: invalid maxsize");
          return false;
        }  
      }
      if ((ackeachbyte) && (recvcount == 2)) {
        if (data != blockCounter){
          Serial.println(F("ERROR: invalid blockCounter"));
          disconnect();
          errorData++;
          return false;
        }
      }
      if ( ((!ackeachbyte) && (recvcount == size)) ||  ((ackeachbyte) && (recvcount < size)) ){
        obdWrite(data ^ 0xFF);  // send complement ack        
        /*uint8_t echo = obdRead();        
        if (echo != (data ^ 0xFF)){
          Serial.print(F("ERROR: invalid echo "));
          Serial.println(echo, HEX);
          disconnect();
          errorData++;
          return false;
        }*/
      }
      timeout = millis() + 1000;        
    } 
    if (millis() >= timeout){
      Serial.println(F("ERROR: timeout"));
      disconnect();
      errorTimeout++;
      return false;
    }
  }
  // show data
  Serial.print(F("IN: sz="));  
  Serial.print(size);  
  Serial.print(F(" data="));  
  for (int i=0; i < size; i++){
    uint8_t data = s[i];
    Serial.print(data, HEX);
    Serial.print(F(" "));    
  }  
  Serial.println();
  blockCounter++;
  return true;
}

bool KWPSendAckBlock(){
  Serial.print(F("---KWPSendAckBlock blockCounter="));
  Serial.println(blockCounter);  
  char buf[32];  
  sprintf(buf, "\x03%c\x09\x03", blockCounter);  
  return (KWPSendBlock(buf, 4));
}

bool connect(uint8_t addr, int baudrate){  
  Serial.print(F("------connect addr="));
  Serial.print(addr);
  Serial.print(F(" baud="));  
  Serial.println(baudrate);  
  tone(pinBuzzer, 1200);    
  delay(100);
  noTone(pinBuzzer);            
  //lcd.clear();
  lcdPrint(0,0, F("KW1281 wakeup"), 20);
  lcdPrint(0,1, "", 20);
  lcdPrint(0,2, "", 20);  
  blockCounter = 0;  
  currAddr = 0;
  obd.begin(baudrate);       
  KWP5BaudInit(addr);
  // answer: 0x55, 0x01, 0x8A          
  char s[3];
  lcdPrint(0,0, F("KW1281 recv"), 20);
  int size = 3;
  if (!KWPReceiveBlock(s, 3, size)) return false;
  if (    (((uint8_t)s[0]) != 0x55) 
     ||   (((uint8_t)s[1]) != 0x01) 
     ||   (((uint8_t)s[2]) != 0x8A)   ){
    Serial.println(F("ERROR: invalid magic"));
    disconnect();
    errorData++;
    return false;
  }
  currAddr = addr;
  connected = true;  
  if (!readConnectBlocks()) return false;
  return true;
}
  
bool readConnectBlocks(){  
  // read connect blocks
  Serial.println(F("------readconnectblocks"));
  lcdPrint(0,0, F("KW1281 label"), 20);
  String info;  
  while (true){
    int size = 0;
    char s[64];
    if (!(KWPReceiveBlock(s, 64, size))) return false;
    if (size == 0) return false;
    if (s[2] == '\x09') break; 
    if (s[2] != '\xF6') {
      Serial.println(F("ERROR: unexpected answer"));
      disconnect();
      errorData++;
      return false;
    }
    String text = String(s);
    info += text.substring(3, size-2);
    if (!KWPSendAckBlock()) return false;
  }
  Serial.print("label=");
  Serial.println(info);
  //lcd.setCursor(0, 1);
  //lcd.print(info);      
  return true;
}

bool readSensors(int group){
  Serial.print(F("------readSensors "));
  Serial.println(group);
  lcdPrint(0,0, F("KW1281 sensor"), 20);  
  char s[64];
  sprintf(s, "\x04%c\x29%c\x03", blockCounter, group);
  if (!KWPSendBlock(s, 5)) return false;
  int size = 0;
  KWPReceiveBlock(s, 64, size);
  if (s[2] != '\xe7') {
    Serial.println(F("ERROR: invalid answer"));
    disconnect();
    errorData++;
    return false;
  }
  int count = (size-4) / 3;
  Serial.print(F("count="));
  Serial.println(count);
  for (int idx=0; idx < count; idx++){
    byte k=s[3 + idx*3];
    byte a=s[3 + idx*3+1];
    byte b=s[3 + idx*3+2];
    String n;
    float v = 0;
    Serial.print(F("type="));
    Serial.print(k);
    Serial.print(F("  a="));
    Serial.print(a);
    Serial.print(F("  b="));
    Serial.print(b);
    Serial.print(F("  text="));
    String t = "";
    String units = "";
    char buf[32];    
    switch (k){
      case 1:  v=0.2*a*b;             units=F("rpm"); break;
      case 2:  v=a*0.002*b;           units=F("%%"); break;
      case 3:  v=0.002*a*b;           units=F("Deg"); break;
      case 4:  v=abs(b-127)*0.01*a;   units=F("ATDC"); break;
      case 5:  v=a*(b-100)*0.1;       units=F("°C");break;
      case 6:  v=0.001*a*b;           units=F("V");break;
      case 7:  v=0.01*a*b;            units=F("km/h");break;
      case 8:  v=0.1*a*b;             units=F(" ");break;
      case 9:  v=(b-127)*0.02*a;      units=F("Deg");break;
      case 10: if (b == 0) t=F("COLD"); else t=F("WARM");break;
      case 11: v=0.0001*a*(b-128)+1;  units = F(" ");break;
      case 12: v=0.001*a*b;           units =F("Ohm");break;
      case 13: v=(b-127)*0.001*a;     units =F("mm");break;
      case 14: v=0.005*a*b;           units=F("bar");break;
      case 15: v=0.01*a*b;            units=F("ms");break;
      case 18: v=0.04*a*b;            units=F("mbar");break;
      case 19: v=a*b*0.01;            units=F("l");break;
      case 20: v=a*(b-128)/128;       units=F("%%");break;
      case 21: v=0.001*a*b;           units=F("V");break;
      case 22: v=0.001*a*b;           units=F("ms");break;
      case 23: v=b/256*a;             units=F("%%");break;
      case 24: v=0.001*a*b;           units=F("A");break;
      case 25: v=(b*1.421)+(a/182);   units=F("g/s");break;
      case 26: v=float(b-a);          units=F("C");break;
      case 27: v=abs(b-128)*0.01*a;   units=F("°");break;
      case 28: v=float(b-a);          units=F(" ");break;
      case 30: v=b/12*a;              units=F("Deg k/w");break;
      case 31: v=b/2560*a;            units=F("°C");break;
      case 33: v=100*b/a;             units=F("%%");break;
      case 34: v=(b-128)*0.01*a;      units=F("kW");break;
      case 35: v=0.01*a*b;            units=F("l/h");break;
      case 36: v=((unsigned long)a)*2560+((unsigned long)b)*10;  units=F("km");break;
      case 37: v=b; break; // oil pressure ?!
      // ADP: FIXME!
      /*case 37: switch(b){
             case 0: sprintf(buf, F("ADP OK (%d,%d)"), a,b); t=String(buf); break;
             case 1: sprintf(buf, F("ADP RUN (%d,%d)"), a,b); t=String(buf); break;
             case 0x10: sprintf(buf, F("ADP ERR (%d,%d)"), a,b); t=String(buf); break;
             default: sprintf(buf, F("ADP (%d,%d)"), a,b); t=String(buf); break;
          }*/
      case 38: v=(b-128)*0.001*a;        units=F("Deg k/w"); break;
      case 39: v=b/256*a;                units=F("mg/h"); break;
      case 40: v=b*0.1+(25.5*a)-400;     units=F("A"); break;
      case 41: v=b+a*255;                units=F("Ah"); break;
      case 42: v=b*0.1+(25.5*a)-400;     units=F("Kw"); break;
      case 43: v=b*0.1+(25.5*a);         units=F("V"); break;
      case 44: sprintf(buf, "%2d:%2d", a,b); t=String(buf); break;
      case 45: v=0.1*a*b/100;            units=F(" "); break;
      case 46: v=(a*b-3200)*0.0027;      units=F("Deg k/w"); break;
      case 47: v=(b-128)*a;              units=F("ms"); break;
      case 48: v=b+a*255;                units=F(" "); break;
      case 49: v=(b/4)*a*0.1;            units=F("mg/h"); break;
      case 50: v=(b-128)/(0.01*a);       units=F("mbar"); break;
      case 51: v=((b-128)/255)*a;        units=F("mg/h"); break;
      case 52: v=b*0.02*a-a;             units=F("Nm"); break;
      case 53: v=(b-128)*1.4222+0.006*a;  units=F("g/s"); break;
      case 54: v=a*256+b;                units=F("count"); break;
      case 55: v=a*b/200;                units=F("s"); break;
      case 56: v=a*256+b;                units=F("WSC"); break;
      case 57: v=a*256+b+65536;          units=F("WSC"); break;
      case 59: v=(a*256+b)/32768;        units=F("g/s"); break;
      case 60: v=(a*256+b)*0.01;         units=F("sec"); break;
      case 62: v=0.256*a*b;              units=F("S"); break;
      case 64: v=float(a+b);             units=F("Ohm"); break;
      case 65: v=0.01*a*(b-127);         units=F("mm"); break;
      case 66: v=(a*b)/511.12;          units=F("V"); break;
      case 67: v=(640*a)+b*2.5;         units=F("Deg"); break;
      case 68: v=(256*a+b)/7.365;       units=F("deg/s");break;
      case 69: v=(256*a +b)*0.3254;     units=F("Bar");break;
      case 70: v=(256*a +b)*0.192;      units=F("m/s^2");break;
      default: sprintf(buf, "%2x, %2x      ", a, b); break;
    }
    
    switch (currAddr){
      case ADR_Engine: 
        switch(group){
          case 3: 
            switch (idx){
              case 0: engineSpeed = v; break;
              case 1: supplyVoltage=v; break;
              case 2: coolantTemp =v; break;
              case 3: intakeAirTemp=v; break;
            }              
            break;
          case 11: 
            switch (idx){
              case 1: engineLoad=v; break;
              case 2: vehicleSpeed =v; break;
              case 3: fuelConsumption=v; break;
            }              
            break;
        }
        break;
      case ADR_Dashboard: 
        switch (group){ 
          case 1:  
            switch (idx){
              case 0: vehicleSpeed = v; break;
              case 1: engineSpeed = v; break;
              case 2: oilPressure = v; break;
            }
            break;
          case 2:
            switch (idx){
              case 0: odometer = v; break;
              case 1: fuelLevel = v; break;         
            }
            break;
          case 50:
            switch (idx){
              case 1: engineSpeed = v; break;
              case 2: oilTemp = v; break;
              case 3: coolantTemp = v; break;
            }
            break;
        }
        break;
    }
    if (units.length() != 0){
      dtostrf(v,4, 2, buf); 
      t=String(buf) + " " + units;
    }          
    Serial.println(t);
    
    //lcd.setCursor(0, idx);      
    //while (t.length() < 20) t += " ";
    //lcd.print(t);      
  }
  sensorCounter++;
  return true;
}

void alarm(){
  if (alarmCounter > 10) return;
  tone(pinBuzzer, 1200);    
  delay(100);
  noTone(pinBuzzer);   
  alarmCounter++;
}

void updateDisplay(){
  if (!connected){
    if ( (errorTimeout != 0) || (errorData != 0) ){
      lcdPrint(0,3, F("err to="));      
      lcdPrint(7,3, String(errorTimeout), 3);
      lcdPrint(10,3, F(" da="));      
      lcdPrint(14,3, String(errorData), 6);
    }
  } else {
    switch (currPage){
      case 1:      
        if (coolantTemp > 99){
          lcdPrint(0,1, F("COOL"));          
          alarm();          
        } else lcdPrint(0,1, F("cool"));
        lcdPrint(6,1,String(coolantTemp),3);                
        if ( (oilTemp > 99) || ((oilPressure != 30) && (oilPressure != 31)) ){          
          lcdPrint(10,1,F("OIL "));
          alarm();
        } else lcdPrint(10,1,F("oil "));        
        lcdPrint(14,1,String(oilPressure),3);        
        lcdPrint(0,2, F("rpm "));
        lcdPrint(4,2, String(engineSpeed),4);        
        lcdPrint(10,2, F("km/h "));
        lcdPrint(15,2, String(vehicleSpeed, 3));        
        lcdPrint(0,3, F("fuel "));
        lcdPrint(5,3, String(fuelLevel),3);        
        lcdPrint(10,3, F("odo "));
        lcdPrint(14,3, String(odometer),6);                        
        break;
      case 2:
        if (coolantTemp > 99){
          lcdPrint(0,1, F("COOL"));          
          alarm();          
        } else lcdPrint(0,1, F("cool"));
        lcdPrint(6,1,String(coolantTemp),3);                    
        lcdPrint(10,1, F("air "));          
        lcdPrint(14,1, String(intakeAirTemp), 3);                  
        lcdPrint(0,2, F("rpm "));
        lcdPrint(4,2, String(engineSpeed),4);        
        lcdPrint(10,2, F("km/h "));
        lcdPrint(15,2, String(vehicleSpeed, 3));                
        lcdPrint(0,3, F("fuel "));
        lcdPrint(5,3, String(fuelConsumption),3);                
        lcdPrint(10,3, F("volt "));
        lcdPrint(15,3, String(supplyVoltage),5);                                        
        break;
    }    
  }
  pageUpdateCounter++;
}

void setup(){      
  lcd.init();  
  lcd.backlight();      
  lcd.init();  
    
  pinMode(pinKLineTX, OUTPUT);  
  digitalWrite(pinKLineTX, HIGH);  
  
  pinMode(pinButton, INPUT);  
  pinMode(pinButton, INPUT_PULLUP);  
  
  pinMode(pinBuzzer, OUTPUT);
  /*tone(pinBuzzer, 1200);    
  delay(100);
  noTone(pinBuzzer);*/
  
  Serial.begin(19200);  
  Serial.println(F("SETUP"));            
        
  Serial.println(F("START"));       
}


void loop(){    
  
  if (digitalRead(pinButton) == LOW){    
    currPage++;
    if (currPage > 2) currPage = 1;
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print(F("page "));    
    lcd.print(currPage);    
    errorTimeout = 0;
    errorData = 0;            
    while (digitalRead(pinButton) == LOW);        
  }

  switch (currPage){
    case 1:      
      if (currAddr != ADR_Dashboard){        
        connect(ADR_Dashboard, 9600);
      } else  {
        readSensors(1);
        readSensors(2);
        readSensors(50);        
      }      
      break;
    case 2:
      if (currAddr != ADR_Engine) {
        connect(ADR_Engine, 9600);
      } else {
        readSensors(3);
        readSensors(11);
      }    
      break;   
  }        
  
  updateDisplay();          
}




вот там есть такое место, начиная со строки 607

switch (currPage){
    case 1:      
      if (currAddr != ADR_Dashboard){        
        connect(ADR_Dashboard, 9600);
      } else  {
        readSensors(1);
        readSensors(2);
        readSensors(50);        
      }      
      break;
    case 2:
      if (currAddr != ADR_Engine) {
        connect(ADR_Engine, 9600);
      } else {
        readSensors(3);
        readSensors(11);
      }    
      break;   

дак вот 1, 2, 50 ,  3 и 11 это группы параметров, я так понял, кооторые в программе VAG COM, горизонтально располагаются по 4 штуки. выберете которые вам нужны и смотрите в каких номерах групп они находятся

taha17
taha17 аватар
Offline
Зарегистрирован: 08.10.2017

ок) ща буду смотреть. Вот картинка блоков параметров. 

Для лучше видимости ссылка:

https://drive.google.com/open?id=17OoSP9jjrWb0emB8h4aTFuwXgkoCeYF7

MaksVV
Offline
Зарегистрирован: 06.08.2015

а вот здесь (строка 451) 

switch (currAddr){
      case ADR_Engine: 
        switch(group){
          case 3: 
            switch (idx){
              case 0: engineSpeed = v; break;
              case 1: supplyVoltage=v; break;
              case 2: coolantTemp =v; break;
              case 3: intakeAirTemp=v; break;
            }              
            break;
          case 11: 
            switch (idx){
              case 1: engineLoad=v; break;
              case 2: vehicleSpeed =v; break;
              case 3: fuelConsumption=v; break;
            }              
            break;
        }
        break;
      case ADR_Dashboard: 
        switch (group){ 
          case 1:  
            switch (idx){
              case 0: vehicleSpeed = v; break;
              case 1: engineSpeed = v; break;
              case 2: oilPressure = v; break;
            }
            break;
          case 2:
            switch (idx){
              case 0: odometer = v; break;
              case 1: fuelLevel = v; break;         
            }
            break;
          case 50:
            switch (idx){
              case 1: engineSpeed = v; break;
              case 2: oilTemp = v; break;
              case 3: coolantTemp = v; break;
            }
            break;
        }
        break;
    }

происходит расчет в зависимости от того, в каком столбце из 4 этот параметр находится

MaksVV
Offline
Зарегистрирован: 06.08.2015

проверьте в программе VAG в группе 3 параметров ДВС  должно располагаться так: 

engineSpeed     supplyVoltage       coolantTemp     intakeAirTemp

 

если да, то я прав. 

 

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

блин не совпадает чёто и да, ссылка не даёт зайти

MaksVV
Offline
Зарегистрирован: 06.08.2015

 #83 опять поправил

taha17
taha17 аватар
Offline
Зарегистрирован: 08.10.2017

------------------------------

taha17
taha17 аватар
Offline
Зарегистрирован: 08.10.2017

Вот:
1,1,Обороты двигателя, (760… 960 об/мин)

1,2,Время впрыска на один, оборот КВ (1.0… 2.5 мс)

1,3,Угол открытия ДЗ, (0… 5*)

1,4,Угол опережения зажигания, (12* до ВМТ)

2,1,Обороты двигателя, (760… 960 об/мин)

2,2,Время впрыска на один, оборот КВ (1.0… 2.5 мс)

2,3,Время впрыска на один, рабочий ход (2.0… 5.0 мс)

2,4,Количество воздуха, по ДМРВ (2.0… 4.0 г/с)

3,1,Обороты двигателя, (760… 960 об/мин)

3,2,Напряжение бортовой сети, АКБ (12.0… 14.5 В.)

3,3,Температура ОЖ, (80 — 105 *С)

3,4,Темпераура воздуха, на впуске *С

https://www.drive2.ru/b/1713909/

https://www.drive2.ru/b/1713912/

https://www.drive2.ru/b/1713913/?key=pHsNAAAAAABZhMgyZiHSCAAAOEO_ISFXwV_...