1

Тема: Замена ID со сдвигом данных в пакете

Добрый день всем!
Упёрся в задачу и не пойму как её решить. Сама задача следующая:
Есть пакет с ID 205. В нём данные типа D0 D1 D2 D3 D4 D5 D6 D7
Необходимо сменить в нём ID на 102. С этим проблем не возникает. Но на выходе надо ещё сдвинуть данные с D2 на D1 и с D1 на D0
Если наглядно, то надо из пакета

ID   D0   D1   D2   D3   D4   D5   D6   D7
205  00   05    89   00    00   00    00   00

Отправить пакет

ID   D0   D1   D2   D3   D4   D5   D6   D7
102  05   89    00   00    00   00    00   00

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

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

Делать пытаюсь на 7.2 DUO

Подскажите пожалуйста 🙏

2

Re: Замена ID со сдвигом данных в пакете

См.пример №4 (рисунок №5) здесь: https://canny.ru/docs/c72duo/cangateway … ay-primery

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

Также, см: https://forum.canny.ru/viewtopic.php?pid=9810#p9810

3

Re: Замена ID со сдвигом данных в пакете

В общем долго мучался. Саму диаграмму родил давно, но всегда одна проблема - всё работает на ура, но некоторое время. Суть в том, что это данные тахометра. Из машины они вылетают с периодом в 10 мсек. И вот первые минут 40 работы всё хорошо. Потом canny начинает увеличивать период вплоть до 500 мсек. Само собой для корректной работы стрелки это ОЧЕНЬ много. Как это побороть?

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

Иконка вложения test.cfd 4.16 кб, скачивался 11 раз, последний раз 2025-05-29 

4

Re: Замена ID со сдвигом данных в пакете

Как это побороть?

Я бы посоветовал полностью исключить блок #1,  Детектор переднего фронта, соединив выход блока #2 с регистром старта передачи напрямую.

5

Re: Замена ID со сдвигом данных в пакете

Тоже самое. Он там появился в результате борьбы. Что с ним, что без него - результат один (

6

Re: Замена ID со сдвигом данных в пакете

Шина правильно терминирована? см.: https://forum.canny.ru/viewtopic.php?pid=8823#p8823
Регистры ошибки приема/передачи драйверов CAN обеих интерфейсов контролировали? см.: https://canny.ru/docs/c72duo/can/#sec-- … y-drajvera
Без лог-файлов обеих интерфейсов до/в момент сбоя сделать какие-либо дальнейшие выводы/предположения сложно.

7

Re: Замена ID со сдвигом данных в пакете

Какую версию CannyLab и какую версию системного ПО контроллера вы используете?

+ см. приложенную к сообщению диаграмму и п.5 здесь: https://canny.ru/docs/tips_tricks/solut … ents_tips/

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

Иконка вложения test_1.cfd 4.5 кб, скачивался 15 раз, последний раз 2025-05-29 

8

Re: Замена ID со сдвигом данных в пакете

Да. Шина терминирована верно. Подключал регистры ошибок через диоды. Эта была первая мысль. В результате ни один диод не засветился. Лог файлы? А как их снять?
CannyLab v 2.23
Системное ПО v 00249

9

Re: Замена ID со сдвигом данных в пакете

Лог файлы? А как их снять?

Либо при помощи двух других контроллеров в режиме CAN/LIN monitror: https://canny.ru/docs/canmon/
Либо при помощи сторонних CAN-анализаторов
+рекомендую все-таки проверить, как ведет себя приложенная мной ранее диаграмма.

10

Re: Замена ID со сдвигом данных в пакете

Приложенную диаграмму тестирую. Пока полёт нормальный. Работала минут 40 и время увеличилось до 20 мсек, но дальше, вроде, не растёт.
Я can-hacker снял трейс с машины и запускаю доску на столе. Им же, can-hacker, вижу увеличение периода отправки. Ну и стрелка начинает дёргаться.