1

Тема: Передача одного сообщения в КАН

Добрый день.
Извините за глупый вопрос, с программированием никогда не сталкивался.
Заказал CANNY 5.3 pico, ещё правда не получил.
Проверьте диаграмму, укажите на ошибки, пожалуйста.
В старый БМВ установлен блок управления тормозами от современной БМВ. Блок хочет увидеть сообщение о включении зажигания. Сообщение, например,такое - 0х999          AA  BB  CC  DD  EE
Задача: при включении зажигания питание подаётся на контроллер и он начинает передавать данное сообщение в КАН.
И ещё, в примерах я встречал похожие схемы, но там есть блоки про которые хочу спросить.
Что такое "Регистр уст. CAN ERL ? Что такое "Детектор переднего фронта (RED)? Для чего они применяются?

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

Иконка вложения Программа 2.cfd 880 б, скачивался 227 раз, последний раз 2020-01-07 

Программа 2.jpg, 155.91 кб, 813 x 481
Программа 2.jpg 155.91 кб, скачивался 238 раз, последний раз 2020-01-07 

2

Re: Передача одного сообщения в КАН

Можно сразу второй вопрос задам?
На панеле приборов старой БМВ горит лампа АБС, гаснет, когда провод (+12В), идущий от панели замыкается на массу.
Как сделать, что бы при появлении в КАН шине сообщения, например,   888      01  02  03  04  05  06  07 на выходном канале №8 появлялся минус?
Я подключаю +12В от панели к каналу №8 и при появлении в сети сообщения о том, что блок АБС гасит лампу, минус соединяется с плюсом и лампа на панеле тухнет. Извините за каламбур.
Да и, можно ли так подключаться к устройству или надо замыкать эти провода через реле?

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

Программа 3.jpg, 158.11 кб, 858 x 461
Программа 3.jpg 158.11 кб, скачивался 211 раз, последний раз 2020-01-08 

3

Re: Передача одного сообщения в КАН

Jekamaster пишет:

...Сообщение, например,такое - 0х999          AA  BB  CC  DD  EE...

Максимально возможный ID из стандартного диапазона 0x7FF.

Jekamaster пишет:

...Задача: при включении зажигания питание подаётся на контроллер и он начинает передавать данное сообщение в КАН.

Если планируется использовать контроллер таким образом (подавать на него питание только при включении зажигания, при этом контроллер должен все время работы отправлять нужное сообщение), то для активации генератра ШИМ можно на вход "Старт" этого блока установить константу "1" (см. вложение).

Jekamaster пишет:

...примерах я встречал похожие схемы, но там есть блоки про которые хочу спросить.
Что такое "Регистр уст. CAN ERL ? Что такое "Детектор переднего фронта (RED)? Для чего они применяются?

Примеры приема и отправки сообщений в CAN можно найти на форуме и в описании драйвера CAN на wiki.
Регистр установки CAN ERL используется для установки длинны передаваемого сообщения, а также некоторых его дополнительных параметров. Более подробную информацию о назначении регистров драйвера CAN можно также найти в wiki.
Детектор переднего фронта, при появлении на своем входе логической "1" выдает на свой выход "1" на один цикл выполнения диаграммы. Более подробное описание функциональных блоков и особенностей их работы можно найти в соответствующем разделе wiki.

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

Иконка вложения Программа 2_1.cfd 1.48 кб, скачивался 231 раз, последний раз 2020-01-08 

4

Re: Передача одного сообщения в КАН

Jekamaster пишет:

...Как сделать, что бы при появлении в КАН шине сообщения, например,   888      01  02  03  04  05  06  07 на выходном канале №8 появлялся минус?
Я подключаю +12В от панели к каналу №8 и при появлении в сети сообщения о том, что блок АБС гасит лампу, минус соединяется с плюсом и лампа на панеле тухнет...

