1

Тема: Lin шлюз

Добрый день.
Подскажите есть задача сделать шлюз lin шины.
Во вложении диаграмма с рабочим шлюзом.
Canny подключен в разрыв и все устройства которые сидят на этой шине работают.
Есть одна проблема, пропала функция "комфорт", нет дотягивания стекол.
Стеклоподъемники сидят на id:016 и id:017. Управление идет по id:015
Где может быть ошибка ?

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

Иконка вложения lin шлюз.cfd 14.08 кб, скачивался 71 раз, последний раз 2020-12-02 

2 (03-12-2020 14:44:29 отредактировано AlexN)

Re: Lin шлюз

Где может быть ошибка ?

Я не врач, но я взглянул...

Стеклоподъемники сидят на id:016 и id:017

Совпадение? (см.картинку)
Не думаю.

А так конечно, кто сидит, какой комфорт, что до чего не дотягивает, зачем, где и главное кто вообще сможет понять что тут ошибка а что нет - не понятно.

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

ups.jpg, 68.73 кб, 683 x 159
ups.jpg 68.73 кб, скачивался 52 раз, последний раз 2020-12-03 

3

Re: Lin шлюз

AlexN пишет:

Где может быть ошибка ?

Я не врач, но я взглянул...

Стеклоподъемники сидят на id:016 и id:017

Совпадение? (см.картинку)
Не думаю.

А так конечно, кто сидит, какой комфорт, что до чего не дотягивает, зачем, где и главное кто вообще сможет понять что тут ошибка а что нет - не понятно.

Ошибка скорей всего в другом.
По id:015 передаются не все данные. Не все данные именно по D0

4

Re: Lin шлюз

В Вашей диаграмме не формируются сообщения MULTISLAVE для отправки на запросы мастера: нет регистра передачи данных в LIN2; нет перегрузки данных, полученных от SLAVE, в регистры передачи LIN2.
Пример организации LIN MULTISLAVE приведен в документации: https://canny.ru/docs/c7/lin/#sec--c7-l … multislave

5

Re: Lin шлюз

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

В Вашей диаграмме не формируются сообщения MULTISLAVE для отправки на запросы мастера: нет регистра передачи данных в LIN2; нет перегрузки данных, полученных от SLAVE, в регистры передачи LIN2.
Пример организации LIN MULTISLAVE приведен в документации: https://canny.ru/docs/c7/lin/#sec--c7-l … multislave

Дополнил диаграмму, но не взлетело. Передача идет всех данных, кроме одного значения в ID:0x0015, в D0

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

Иконка вложения lin шлюз_1.cfd 16.53 кб, скачивался 53 раз, последний раз 2020-12-03 

6

Re: Lin шлюз

К сожалению, в новой диаграмме не верно задается номер дополнительного буфера и, соответственно, индексы коммутаторов №№99...104. В результате получается путаница. При получении 0x15 заполнится буфер 0, при получении 0x16 заполнится буфер 0 (но со своими  данными, т.е. данными от 0x15), при получении 0x17 заполнится буфер 1 (данными от 0x16); буфер 2 никогда не будет заполнен, ответов на запросы от мастера по третьему ID формироваться не будет. Также, поскольку это шлюз, не верно устанавливаются ID для ответа на запросы мастера: 0x16 LIN1 = 0x0E LIN2; 0x17 LIN1 = 0x0F LIN2.
В предыдущем варианте диаграммы было верное назначение номеров буферов LIN2 - каждому сообщению назначался свой буфер.

7 (04-12-2020 13:17:06 отредактировано AlexN)

Re: Lin шлюз

Dimus пишет:

Дополнил диаграмму, но не взлетело. Передача идет всех данных, кроме одного значения в ID:0x0015, в D0

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

8 (04-12-2020 22:15:32 отредактировано Dimus)

Re: Lin шлюз

AlexN пишет:
Dimus пишет:

Дополнил диаграмму, но не взлетело. Передача идет всех данных, кроме одного значения в ID:0x0015, в D0

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

Я смотрю "Доктор" продолжает давать советы, хотя сам матчасть наверно плохо знает.

9

