1

Тема: Подмена байта

Многоуважаемые Форумчане, приветствую всех!
Чтобы не плодить новых тем, свой вопрос напишу в этой.
Помогите пожалуйста разобраться.
Собрал простенькую диаграмму.
Ловлю нужный байт и хочу подменить его содержимое.
Информация в этом байте меняется линейно от FF до 80.
Я хочу его подменить от 80 до FF
Диаграмма вроде ловит этот байт, и даже подменяет. Но значение не подменяется динамически а статочно на 7F.
Иногда проскакивает другое значение (приложил отчет сканера).

не могу понять какое условие не указал.

Заранее благодарен

Модераторское: вынесено в отдельную тему, см.правила

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

Иконка вложения 0812.txt 18.13 кб, скачивался 9 раз, последний раз 2025-12-08 

Иконка вложения myCanny_shluz_podmena_0812.cfd 5.79 кб, скачивался 11 раз, последний раз 2025-12-08 

2

Re: Подмена байта

Диаграмма вроде ловит этот байт, и даже подменяет. Но значение не подменяется динамически а статочно на 7F.

Возможно, вы не вполне поняли принцип работы блока #6. См.: https://canny.ru/docs/fbd/converters/map/

Исследуйте работу данного участка вашей диаграммы в симуляторе, при значении например =0 на его входе "Значение" данного блока.

Также см.: https://canny.ru/docs/tips_tricks/solut … ents_tips/

3

Re: Подмена байта

Константин, здравствуйте!
Я Вашего намека не понял smile
В симуляторе отработал блок "Отображение 6". Все работает четко.
В начале диаграммы проверил что пакет получаю в нужный байт. Зажигаю "лампочку" на контроллере.
По этому же принципу отбрасываю для блока "Отображение 6" нулевое значение в статичном состоянии не пропуская его в запись на уровне триггера 17.

Записал диаграмму с тестовым сигналом в CAN.
В D6 пишется то значение, которое насчитал счетчик 22 в момент когда я подал данные в CAN0 по ID381 в D6.

НО как только я откидываю тестовый сигнал и подключаю регистр чтения CAN0 D7:D6
Он пишет только 7F.

Подскажите, что я снова упускаю?

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

Иконка вложения myCanny_shluz_podmena_0812.cfd 7.13 кб, скачивался 10 раз, последний раз 2025-12-09 

4

Re: Подмена байта

В моем сообщении не содержалось намеков.
Посмотрите приложенную мной диаграмму, основанную на примере №4 (рисунок 5) отсюда: https://canny.ru/docs/c72duo/cangateway … ay-primery

Вы это пытаетесь сделать?

В дальнейшем, пожалуйста, см: https://forum.canny.ru/viewtopic.php?pid=9810#p9810

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

Иконка вложения myCanny_shluz_podmena_0812_RevA.cfd 3.82 кб, скачивался 13 раз, последний раз 2025-12-09 

5

Re: Подмена байта

Здравствуйте!
Я, конечно, не сомневался что заработает.
Ваше решение эстетичнее.
Я посмотрел Вашу описательную часть диаграммы.
Она намного проще, чем то что выдумывал я.
Скорее всего в этом я и заблудился.
Где-то что-то описал не так на чтение/запись...Иначе для меня осталось загадкой, почему блок Отображение с реальными данными не смог отработать адекватно.

Спасибо большое!

6

Re: Подмена байта

В вашей диаграмме я заменил блок Отображение на Вычитание+Сложение только из соображений экономии ресурсов контроллера. Всё будет работать и без этой замены.

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

Иконка вложения myCanny_shluz_podmena_0812_RevB.cfd 3.88 кб, скачивался 18 раз, последний раз 2025-12-09 

7

Re: Подмена байта

Да спасибо за наводки. Мне очень понравилось ваше решение о вычисление. красиво.
Но сейчас я буду дальше играться с диаграммой.
У меня в соседнем D7 байте тоже есть данные. Мне их тоже нужно переписать.
Поэтому я и рассматривал вариант с Масками замены.
После вашего примера я лишь снова убедился что нужно правильно задать вводные и выводные данные...
в частности маски.