1 (06-07-2021 15:18:11 отредактировано Philippov_khv)

Тема: передача данных с одного ID в другой с пересчетом значений.

Здравствуйте, подскажите пожалуйста ,какой пример посмотреть, что взять за основу для решения следующей задачи

читаем значения с ID 0x0253 c 4го(условно значение X ) и 5го(условно значение Y)  байт , делим их на 3 и затем пишем результаты деления в ID 0x02D1 в 1й( условно X/3 ) и 2й (условно Y/3)
периодично 10мс.

Пояснение - читаем сигнал скорости автомобиля с блока управления АКПП, а пишем в блок управления ДВС.
В штате путь прохождения пакетов таков
Блок АБС --> панель приборов --> блок управления ДВС.
Но в данном случае нет ни блока АБС, ни панели штатной. Есть только два источника данных о скорости - в шине с блока управления АКПП (данные о скорости вращения выходного вала АКПП - равносильно датчику скорости)
и Аналоговый датчик скорости.
Считаю логичнее брать первичный сигнал из шины.

Очень прошу подсказки. Спасибо.

Адаптер 5.2, софт 1,4

2

Re: передача данных с одного ID в другой с пересчетом значений.

Посмотрите здесь:

https://forum.canny.ru/viewtopic.php?id=798

https://forum.canny.ru/viewtopic.php?id=550

3 (07-07-2021 10:11:23 отредактировано Philippov_khv)

Re: передача данных с одного ID в другой с пересчетом значений.

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

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

Спасибо .

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

Иконка вложения c52_Селектор и ТОЖ ШИМ nissan _1a_T_панель_speed..cfd 12.1 кб, скачивался 140 раз, последний раз 2021-07-07 

акпп-двс_скорость1.jpg, 45.92 кб, 432 x 368
акпп-двс_скорость1.jpg 45.92 кб, скачивался 124 раз, последний раз 2021-07-07 

4

Re: передача данных с одного ID в другой с пересчетом значений.

Можно использовать операции побитового сдвига.

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

Иконка вложения shift.cfd 1.1 кб, скачивался 136 раз, последний раз 2021-07-07 

shift.png, 21.24 кб, 852 x 314
shift.png 21.24 кб, скачивался 121 раз, последний раз 2021-07-07 

5

Re: передача данных с одного ID в другой с пересчетом значений.

Спасибо за ответ, взгляните пожалуйста на диаграмму? что я делаю не так? 
Не могу понять - подписанные входы логических операций ИЛИ (блоки 37 и 38) - откуда брать значения?
В таком виде как есть скорость по ДВС - 255. Не соображу вообще откуда это значение.

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

Иконка вложения c52_Селектор и ТОЖ ШИМ nissan _1a_T_панель_speed_1..cfd 12.09 кб, скачивался 133 раз, последний раз 2021-07-07 

6

Re: передача данных с одного ID в другой с пересчетом значений.

откуда брать значения?

Из ваших данных (см.рисунок)

На вашей диаграмме вы не полностью задали параметры передаваемого сообщения: не указана его длина (8 байт), идентификатор (0x2D1) и значения остальных байт сообщения D0,D3,D4,D5,D6,D7. Как расположить байты сообщения в регистрах показано здесь: https://youtu.be/144XLtzwjt4?t=338

Данная модель контроллера снята с производства, но примеры передачи сообщения для него все еще можно найти здесь: https://wiki.canny.ru/index.php/CANNY_5 … 1.80.D1.8B

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

акпп-двс_скорость1_2.jpg, 51.23 кб, 432 x 368
акпп-двс_скорость1_2.jpg 51.23 кб, скачивался 132 раз, последний раз 2021-07-07 

7

Re: передача данных с одного ID в другой с пересчетом значений.

Параметры эти? они заданы в самом начале диаграммы. Все верно сделано?

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

Screenshot_1.png, 12.59 кб, 444 x 195
Screenshot_1.png 12.59 кб, скачивался 124 раз, последний раз 2021-07-07 

8 (07-07-2021 14:51:39 отредактировано Philippov_khv)

Re: передача данных с одного ID в другой с пересчетом значений.

Спасибо! Отдельное спасибо за то что не сделали ЗА, а пнули в нужном направлении.
Заработал проброс в таком виде. Значения пошли, но с завышением в 3 раза.  Осталось сделать пересчет под главную пару. Делитель на 3,1.
Думаю умножить на 10 и поделить на 31.

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

