Real-Time Measurement and Control

cancel
Showing results for 
Search instead for 
Did you mean: 

Utilizing cRIO FPGA for commanding EtherCat Slaves (maxon EPOS4/MAXPOS motor controller)

Solved!
Go to solution

We're currently in a design phase of an embedded control system for a 3-DOF system. Here, we would like to optimize slave command rate, and would prefer to do so on FPGA. We are assuming a communication string of about 500 bits per slave (about 15 unsigned integers).

 

The most straightforward option would seem to be via C-series CAN modules, which seem to be able to be operated directly via FPGA. However, at a max rate of 1 Mbit/sec, this would reduce theoretical rates to 2 kHz, given a single CAN output per slave.

 

EtherCat would serve as a viable alternative, and is currently available for Maxon EPOS4 or MAXPOS motor controllers. Given a max rate of 100 Mbit/sec, 3-slave system could theoretically operate on a 66 kHz loop time. However, previously found information seems to indicate that cRIO EtherCat communication can only be done on the RT (scan engine mode) level, limiting the loop time to whatever is achievable on the RT-engine. Realistically, this would seem to be more in the order of 1 to 10 kHz.

 

 

Ideally, we would like to place the speed bottleneck of the control loop closer to the bandwidth of the EtherCat protocol (100 Mbit/s). Furthermore, we would prefer using FPGA if possible, for added robustness of the overall system.

 

Is there any way for us to directly communicate with these EtherCat slaves via FPGA? Under the assumption that the EtherCat ports of the cRIO cannot be reconfigured, is it possible to add a C-series module (similar to the CAN approach) that allows for FPGA-EtherCat slave communication (e.g. the cRIO ECAT S card)? 

 

Thank you for your input on this matter.

0 Kudos
Message 1 of 4
(3,955 Views)
Solution
Accepted by topic author JSmits

Hi JSmits,

 

You're well informed. The cRIO ECAT S is the only EtherCAT device that is directly accessible from FPGA. As you know, it's a slave and does not have master functionality. 

I'm guessing you've seen some of our RT EtherCAT master benchmarks (here, for example).

From FPGA, you'll achieve max bandwidth using the CAN card you mentioned.

One potentially interesting thing you could look at is using an Industrial Controller. The IC-3171/2/3 can act as three EtherCAT masters simultaneously (still using RT / Scan Engine), so you could parallelize your data.

Andrew T.
"His job is to shed light, and not to master" - Robert Hunter
0 Kudos
Message 2 of 4
(3,938 Views)
Solution
Accepted by topic author JSmits

I have also looked into this and it is as you described. It's pretty disappointing because it really keeps you from using the full power of EtherCAT.  

0 Kudos
Message 3 of 4
(3,932 Views)

Thank you both for your input.

 

To summarize: currently only direct FPGA<->fieldbus communication possible via CAN, using dedicated C-series modules.

 

Considering the above, we will first try hard-wiring FPGA-controlled analog outs directly to the EPOS4 drives. This should theoretically set the bottleneck at 10 kHz for the 12-bit readout of the EPOS4.

 

Would be very interested to see a C-series module come out that allows a cRIO FPGA to act as an EtherCat Master.

 

 

0 Kudos
Message 4 of 4
(3,915 Views)