LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Cycle time reading writing CANopen with NI9853

I have to move four motors synchronously. At the begining I use a cRIO and the CANopen industrial module NI9881 and I have obtained good results. When I need to move my proyect to the final stage, I wanted to move my proyect to SbRIO. But the module NI9881 is not compatible with SbRIO, then I have to use the module NI9853 which is CAN. Then CANopen have to be implemented in CAN.

I can read and write each word that I have configured in the canopen map, reading and writing is too slow.

With the 9881 module i read/write one word in 2ms, while with 9853 it takes 20 ms. This time is too long to make a realtime control.

So:

My can bit rate is 1Mbit/s.

Anybody knows how much time take the NI9853 to read or write a word?

 

Thanks

0 Kudos
Message 1 of 2
(2,511 Views)

Dear dsanzmerodio, 

 

When you are using the NI 9853 you would need to implement additional layers of the protocol that runs on FPGA so that it can support CANOpen.

 

Are you using an architecture such as https://decibel.ni.com/content/docs/DOC-7787 (CAN Engine Reference Example for LabVIEW FPGA)?

It has a basic implementation of CANOpen and allows using SDOs and PDOs on RT. I have used a modified version of this reference example to successfully synchronize 8 motors using CiA 402. I had used PDOs since they are faster in sending the position commands.

 

As for the speed of 1Mbit/s, this is the speed of the physical layer and is dependent on the cable lengths of the CAN netowork. The interval in which you can send repeated commands to the motors will depend on the FPGA loop rates (that run the CAN frame send/receive functions) and the RT loop rates (which manages the data in each CAN frame).

 

Hope this helps!

 

Cheers! Smiley Happy

0 Kudos
Message 2 of 2
(2,387 Views)