Иконка вложения c52_Селектор и ТОЖ ШИМ nissan _1a_T_панель_speed_12.cfd 12.39 кб, скачивался 138 раз, последний раз 2021-07-07 

9

Re: передача данных с одного ID в другой с пересчетом значений.

Параметры эти? они заданы в самом начале диаграммы. Все верно сделано?

Да, эти. Верно. Я их не заметил.

Спасибо!

На здоровье! Всегда готовы помочь.

Думаю умножить на 10 и поделить на 31.

Это должно сработать.

10 (08-07-2021 15:58:15 отредактировано Philippov_khv)

Re: передача данных с одного ID в другой с пересчетом значений.

И снова здравствуйте, помогите пожалуйста составить алгоритм -
Все теже згначения Х и Y.

исходные значения Х меняются от 0 до FF , при достижении FF значение Y меняется - добавляется 1.
то-есть
скорость 0-9кмч по живым данным  X от 0 до FF  Y - 00
скорость 10-19 кмч   X от 00 до FF                       Y - 01
Скорость 20-29 кмч   X от 00 до FF                       Y - 02
и так далее. похоже будто десятки и единицы. 255/10=25.5
(шаг 10, до 180 ,18 ступеней)

Но на принимающей стороне эти значения трактуются иначе, вот так -
скорость 0-25    X от 0 до FF  , Y - 00
скорость 25-51  X от 0 до FF  , Y - 01
скорость 51-76  X от 0 до FF   ,Y - 02
скорость 76-102 X от 0 до FF   , Y- 03
скорость 102-127  X от 0 до FF ,  Y - 04
скорость 127-153 X от 0 до FF   ,  Y- 05
Скорость 153-179 X от 0 до FF  ,   Y - 06

То-есть получается шаг 25-26 кмч. и 6 ступеней(достаточно 6)
не десятки и единицы. Скорее всего имеется ввиду X/10. (255/10=25.5) !! Обратный коэффициент от первого значения.

дальше считать нет смысла , быстрее автомобиль вряд-ли  поедет, хотя программно  достижимы значения до 255


В целом картина бьется с необходимым делителем  3,1.  (18/6 =3,грубо)

Я не программист, я автоэлектрик, не могу придумать алгоритм пересчета. Хотя общую суть картины вижу.
просто делить значения на 3,1 (на 3) не получается. Мусор на выходе, ничего похожего на то что надо.
прошу помощи.


Разве что попробовать смасштабировать  обе переменные?
Спасибо.

11

Re: передача данных с одного ID в другой с пересчетом значений.

Готов оплатить составление нужного алгоритма, части диаграммы.

12

Re: передача данных с одного ID в другой с пересчетом значений.

попробовал через такую формулу, через перевод в кмч -
кмч=(x*10)/FF+Y*10
затем выделяю X и Y
Y=кмч/25
X=((кмч-Y*25)*FF)/25

не работает.
Диаграмма ниже. Может там ошибка.

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

Иконка вложения c52_Селектор и ТОЖ ШИМ nissan _1a_T_панель_speed_15.cfd 14.59 кб, скачивался 126 раз, последний раз 2021-07-09 

13 (09-07-2021 18:16:17 отредактировано Константин, CANNY)

Re: передача данных с одного ID в другой с пересчетом значений.

Судя по всему, X и Y в ваших данных представляют младший и старший байт значения соответственно.
В этом случае, их нужно поменять местами при помощи циклического сдвига: https://canny.ru/docs/fbd/bitwise_opera … lar_shift/
Линейное преобразование чисел удобно производить с помощью функционального блока Отображение (MAP): https://canny.ru/docs/fbd/converters/map/
Вариант решения см. во вложении.

UPD: Заменена диаграмма - после масштабирования байты значения возвращены к исходному порядку

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

Иконка вложения c52_Селектор и ТОЖ ШИМ nissan _1a_T_панель_speed_15_2.cfd 12.97 кб, скачивался 128 раз, последний раз 2021-07-09 

14 (10-07-2021 03:03:02 отредактировано Philippov_khv)

Re: передача данных с одного ID в другой с пересчетом значений.

