51

Re: Извлечение данных наддува из OBDII VAG

Какое значение оборотов по тахометру или по сканеру было?
В общем случае это просто данные в байтах D4 и D5. Например есть D4:D5 = 0x0AEC (hex - шестнадцатиричное) = 2796 (dec - десятичное). Возможно это и есть обороты в минуту... Нужны данные с чем это сравнить (сканер/тахометр).

52

Re: Извлечение данных наддува из OBDII VAG

Денис, CANNY пишет:

Но остается вопрос в интерпретации полученных данных давления - что будут означать данные в байтах 4 и 5?

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

53

Re: Извлечение данных наддува из OBDII VAG

Денис, CANNY пишет:

Не совсем понятно какова цель. Я имел в виду сопоставить значения давления, отображаемого в сканере и значения, получаемого в ответе на запрос по CAN, раз уж другой возможности установить связь между этими данными нет.
Из картинок первого сообщения мне удалось заметить:
заданное:
- сканер - 321,41 hPa (гектопаскаль) = 321,41х100 Па = 32141 Па
- CAN: 0x1012 = 4114.
   32141/4114=7,81 ~ 8.
Т.е., возможно, каждая единица из CAN соответствует 8 Па.

Вы наверное знали Денис, только не 8 а скорее всего 7,8125

Возможно, есть какая то инерционность или задержка в данных.
Завтра попробую больше данных снять скринами.
Оно неудобство, со скринов в ручную вписывать в таблицу...

54

Re: Извлечение данных наддува из OBDII VAG

Посмотрите, если интересно то же.

Вложений в сообщении

Иконка вложения Книга1.xlsx 21.46 кб, скачивался 90 раз, последний раз 2018-07-24 

55

Re: Извлечение данных наддува из OBDII VAG

Приветствую Денис.

Если интересно, то смог вычислить как 4 и 5 биты из сообщения с Can шины, интерпретируются в об/мин.

Запустил Can monitor;
Отправил запрос сканером на обороты;
Стал делать программой снимок экрана с данными, каждую секунду.
Затем со скриншотов, данные CAN совместил с с оборотными в Excel и пересчитал.
Получилось муторно, но результативно.

Пример:

Совмещаем 4 и 5 бит;
4 бит - 0x0B;
5 бит - 0x10;
   
совмещаем:
0B и 10 =    0B10;

- CAN: 0x0B10 = 2832;

2838/4 = 708 об/мин по тахометру.

Есть маленькая погрешность, но думаю без неё не как в данном случае, (инерционность)...

Таблица расчетов с логом прилагаю.

P.S. Может кому то и поможет для дальнейших расчетов в диаграмме CANNY.
Вот только с данными по наддуву, пока не смог до конца разобраться...
Только предположения...

56

Re: Извлечение данных наддува из OBDII VAG

Данные забыл прикрепить

Вложений в сообщении

Иконка вложения Обороты.xlsx 49.14 кб, скачивался 102 раз, последний раз 2018-07-25 

57

Re: Извлечение данных наддува из OBDII VAG

Отлично! Подход правильный. Небольшие погрешности могут быть, но они обычно пренебрежимо малы.
Х / 4, или X >> 2 (сдвиг вправо на 2) и вообще операции со степенями 2 - достаточно распространенный подход к кодированию данных в CAN. В данном случае обороты в CAN представлены в 0,25 об/мин, т.е. с точностью до 1/4 оборота.
С давлением я бы принял формулу D4:D5 х8 (<<3), как наиболее близкую, т.к. при оценке осредненных значений с определенным запаздыванием при отображении он дает приемлемый результат. Нужно пробовать и оценивать результат.

58

Re: Извлечение данных наддува из OBDII VAG

С напряжением оказалось еще проще.
D4D5>к десятичному виду и /4.
Результат /1000  и на выходе Напряжении в вольтах.

59

Re: Извлечение данных наддува из OBDII VAG

Денис, CANNY пишет:

Отлично! Подход правильный. Небольшие погрешности могут быть, но они обычно пренебрежимо малы.
Х / 4, или X >> 2 (сдвиг вправо на 2) и вообще операции со степенями 2 - достаточно распространенный подход к кодированию данных в CAN. В данном случае обороты в CAN представлены в 0,25 об/мин, т.е. с точностью до 1/4 оборота.
С давлением я бы принял формулу D4:D5 х8 (<<3), как наиболее близкую, т.к. при оценке осредненных значений с определенным запаздыванием при отображении он дает приемлемый результат. Нужно пробовать и оценивать результат.

