Technical FAQs

Ask a Question

The CANOpen master of my IMC card loses sometimes slaves and / or the PLC stops without obvious reason.

It is not recommended to use CANOpen-related variables in other tasks but MAST because it can create instabilities.
For example here is a typical PDO mapping from an ATV71:

“_” is added at the end of each variable to clearly mark that they come from CANOpen.
Now to be able to use these variables in other tasks (like Freewheel_Task) global variables have to be created. These global variables act as an interface between MAST and Freewheel_Task.
For example it can be:
CMD_Eject : UINT;
LFRD_Eject : INT;
ETA_Eject : UINT;
RFRD_Eject : INT;
LCR_Eject : UINT;

Code has to be added in MAST task to copy from/to these variables:
CMD_Eject_ := CMD_Eject; // RPDO
LFRD_Eject_ := LFRD_Eject; // RPDO
ETA_Eject := ETA_Eject_; // TPDO
RFRD_Eject := RFRD_Eject_; // TPDO
LCR_Eject := LCR_Eject_; // TPDO

Now CANOpen-related variables are used in MAST task only and the machine should run without trouble.
Was this helpful?
What can we do to improve the information ?