From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Kollmorgen AKD EtherCAT Drive and Softmotion spline data

Solved!
Go to solution

Hi,

 

I would like to understand properly how the NI RT Controller interact with the AKD EtherCAT drive when generating a straight line move with acceleration, deceleration and speed constraint. It look like Softmotion is generating the trajectory but how does it send data to the AKD Position loop so that points are generated between the AKD position loop (higher rate loop, ex: .125ms) and the RT loop. (ex.: 4ms). Do we put the acceleration, deceleration and speed constraint on the Kollmorgen drive really high so that Softmotion stay the master?

 

When using a 9514 module or an unbound axis with analog input drive, the TG is sending the spline DATA (FXP) to the spline engine so that the FPGA function generate point for all fpga interation, how does it work with the AKD EtherCAT Drive, is it similar?

 

A second question is that it look like there is a analog input (16bit) on the EtherCAT AKD Drive, can we choose to use that instead of the EtherCAT on the same drive or there is a Analog Model and an EtherCAT model, Kollmorgen site doesn't show the analog model.

 

Thanks for your help.

Patrick

0 Kudos
Message 1 of 8
(4,031 Views)

Patrick,

 

When using a Straight Line Move, SoftMotion's engine always creates a position profile consisting of position setpoints that are equally spaced in time at the Scan Engine period. With an EtherCAT AKD axis, the setpoints are sent over EtherCAT PDO to the drive at the Scan Engine period (in your case 4ms). The drive then splines to take this setpoint and provide unique position loop setpoints at its position loop rate (which I believe is 125us as you mentioned). Because the drive is slave to the master's profiling, the acceleration and deceleration limits are not enabled on the drive. I believe the velocity limit is still evaluated, so it will need to be set to an appropriate maximum velocity (typically the safest operating speed of the motor or system).

 

All other axis types (9514, unbound axes, UDV axes, etc.) are handled in a similar way. The trajectory from SoftMotion is sent point-by-point at the Scan Engine period to the respective spline engine in order to create position setpoints for the position loop. For the 9514, this is done by sending setpoints to the module. For unbound axes and UDV axes, this is done on FPGA using a VI.

 

The EtherCAT AKD can be operated in Analog mode using the analog input. If it were to be used with the 9514 module, the drive would be set to Analog mode (using an analog voltage) and torque commands (because the 9514 is closing the position and velocity loops and sending a torque command). I would recommend using the EtherCAT communication mode, as it consists of less wiring and easier tuning (the drive closes all control loops).

 

Karl

Message 2 of 8
(3,989 Views)

I'm currently using an unbound axis with the spline engine on an FPGA, etc.It's working great and I like it because I can customize everything if I want, but there is a lots of wires, like you said. My architecture is similar to the 9514 but with individual modules. 9411, 9263, etc.

 

Now that I will deploy and that I figure what I needed, I want to go more simple without loosing the determinism, it seem that the route with the EtherCAT AKD Drive will do the job and will be simple.

 

I have a last question: In my application I am tracking a line at 4ms with a linescan camera. During this task, I'm writing point directly without any profile (acc, dec.) I've read that we can do that with the AKD EtherCAT drive too with the "write setpoint" function. Could you confirm?

 

If I understand properly, the only thing I will have to do in my project is to bound the axis to the AKD Drive and my current code should work properly? All trajectory generator and communication with the EtherCAT Drive will be invisible to me, as opposite to the unbound axis where I see the communication VI and command loop (FXP, etc.) with the FPGA.

 

I also should be able to access the variables of the drive via a UDV like the analog ouput of the drive, digital inputs, etc.

 

Thank you.

0 Kudos
Message 3 of 8
(3,977 Views)

Patrick,

 

The AKD will be a 'drop-in' replacement as far as SoftMotion's trajectory generation and supervisory control goes. Depending on what features you are using, not all SoftMotion Axis properties and methods will be supported on the EtherCAT AKD. It is a different axis type and closes its own position and velocity loops, where as using an unbound axis with an external servo drive is probably closing the position loop on FPGA.

 

Using the Axis: Write Setpoint method will cause your position setpoint to be written directly to the drive via PDO. Just be careful with this, as your code would be considered the trajectory generator, and no constraints will be applied. Too large of a setpoint change in 4ms could cause the control to go unstable.

 

As far as the things you can access from the drive, data would be retrieved using the SoftMotion Read methods. You can read back position, velocity, and torque feedback, digital input status of the AKD's inputs, and control digital outputs. There is no control of the AKD's analog output through SoftMotion, although these are usually used for outputting signals to other machine components and are configured in Kollmorgen WorkBench.

0 Kudos
Message 4 of 8
(3,969 Views)

Thank you.

 

I need the value of the torque feedback or current feeback in my application for decision purpose.

 

If I can read the Torque feedback, that is what I need. It should be the same has if I read the analog output of the drive when it is configured to torque feedback right?

 

 When I add the drive in my project, I see a bunch of UDV created automatically. Is there explanation about those UDV, what they are etc.?

 

btw, what mean PDO?

 

Thank you.

0 Kudos
Message 5 of 8
(3,966 Views)

I afterward found what are PDO (Process Data Object).

 

If the torque feedback is linked to the current feedback PDO (IL.FB) and that this value is updating even in position mode, that should be fine.

0 Kudos
Message 6 of 8
(3,955 Views)
Solution
Accepted by paubin

Patrick,

 

The variables found under the EtherCAT slave in the project are PDOs exposed by the drive and used by SoftMotion. Reading the SoftMotion Axis: Read Torque method will return the torque feedback from the PDO. Looking at Kollmorgen's documentation, 0x6077:0 (the PDO it is sending) corresponds to DRV.ICONT, the actual current value.

0 Kudos
Message 7 of 8
(3,950 Views)

Thank you very much for all tthese  informations. That was helpful. 

 

Patrick

0 Kudos
Message 8 of 8
(3,880 Views)