NMT telegram

Solving the communication problem needs to happen before anything else, or we are just wasting time.

  • Yes, module work like a manager.
  • Servodrives connected to CANopen module.
  • Servodrives in CANopen mode
  • Servodrives’s NODE-ID is the same like in CM CANopen module.
  • Baudrate is the same for all nodes (125kbit/s)
  • Servodrives is in POWER ON and don’t have any buses or faults.

Yet the LED is still green and blinking indicating Pre-Operational state?



The CM CANopen connector of the module uses only four wires (GND, SHLD, CAN_L, CAN_H). I only used 3 wires in the servo port Invt (GND, CAN_L, CAN_H). Perhaps I still need a 5V wire? But I can’t get it from CM CANopen module…

And that is the root of your problem.

You need to provide 5V to your CAN bus.

Can I gt 5V signal from CaNopen module? Have I get it from external power supply?


No, you cannot get 5V from the CM CANopen. You will need to use your own power supply.

INVT support told me that they never use 5V signal in CANopen. Only 3 signals: CAN_H, CAN_L, GND.

The 5V is not a signal. It’s to supply the bus power so that CAN high and low can be between 2.5V and 3.75V and 2.5V and 1.25V, respectively.

What are the voltages you are currently reading from CAN High and CAN Low?


CM CANopen module is on RUN status. Green LED is ON.

I’ve just added terminal 120 Ohm resistors on the first and last devices.

Next step is using process data.

I believe these are the ones you need for CANopen (not transparent CAN):

CM CANopen Function Blocks V13 Ver. 2.0.0_V14.zip (415.2 KB)

However, at this point you should be focused on the configuration in the CM CANopen Configuration Studio.

Do you mean to choose correct index? In this way?

I’m not sure what you mean…

You would use CM CANopen Configuration Studio to configure your CANopen network, import slave devices, configure CANopen manager, mapping PDOs, etc. You can viuew the manual by going to the Help tab and ‘View Help’.


I wanted to share with you some demos from Christian, included are the latest function blocks as well:

Demos for CANopen and Transparent CAN

Some hints for CANopen Manager mode:

CM CANopen Configuration Studio
The complete configuration is done with the CM CANopen Configuration Studio.


  • values that must be configured once after power on / reset of a device can be also configured with the CM CANopen Configuration Studio.
  • These values will be part of the configuration of the slave that is stored on the CM CANopen.
  • CM CANopen will automatically configure the slave with the stored configuration after power on / reset of the slave

SDO commands of the PLC application:

  • the use of SDO commands is not recommended except values that cannot be mapped in PDOs but that are necessary to control the network.
  • Otherwise there is not need for SDO commands.

Revised CM CANopen library (CM CANopen Function Blocks V13 Ver. 2.0.0_V14.zip)

This library provides the library for CANopen mode and transparent CAN mode:

> FBs: ReadSDO, WriteSDO
> data types: SDO_ReadData / SDO_WriteData

Transparent CAN:
> FC: SendReceiveErrorCode
> data types: CANFrames, FCN_1_CANIDList

CANopen Demo.zip (7.0 MB)

Transparent CAN Demo.zip (6.1 MB)

About descrip. on manual.

As I can understand I have to create to function blocks (FB) RDREC and WRREC, right?
Add there inputs and outputs paramenters, right?

Hi there!

It’s been a long time…
Have I copy this function to my project?

Will be it work?

If I understand the description of the protocol correctly, then I need to work with PDO. Because I have four servos and the SDO will not be enough, because there are only 4 bytes in the SDO.

Or, for the devices to work, I need several such functions, which I will add to the organizational block (Main) for each servo separately in order to assign different IDs?


I created FB RDREC and WRREC
Is it right?

But have some problems when adding INDEX
0090h - for RDREC
0091h - for WRREC
When entering data, it gives out as a syntax error!

As I can see on Christian’s example he used function (FC) instead function block (FB).

May be is it better way for me?