1 (09-05-2023 15:42:22 отредактировано Witnessy)

Тема: Время передачи и приема пакетов CAN шины

Добрый день!

Разработал диаграмму, в которой отправляется запрос в CAN шину и принимается ответ на этот запрос.
Схема работает нестабильно. Подозрение на то, что Canny7.2duo не успевает получить ответ, пропускает его. По измерениям ответ приходит в туже миллисекунду, что и отправляется запрос. Других пакетов в шине нет.
Как время работы диаграммы сказывается на скорость приема пакетов CAN шины?
Какое время между отправкой и приемом пакетов CAN шины в контроллере?

2

Re: Время передачи и приема пакетов CAN шины

Как время работы диаграммы сказывается на скорость приема пакетов CAN шины?

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

Какое время между отправкой и приемом пакетов CAN шины в контроллере?

В синхронном режиме - когда диаграмма незамедлительно отправляет сообщение CAN в ответ на прием сообщения из CAN, задержка будет приблизительно равна длительности программного цикла.

3

Re: Время передачи и приема пакетов CAN шины

Т.е. если отправить пакет в CAN шину и в туже миллисекунду приходит ответ, то контроллер должен его принять вне зависимости от времени выполнения диаграммы?

В какой момент происходит отправка пакета в CAN шину, сразу после выполнения последнего блока диаграммы?

4

Re: Время передачи и приема пакетов CAN шины

Т.е. если отправить пакет в CAN шину и в туже миллисекунду приходит ответ, то контроллер должен его принять вне зависимости от времени выполнения диаграммы?

Отвечено в предыдущем сообщении.

В какой момент происходит отправка пакета в CAN шину, сразу после выполнения последнего блока диаграммы?

см.: https://canny.ru/docs/common_plc/execut … spolneniya

5

Re: Время передачи и приема пакетов CAN шины

Спасибо.

6 (14-05-2023 14:44:28 отредактировано Байкалец)

Re: Время передачи и приема пакетов CAN шины

Можно напишу в эту же тему, так как вопрос примерно тот же.

Более менее разобрался с написанием диаграмм. Создал диаграмму которая посылает пакет, ждет отзыва блока и после посылает еще серию пакетов. Все отлично работает.

Но сейчас появилась обратная задача. Нужно отправить запрос блоку по CAN, получить на него ответ, снова отправить пакет что я готов принять серию пакетов и получить эту серию (5 пакетов). И у меня непонятка в схеме приема этих 5 пакетов. Каждый цикл диаграммы будет обрабатывать только 1 пакет. А если они будут приходить быстрее чем цикл диаграммы. То есть за один цикл придут 3 пакета. Второй пакет пропадет? Или они все пойдут в буфер и на каждый цикл диаграммы в последующем из буфера в регистр будет выводится очередной пакет?

7

Re: Время передачи и приема пакетов CAN шины

Ещё вопрос про прием CAN пакетов.
Когда две шины CAN0 и CAN1, как работает буфер и возможные задержки выполнения диаграммы связанные с приемом пакетов?

Заметил особенность, что при отправке сообщений в CAN0 прием сообщений CAN1 более стабильный, сч ем это может быть связано?

8

Re: Время передачи и приема пакетов CAN шины

Байкалец пишет:

...И у меня непонятка в схеме приема этих 5 пакетов. Каждый цикл диаграммы будет обрабатывать только 1 пакет. А если они будут приходить быстрее чем цикл диаграммы. То есть за один цикл придут 3 пакета. Второй пакет пропадет? Или они все пойдут в буфер и на каждый цикл диаграммы в последующем из буфера в регистр будет выводится очередной пакет?

Глубина входного буфера CAN CANNY 7.2 Duo равна 6 сообщениям.
Таким образом, если за один цикл диаграммы контроллер получит несколько сообщений, то все они будет помещены в приемный буфер, при условии наличии свободного места в нем. В регистры приема драйвера CAN эти сообщения будут помещаться последовательно, по одному сообщению за каждый цикл диаграммы. Если место в приемном буфере кончится, то очередной принятое сообщение будет отброшено, а в регистре переполнения СAN установится значение "1"

9

Re: Время передачи и приема пакетов CAN шины

Witnessy пишет:

Ещё вопрос про прием CAN пакетов.
Когда две шины CAN0 и CAN1, как работает буфер и возможные задержки выполнения диаграммы связанные с приемом пакетов?

Заметил особенность, что при отправке сообщений в CAN0 прием сообщений CAN1 более стабильный, сч ем это может быть связано?

CAN0 и CAN1 работают независимо друг от друга, но в общем потоке исполнения. Таким образом, бОльшая загруженность одной из шин может лишь замедлить обработку событий второй шины, а не наоборот. Рассуждения о причинах того или иного поведения контроллера не имея перед глазами диаграммы, лог файлов CAN, схемы подключения контроллера и возможно осцилограмм CAN, скорее всего будут непродуктивными.