На выходе датчика давления, напряжение в Милливольтах.
Характеристика зависимости, должна быть линейная.
Вполне возможно что умножать нужно на 8, но если более точным быть, то на 7,8125.
При такой операции, результат боле менее подходит.
Но надо ещё проверить досконально...

60

Re: Извлечение данных наддува из OBDII VAG

В чистом виде умножение D4:D5 на 8 (или даже 7,8125) применять нельзя - для больших значений получится переполнение, т.е. выход за максимальное значение переменной (16 бит => 65535). С умножением можно работать только с декапаскалями (Па х 10), т.е. данные из CAN поделить на 10 и умножить на 8 - получатся Па х 10.
Есть вариант пересчета с помощью блока "Отображение".

Вложений в сообщении

Иконка вложения pressure_map.cfd 698 б, скачивался 83 раз, последний раз 2018-07-25 

61

Re: Извлечение данных наддува из OBDII VAG

Денис, CANNY пишет:

В чистом виде умножение D4:D5 на 8 (или даже 7,8125) применять нельзя - для больших значений получится переполнение, т.е. выход за максимальное значение переменной (16 бит => 65535). С умножением можно работать только с декапаскалями (Па х 10), т.е. данные из CAN поделить на 10 и умножить на 8 - получатся Па х 10.

Ну как Вы выше писали, можно и сдвигом влево<<3 это решить.
Буду искать еще подходы.

62

Re: Извлечение данных наддува из OBDII VAG

Сдвиг влево на 3 эквивалентен х8. Уже при D4:D5=8838 (0х20C4) будет переполнение (макс. значение давления 655,35 х100 Па = 65535 Па, а максимальное значение в таблице 134633 Па). "Отображение" с Па х10 решает проблему. Попробуйте диаграмму в симуляторе - результаты очень неплохие.

63

Re: Извлечение данных наддува из OBDII VAG

Денис, CANNY пишет:

Сдвиг влево на 3 эквивалентен х8. Уже при D4:D5=8838 (0х20C4) будет переполнение (макс. значение давления 655,35 х100 Па = 65535 Па, а максимальное значение в таблице 134633 Па). "Отображение" с Па х10 решает проблему. Попробуйте диаграмму в симуляторе - результаты очень неплохие.

Для сравнения давлений я думаю, мне это и не надо.
А вот для решения http://forum.canny.ru/viewtopic.php?pid=7058#p7058 задачи, очень даже скорее всего.

64

Re: Извлечение данных наддува из OBDII VAG

Денис, CANNY пишет:

Уже при D4:D5=8838 (0х20C4) будет переполнение (макс. значение давления 655,35 х100 Па = 65535 Па, а максимальное значение в таблице 134633 Па)

Максимальное давление по сканеру может подняться до:
- сканер - 2468,57 hPa (гектопаскаль) = 2468,57х100 Па = 246857 Па

65

Re: Извлечение данных наддува из OBDII VAG

Тем более умножение без каких-либо дополнительных манипуляций не подойдет. Работа с декапаскалями (Па х10) решает эту проблему и дает минимальную погрешность.

66

Re: Извлечение данных наддува из OBDII VAG

Денис, CANNY пишет:

Тем более умножение без каких-либо дополнительных манипуляций не подойдет. Работа с декапаскалями (Па х10) решает эту проблему и дает минимальную погрешность.

Попробую разобраться..

67

Re: Извлечение данных наддува из OBDII VAG

Ну Вот Денис, перебрал 168 скринов со значениями.
Какой делаю вывод.
После перевода D4 и D5 к десятичному формату, значение выше 31000 не поднимается, это наддув на максимальных оборотах 6500 об/мин.
Это устраивает, так как я могу использовать значение не более 65535, то укладываюсь в параметры.
Диаграмма при сравнении, должна будет отрабатывать четко.
Поправьте Денис, если я не прав в чем то.

Но вот при выводе данных для отображения http://forum.canny.ru/viewtopic.php?pid=7058#p7058, получается загвоздка!

Вложений в сообщении

Иконка вложения Конечный.xlsx 46.83 кб, скачивался 111 раз, последний раз 2018-07-25 

68

Re: Извлечение данных наддува из OBDII VAG

Если для работы алгоритма можно использовать не само давление в Па, а его эквивалент - D4:D5 из CAN-сообщения, то хорошо и да, оно не будет больше 65535.
А для отображения на экране можно использовать гектопаскали (как в сканере) или декапаскали.

69

Re: Извлечение данных наддува из OBDII VAG

Денис, CANNY пишет:

А для отображения на экране можно использовать гектопаскали (как в сканере) или декапаскали.