Константин, спасибо за отклик, но не работает.
Сейчас опишу происходящее.
Подключены канхакер и диагностический сканер.
Вот данные.
Когда все в покое обе скорости в нулях, при появлении исходных данных скорость по принимающей стороне по сканеру сразу в 255.Останавливаем выходной вал, скорости снова в нули.


Про масштабирование я знаю, использовал этот блок ранее ,хорошая вещь.
Но тут видимо иная логика преобразования.
С картинок видно что значения X пишутся в Y. Сейчас попробую заменить местами. понять бы только где это надо делать)

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

Screenshot_2.png, 6.46 кб, 354 x 279
Screenshot_2.png 6.46 кб, скачивался 122 раз, последний раз 2021-07-10 

Screenshot_3.png, 6.58 кб, 348 x 284
Screenshot_3.png 6.58 кб, скачивался 114 раз, последний раз 2021-07-10 

15

Re: передача данных с одного ID в другой с пересчетом значений.

У вас есть возможность приложить реальные логи по ID 253 и ID 2D1 снятые при работающей диаграмме из сообщения #8 https://forum.canny.ru/viewtopic.php?pid=9778#p9778 в этой ветке? Не рисунки, не картинки а именно реальные, текстовые лог-файлы записанные в людой программе мониторинга CAN.

16

Re: передача данных с одного ID в другой с пересчетом значений.

Philippov_khv пишет:

С картинок видно что значения X пишутся в Y. Сейчас попробую заменить местами. понять бы только где это надо делать)

Это можно понять, прочитав мое сообщение #13 https://forum.canny.ru/viewtopic.php?pid=9783#p9783 в этой ветке:

Константин, CANNY пишет:

В этом случае, их нужно поменять местами при помощи циклического сдвига

и

Константин, CANNY пишет:

UPD: Заменена диаграмма - после масштабирования байты значения возвращены к исходному порядку

Таких блоков на диаграмме всего два - до блока MAP и после. Очевидно, что вам нужно убрать тот, который после.

Но на сколько я могу судить по вашей исходной картинке из сообщения #3 https://forum.canny.ru/viewtopic.php?pid=9773#p9773 в этой ветке, в постановке задачи порядок следования X и Y в сообщениях с ID 253 и ID 2D1 был одинаковый

17 (10-07-2021 11:38:55 отредактировано Philippov_khv)

Re: передача данных с одного ID в другой с пересчетом значений.

Вот файл. примерно 30 сек работы в движении.

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

Иконка вложения 253-2D1_.rar 94.11 кб, скачивался 128 раз, последний раз 2021-07-10 

18 (10-07-2021 11:40:22 отредактировано Philippov_khv)

Re: передача данных с одного ID в другой с пересчетом значений.

Вот отредактированный,без лишнего.

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

Иконка вложения 253-2D1_.rar 94.11 кб, скачивался 125 раз, последний раз 2021-07-10 

19 (11-07-2021 07:19:00 отредактировано Philippov_khv)

Re: передача данных с одного ID в другой с пересчетом значений.

Заработало.
Не знаю как и почему в таком виде, по идее не должно . Но факт - работает. Практически методом научного тыка.
Выкладываю на ваш суд)

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

Иконка вложения c52_Селектор и ТОЖ ШИМ nissan _1a_T_панель_speed_16_OK.cfd 12.93 кб, скачивался 148 раз, последний раз 2021-07-11 

Иконка вложения c52_Селектор и ТОЖ ШИМ nissan _1a_T_панель_speed_16_OK_1.cfd 12.34 кб, скачивался 134 раз, последний раз 2021-07-11 

20

Re: передача данных с одного ID в другой с пересчетом значений.

На здоровье!
Успехов вам в ваших проектах.

21

Re: передача данных с одного ID в другой с пересчетом значений.

Спасибо огромное Вам лично и всей группе разработчиков. Данный проект удался во многом благодаря адаптеру канни.
Исполняет функции индикации, управления вентилятором системы охлаждения - уже давно и стабильно.
- добавлено
Трансляция скорости (это дает нормальную работу системы изменения фаз) - уже работает.
Работа ручного режима переключения передач. - в процессе, в принципе уже работает.
Выдача импульсов скорости из шины в аналоге на панель приборов с пересчетом  - в планах.

Скажем так - собирать весь этот компот на рассыпухе или на куче сток блоков от разных машин - так себе вариант. А тут - маленькая коробочка за бардачком и всё.
Отличный продукт ,спасибо!