В приведенном фрагменте диаграммы не верно использованы регистры. Пример приема сообщения CAN можно найти в описании драйвера CAN на wiki. Для использования канала контроллера в качестве выхода, необходимо правильно задать его конфигурацию и устанавливать в его регистр выходного значения "1" при наступлении ожидаемого события. Подробнее о работе каналов в режиме выхода можно узнать в wiki.

Jekamaster пишет:

...можно ли так подключаться к устройству или надо замыкать эти провода через реле?...

Все зависит от параметров внешнего сигнала. Каналы контроллера CANNY 5.3 pico адаптированы для работы в слаботочных (до 100мА) цепях автомобиля.

5

Re: Передача одного сообщения в КАН

Максимально возможный ID из стандартного диапазона 0x7FF.
Ясно, мой ID будет 0х130.

По Вашему замечанию исправил свою первую диаграмму. Но есть вопросы.
При установке длины отправляемого сообщения (Рег. уст. CAN ERL) значение константы должно иметь вид 5 или 0х0005 или без разницы?
Почему то при добавлении Детектора переднего фронта(RED) в симуляторе диаграмма не работает, в конце всегда 0?
Спасибо за ссылки на wiki, я их уже нашёл, но хотелось бы перевода на человеческий язык smile
Проверьте диаграмму, первая будет передавать сообщение 0х130     45  41  21  8F  E0. Информация не проверенная, потом подключу Canny Can Monitor к машине на которой есть такой блок и проверю сообщение.
Со второй диаграммой немного сложнее, там, скорее всего, ID будет один, а меняться будут какие то байты в зависимости от того, горит лампа АБС и нет. Но это проверим когда подключу Canny Can Monitor.
Константа "Подтянут к минусу" это значит будет минус на выходе контроллера?

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

Иконка вложения Программа 4.jpg 179.07 кб, скачивался 91 раз, последний раз 2020-01-08 

Иконка вложения Программа 5.cfd 966 б, скачивался 233 раз, последний раз 2020-01-08 

Программа 5.jpg, 142.58 кб, 878 x 444
Программа 5.jpg 142.58 кб, скачивался 213 раз, последний раз 2020-01-08 

6 (08-01-2020 23:55:00 отредактировано Jekamaster)

Re: Передача одного сообщения в КАН

Не смог отправить четвёртый файл. Удалить добавленный сказано не могу- нет прав. По этому добавляю вторую диаграмму.

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

Иконка вложения Программа 4.cfd 992 б, скачивался 209 раз, последний раз 2020-01-08 

7

Re: Передача одного сообщения в КАН

Jekamaster пишет:

...При установке длины отправляемого сообщения (Рег. уст. CAN ERL) значение константы должно иметь вид 5 или 0х0005 или без разницы?...

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

Jekamaster пишет:

...Почему то при добавлении Детектора переднего фронта(RED) в симуляторе диаграмма не работает, в конце всегда 0?...

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

Jekamaster пишет:

...Константа "Подтянут к минусу" это значит будет минус на выходе контроллера?...

Данная конфигурация используется в основном при использовании контактк в качестве входа. Это значит что контакт контроллера, в исходном состоянии, будет иметь постоянную подтяжку к минусу и при появлении плюса на данном контакте в регистре входного значения этого канала появится значение "1". И, соответственно, на выходе данного канала, при отсутствии внешних сигналов, будет также присутствовать слабый минус.

В приложенной диаграмме не использован блок "Детектор переднего фронта" - диаграмма будет работать не корректно - контроллер будет пытыться отправлять сообщение на каждом цикле выполенения диаграммы, на котором в регистр отправки сообщения CAN будет записываться "1", т. е в течении 50мс (примерно 10 раз подряд в течении 50мс).

8

Re: Передача одного сообщения в КАН

Jekamaster пишет:

Не смог отправить четвёртый файл. Удалить добавленный сказано не могу- нет прав. По этому добавляю вторую диаграмму.

