can-buscaplcanoe

Driver error 11 in TransmitCANFrame XL_ERR_QUEUE_IS_FULL


I am using a CANCase VN1640A between 2 ECUs in order to falsify a CAN message. Below the bridge simulation setup:

enter image description here

In my CAPL Code, the received messages from channel 1 will be redirected to channel 3 and vice-versa. (So far I am not falsifying any message)

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);
}

But when I start CANoe I get this Error message:

enter image description here

This error means that CANoe tries to send more as it could. The transmit buffer is overflowed. I have changed the hardware configuration of Transmit Queue size to the max 32768 messages, also the Receive Latency to very fast but unfortunately the error occur again.

Does anyone have any hints that could help to solve this problem and thanks in advance.


Solution

  • So this error does NOT mean that CANoe tries to send more as it could.

    It means instead: We have (many) error frames on the CAN bus. CANoe tries to send messages which does not work (for whatever reason) -> error frames are the result. The CAN controller will retry to send the frame which might again lead to an error frame. Now over time the Send Requests accumulate and lead to further error frames. At some point the buffer for the error frames does overflow which leads to the message you see in the write window.

    Solution: We have to check the Trace Window and check what kind of error frames we get there (and then take suitable measures to prevent them).