Ошибка драйвера 11 в TransmitCANFrame XL_ERR_QUEUE_IS_FULL

Я использую CANCase VN1640A между 2 ЭБУ, чтобы подделать сообщение CAN. Ниже настройки моделирования моста:

введите описание изображения здесь

В моем коде CAPL полученные сообщения от канала 1 будут перенаправлены на канал 3 и наоборот. (Пока я не фальсифицирую сообщения)

variables{
message can1. msgCAN1;
message can3. msgCAN3;
}

on message can1.{
 msgCAN3=this;

 if(this.dir == rx)
 output(msgCAN3);
}

on message can3.{
 msgCAN1 = this;

 if(this.dir == rx)
 output(msgCAN1);
}

Но когда я запускаю CANoe, я получаю это сообщение об ошибке:

введите описание изображения здесь

Эта ошибка означает, что CANoe пытается отправить больше, чем может. Буфер передачи переполнен. Я изменил конфигурацию оборудования Размер очереди передачи на максимум 32768 сообщений, а также Задержку приема на очень высокую, но, к сожалению, ошибка возникает снова.

Есть ли у кого-нибудь подсказки, которые могут помочь решить эту проблему, и заранее спасибо.


person aaGargoura    schedule 09.12.2019    source источник
comment
Есть ли ресивер? Также размер очереди передачи до 32768 сообщений - это ерунда, CAN - это шина реального времени, и если у вас есть столько ожидающих сообщений, вы убьете все, что в реальном времени.   -  person Lundin    schedule 09.12.2019
comment
Можете ли вы подтвердить, например наблюдая за окном трассировки, сообщение появляется только один раз для каждой шины? Может, вы их дублируете.   -  person M. Spiller    schedule 09.12.2019
comment
Ваш сетевой узел Mainip присутствует как на шине CAN1, так и на CAN3, CAN1 получил некоторые сообщения, а узел Mainip переадресовал сообщения на CAN3, до этого все выглядит нормально. Я бы посоветовал вам проверить, правильно ли подключен приемник к CAN3? проверьте наличие резистора 120 Ом между CANH и CANL! проверьте назначение канала для CAN3, проверьте скорость передачи в CANoe, вы также можете показать трассировку? вы также можете назначить CAN3 виртуальным и посмотреть, удаляются ли сообщения об ошибках, только для проверки настройки   -  person Om Choudhary    schedule 10.12.2019
comment
CAN1 получил несколько сообщений, а узел Mainip вывел сообщения на CAN1 и CAN3, здесь вы можете использовать output(CAN3.msgCAN3).   -  person Om Choudhary    schedule 10.12.2019
comment
@ M.Spiller В окне трассировки каждое сообщение, идентифицированное его идентификатором, появляется при его получении (rx) и при перенаправлении (tx). Так что дублирования нет.   -  person aaGargoura    schedule 10.12.2019
comment
@OmChoudhary У меня есть резистор между CANH и CANL, скорость передачи составляет 500 Кбод. Со стороны конфигурации оборудования это правильно. Это поведение объясняется ниже. Спасибо за подсказки.   -  person aaGargoura    schedule 10.12.2019
comment
@OmChoudhary Я уже объявил в коде msgCAN3 как сообщение can3. msgCAN3; поэтому нет необходимости снова указывать канал CAN   -  person aaGargoura    schedule 10.12.2019
comment
Вы видите какое-либо сообщение CAN от CAN3? Можете ли вы создать новую трассировку и назначить только CAN3 и показать нам, что вы видите?   -  person Om Choudhary    schedule 10.12.2019


Ответы (3)


Пожалуйста, проверьте отображение оборудования в CANoe. Эта ошибка чаще всего возникает, когда отображение неверно или нарушено. Перейдите в меню «Оборудование» -> «Конфигурация сетевого оборудования» -> «Драйвер» -> выберите соответствующий канал для векторного оборудования. введите описание изображения здесь

Надеюсь, это поможет !

person Nikhil    schedule 03.01.2020
comment
У нас было много фреймов ошибок на шине CAN. Теперь он отлично работает после исправления фреймов ошибок. - person aaGargoura; 13.01.2020

Сообщение об ошибке может означать, что CANoe пытается отправить больше, чем мог. Буфер передачи переполнен. Это может быть вызвано несколькими причинами:

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

Инструмент Vector обеспечивает тест цикла:

Отправлять сообщения с канала 1 на канал 3. Если все работает нормально, похоже, проблема вызвана вашей конфигурацией CANoe.

Необходимые тестовые программы входят в состав файлов установки векторного драйвера и находятся в папке Common. Вы можете загрузить файл установки драйвера с www.vector.com/driver-setup.

Тест CAN Highspeed Looptest: http://kb.vector.com/entry/589/

Низкоскоростной Looptest CAN: http://kb.vector.com/entry/590/

введите описание изображения здесь Если цикл тестирования работает нормально, вы можете увидеть время, загруженность шины и т. д. В противном случае вы получите сообщение об ошибке. введите описание изображения здесь

Примечание.

  • Уменьшите количество каналов, используемых в CANoe / CANalyzer, в:

    Конфигурация | Параметры | Измерение | Общие | Использование канала.

  • Есть ли больше выбранных каналов в конфигурации CANoe, чем назначенных CANcab в аппаратной конфигурации Vector?

    (Пуск | Панель управления | Оборудование и звук | Оборудование Vector)

  • Пожалуйста, проверьте канал и назначение приложения в Vector Hardware Config.

person Om Choudhary    schedule 10.12.2019
comment
Эта ошибка НЕ ​​означает, что CANoe пытается отправить больше, чем могла бы. Вместо этого это означает: у нас (много) фреймов ошибок на шине CAN. Я уже добавляю ответ на этот вопрос - person aaGargoura; 10.12.2019
comment
это означает, что при отправке возникают кадры ошибок, и поэтому карта не может отправить. пожалуйста, предоставьте более подробную информацию к вашему ответу, заявление, которое я сказал, никому не помогает - person Om Choudhary; 10.12.2019

Таким образом, эта ошибка НЕ ​​означает, что CANoe пытается отправить больше, чем может.

Вместо этого это означает: у нас есть (много) кадров ошибок на шине CAN. CANoe пытается отправить сообщения, которые не работают (по какой-либо причине) -> в результате возникают кадры ошибок. Контроллер CAN попытается отправить кадр еще раз, что может снова привести к кадру ошибки. Теперь со временем запросы на отправку накапливаются и приводят к новым ошибкам. В какой-то момент буфер для фреймов ошибок действительно переполняется, что приводит к сообщению, которое вы видите в окне записи.

Решение: мы должны проверить окно трассировки и проверить, какие фреймы ошибок мы там получаем (а затем принять соответствующие меры для их предотвращения).

person aaGargoura    schedule 10.12.2019