Так работать не будет. Если нужно принимать конкретное сообщение с конкретным содержанием, то следует использовать примеры диаграмм приема сообщений CAN из wiki.
в приложенной диаграмме не определен потенциал выхода в состоянии ВКЛ. Также на выход канала 8 будет отправляться "1" при наличии в регистре приема IDL указанного значения, которое может быть не актуальным в определенных условиях. Кроме того остальные регистры принятых данных CAN никак не контролируются - выход должен будет активироваться вне зависимости от их значений.

9

Re: Передача одного сообщения в КАН

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

10

Re: Передача одного сообщения в КАН

По приему сообщений. Можно просмотреть пример отсюда.

11

Re: Передача одного сообщения в КАН

Поясните, почему в Справочнике по встроенным функциональным блокам в описании Триггер D в шаге 1 и шаге 4 одинаковые значения на входах, но разные значения на выходе?

12

Re: Передача одного сообщения в КАН

В Справочнике по встроенным функциональным блокам многие примеры выполнены в виде пошаговых действий и должны рассматриваться как последовательные операции. Шаг 4 следует за шагом 3, на котором была выполнена запись значения "15" на выход триггера (значение с входа D предано на выход при наличии не нулевого значения на входе E).

13

Re: Передача одного сообщения в КАН

Подскажите по диаграммам, какая будет правильная? Я научился отправлять одно сообщении, теперь хочу отправить два. Вроде всё списал с Ваших примеров, но всё равно есть вопросы. В диаграмме с детектором переднего фронта "1" появляется в конце только один раз, проверял на симуляторе пошагово. Хотя если запустить симулятор и понажимать на паузу, то вроде "1" пробегает два раза.
Отправляю ID 130  45 40 21 8F FE и ID 380  43 5A 34 38 32 31 32.
И ещё вопрос, ID 380 это ВИН машины, если перевожу CZ48212 то получается 43 5A 34 38 32 31 32, а если перевожу cz48212 то получается 63 7A 34 38 32 31 32 . Заглавные и строчные буквы это разное значение или как это понимать?

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

Иконка вложения Передача id 130 и 380 с детектором переднего фронта.cfd 3.72 кб, скачивался 217 раз, последний раз 2020-01-22 

Иконка вложения Передача id 130 и 380.cfd 3.66 кб, скачивался 239 раз, последний раз 2020-01-22 

14

Re: Передача одного сообщения в КАН

Jekamaster пишет:

Подскажите по диаграммам, какая будет правильная? Я научился отправлять одно сообщении, теперь хочу отправить два. Вроде всё списал с Ваших примеров, но всё равно есть вопросы. В диаграмме с детектором переднего фронта "1" появляется в конце только один раз, проверял на симуляторе пошагово. Хотя если запустить симулятор и понажимать на паузу, то вроде "1" пробегает два раза.

Правильная диаграмма с детектором фронта. Если его не использовать, то одно и то же сообщение будет пытаться отправляться на каждом проходе диаграммы в течении 50мс (т.е. может отправиться 10-20 раз забивая шину). В симуляторе и установите контрольную точку на регистре Начала передачи в CAN и запустите диаграмму (в обычном, не пошаговом режиме). Ориентируясь по счетчику времени можно увидеть, что при установленном детекторе переднего фронта сообщения будут уходить по очереди, периодически, с интервалом 100мс.

Jekamaster пишет:

И ещё вопрос, ID 380 это ВИН машины, если перевожу CZ48212 то получается 43 5A 34 38 32 31 32, а если перевожу cz48212 то получается 63 7A 34 38 32 31 32 . Заглавные и строчные буквы это разное значение или как это понимать?

Заглавные и строчные символы имеют разные коды ASCII. Устанавливайте соответствующие константы правильно, как это должно передаваться в CAN (заглавные или строчные символы).

15

Re: Передача одного сообщения в КАН

Jekamaster пишет:

Но это проверим когда подключу Canny Can Monitor.

А разве на CANNY 5.3 pico, CAN Monitor работает?

16

Re: Передача одного сообщения в КАН

Кан монитор доступен на канни 7, 7.2дуо и 5.3пико.