Re: Lin шлюз

Dimus пишет:
AlexN пишет:
Dimus пишет:

Дополнил диаграмму, но не взлетело. Передача идет всех данных, кроме одного значения в ID:0x0015, в D0

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

Я смотрю "Доктор" продолжает давать советы, хотя сам матчасть наверно плохо знает.

Похоже "доктор" с диагнозом не ошибся. А небольшая аллергическая реакция это нормально.

10 (11-12-2020 22:47:42 отредактировано Dimus)

Re: Lin шлюз

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

К сожалению, в новой диаграмме не верно задается номер дополнительного буфера и, соответственно, индексы коммутаторов №№99...104. В результате получается путаница. При получении 0x15 заполнится буфер 0, при получении 0x16 заполнится буфер 0 (но со своими  данными, т.е. данными от 0x15), при получении 0x17 заполнится буфер 1 (данными от 0x16); буфер 2 никогда не будет заполнен, ответов на запросы от мастера по третьему ID формироваться не будет. Также, поскольку это шлюз, не верно устанавливаются ID для ответа на запросы мастера: 0x16 LIN1 = 0x0E LIN2; 0x17 LIN1 = 0x0F LIN2.
В предыдущем варианте диаграммы было верное назначение номеров буферов LIN2 - каждому сообщению назначался свой буфер.

Поправил диаграмму, все получилось для 3-x id шлюз работает четко. Спасибо за помощь.

Другая проблема, при увеличении шлюза до 6 id, теряются данные. По id:0F теряются данные.

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

Иконка вложения Шлюз 6 id.cfd 13.61 кб, скачивался 61 раз, последний раз 2020-12-11 

11 (17-02-2021 19:14:21 отредактировано Константин, CANNY)

Re: Lin шлюз

Dimus пишет:

...Другая проблема, при увеличении шлюза до 6 id, теряются данные. По id:0F теряются данные.

Не совсем понятно что происходит. Не передаются SLAVEу или не возвращаются MASTERу?
Судя по диаграмме может быть и то и другое. ID=0x0F имеет наименьший приоритет и отправляется SLAVEу в последнюю очередь, а так как период отправки запросов 30мс, то возможно не успевают отправиться все предыдущие сообщения и до последних просто не доходит очередь.
Также режим MULTISLAVE поддерживает работу только с 4 буферами сообщений, т.е. 0...3 (см. https://canny.ru/docs/c7/lin/#sec--c7-l … multislave). Дополнительных буферов передачи LIN 4, 5 и 6 - не существует.

UPDATE: Начиная с версии CannyLab 2.8 в режиме LIN MULTISLAVE доступно 8 буферов сообщений

12

Re: Lin шлюз

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

...Другая проблема, при увеличении шлюза до 6 id, теряются данные. По id:0F теряются данные.

Не совсем понятно что происходит. Не передаются SLAVEу или не возвращаются MASTERу?
Судя по диаграмме может быть и то и другое. ID=0x0F имеет наименьший приоритет и отправляется SLAVEу в последнюю очередь, а так как период отправки запросов 30мс, то возможно не успевают отправиться все предыдущие сообщения и до последних просто не доходит очередь.
Также режим MULTISLAVE поддерживает работу только с 4 буферами сообщений, т.е. 0...3 (см. https://canny.ru/docs/c7/lin/#sec--c7-l … multislave). Дополнительных буферов передачи LIN 4, 5 и 6 - не существует.

В моем случае, получается не передаются SLAVEу...
Я правильно понимаю, что одним контроллером у меня не получится  реализовать шлюз, где есть 6 id ?

13

Re: Lin шлюз

Dimus пишет:

Я правильно понимаю, что одним контроллером у меня не получится  реализовать шлюз, где есть 6 id ?

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

14 (17-02-2021 19:13:28 отредактировано Константин, CANNY)

Re: Lin шлюз

Dimus пишет:

Я правильно понимаю, что одним контроллером у меня не получится  реализовать шлюз, где есть 6 id ?

Ответил в почту.

UPDATE: Начиная с версии CannyLab 2.8 в режиме LIN MULTISLAVE доступно 8 буферов сообщений