0
\$\begingroup\$

I have a CANBUS with 3 devices on it. A PLC (CAN IO 14+, HAWE), a HMI (Barth DMA-20) and a 6 button CAN enabled button panel (Greyhill).

The issue is, when I remove the display from the network (without disconnecting power) to simulate a case of cable break, the button panel stops working as well after 30 seconds or so. While debugging the issue I noticed that the state of the CANBUS changes to BUSHEAVY during this period and this can be resolved only by doing a full power reset.

In my code, both the PLC and the HMI continuously send out CAN messages to communicate with each other.

What am I doing wrong here and how may I avoid the BUSHEAVY state? Or, is it a system limitation that I have to live with?

\$\endgroup\$
  • \$\begingroup\$ How long is the bus? Which resistor termination are installed ? Do you use a sniffer for debug ? \$\endgroup\$ – Mathieu G. Jul 23 at 6:41
  • \$\begingroup\$ The bus is short around 1.2m We have 120ohm terminating resistors at both ends. I use PCAN view to see the CAN traffic. \$\endgroup\$ – Aman Kejriwal Jul 23 at 6:51
  • 1
    \$\begingroup\$ You cannot sensibly troubleshoot this without a CAN bus listener. Get one, start it, see what message that is getting spammed repeatedly, then take it from there. I'd strongly recommend using a professional listener with built-in CANopen frame interpreter that displays in plain English what each CAN message means in terms of CANopen. \$\endgroup\$ – Lundin Aug 11 at 9:27
1
\$\begingroup\$

The bus load is supposed to reduce when you take away a node. If it doesn't, you either have only one active node and the others are silent. Resulting in acknowledge error. Or the nodes misbehave protocol wise.

Look on the bus (silently) and see what happens to the messages. If they increase, the unit that sends them does not understand CAN bus and you should contact the manufacturer.

CAN bus frames are not supposed to be sent back-to-back, there is supposed to be a minimum interval of 10-100 ms or longer depending on bus speed. Maximum bus load should not exceed 50% in all conditions, typically you want less than 30% before serious jitter is inserted.

| improve this answer | |
\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.