Здесь есть небольшой нюанс.
Правильно принято пересчитывать давление со сканера, таким образом.
Пример:
- по сканеру: 1037,19 hPa >> 0.14 Bar
- по сканеру: 1582,63 hPa >> 0.58 Bar.
Формула:
(х - 1040)/1040 - где,
х - наше давление в сканаре;
1040 - поправка на атмосферное давление.
Принято считать не 1040, а 1000.

70

Re: Извлечение данных наддува из OBDII VAG

oniava пишет:

поправка:
***х - наше давление в сканере;
или величина снятая с сообщения в Can шине контроллера, приведенного к величине сканера.

71

Re: Извлечение данных наддува из OBDII VAG

Денис, окончательный вариант по Приёму и Отправки сообщений, под Вашим чутким руководством, получился такой:

Вложений в сообщении

Иконка вложения Запрос-ответ.cfd 5.81 кб, скачивался 87 раз, последний раз 2018-07-26 

72

Re: Извлечение данных наддува из OBDII VAG

Извиняюсь за флуд.

oniava пишет:
Денис, CANNY пишет:

А для отображения на экране можно использовать гектопаскали (как в сканере) или декапаскали.

Здесь есть небольшой нюанс.
Правильно принято пересчитывать давление со сканера, таким образом.
Пример:
- по сканеру: 1037,19 hPa >> 0.14 Bar
- по сканеру: 1582,63 hPa >> 0.58 Bar.
Формула:
(х - 1040)/1040 - где,
х - наше давление в сканаре;
1040 - поправка на атмосферное давление.
Принято считать не 1040, а 1000.

Денис, кажется я победил расчеты!
Всю голову сломал, как же сделать мне расчеты и чтобы использовались целые числа.
Изначально было такое решение:
Так как Зависимость линейная, то получается единый коэффициент для расчета - 7,8125!
Это значит:
- CAN: D4, D5;
- CAN: 0x1E2A = 7722;
- 7722*7,8125 ~ 60328,13 Pa. >> 603.28 hPa (совпадает со значением сканера).

Потом поиграв с расчётами, пришло такое решение:
Можно немного по другому, но результат тот же:
- CAN: D4, D5;
- CAN: 0x1E2A = 7722;
- 7722/12,8 ~ 60328,13 Pa. >> 603.28 hPa (совпадает со значением сканера).

Но для математических операций, нужны целые числа, погрешность, пусть даже минимальная не устраивает, вывел формулу для расчета тех же значений, только с целыми числами, заменив десятичное число - дробным:
- CAN: D4, D5;
- CAN: 0x1E2A = 7722;
- 7722/(64/5).

Но это, расчеты в Excel.
Возможно такую формулу использовать в диаграмме?

73

Re: Извлечение данных наддува из OBDII VAG

Да, формула получилась интересная, но результат все равно получается дробный, в Па х100. При этом десятые доли Паскаля все равно теряются. Это не учитывая, что данные давления в CAN тоже дают +/- 7,85Па/2, т.е. примерно +/- 4Па. Значит есть какая-то допустимая точность? Единицы Паскалей?
Так все-таки нужны реальные значения давления и не получается обойтись их эквивалентом - чистыми значениями, взятым из CAN?
По формулам:
7722/12,8 = 7722*10/128 = 77220>>7, но тут тоже в Па х100, и в цельночисленных операциях сотые теряются.
Есть другое решение:
Р=7722*7,8125=7722*(8-1/8-1/16)=(7722<<3)-(7722>>3)-(7722>>4) = 60239 Па. Остается проблема с переполнением. Точность до 10 Па решила бы ее. Или можно использовать 32-битную арифметику.

74

Re: Извлечение данных наддува из OBDII VAG

Для сравнения в диаграмме данных, всё устроит.
Значения не выходят за пределы 65535.
--
Проблема в отображении.
Отображаться должно в bar, а та и 10 и 100 важны.
0,01
0,11
0,29
1,11
1,23
1,45 и т.п.
Выше 1,7 не поднимется.
Не получается в диаграмме перевести значения с Can шины в bar.
Не силен я еще особо в этом.

75

Re: Извлечение данных наддува из OBDII VAG

Денис, CANNY пишет:

Есть другое решение:
Р=7722*7,8125=7722*(8-1/8-1/16)=(7722<<3)-(7722>>3)-(7722>>4) = 60239 Па. Остается проблема с переполнением. Точность до 10 Па решила бы ее. Или можно использовать 32-битную арифметику.

Денис, не работает Ваша формула.

Вложений в сообщении

Иконка вложения Конечный.xlsx 50.08 кб, скачивался 94 раз, последний раз 2018-07-26