Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Can you still use soft motion without the scan engine on crio?

Hi Paul,

 

If you could answer the questions I raised in my last post then I might be in a better position to offer you feedback.  At the moment I can't see any way to keep my existing functionality using your updated version.

 

Thanks,

Ian

0 Kudos
Message 11 of 15
(3,652 Views)

Yes it would have been nice.  I have just spent a lot of time trying going between 2011 and 2010 and then upgrading to sp1 ( haven't had time to do it).  I called the help desk support and they didn't have an answer... and my boss is on my butt asking why it isn't done.  My searches before didn't find this link...

 

Everybody git out your little bitty fiddles and join in!   Aaaarrrg!

0 Kudos
Message 12 of 15
(3,626 Views)

 

On a cRIO9074 I have 9 motors grouped in 2 coordinate systems with 5 axes in one and 4 in the other.  To thow a monkey into the wrench these axes are now EtherCAT motors which runs with the scan engine.

 

So, Can I still use use the legacy trajectory generator/functions with the scan engine?

 

And, Can you point to or provide an example of how to use the new APIs in place of the trajectory VIs?

 

Thanks!

0 Kudos
Message 13 of 15
(3,541 Views)

... Sorry, I ran out of time to edit...

I can see how the new VIs select the position feedback for analog and digital inputs, but how can I use my etherCAT values

 

thanks again,

0 Kudos
Message 14 of 15
(3,538 Views)

Hi David,

 

While I have never actually used the legacy trajectory generator, I think I can provide some insight. If your EtherCAT drives are the AKD EtherCAT drives from Kollmorgen then I would highly suggest you use the new API. SoftMotion comes with a black box communcation layer to the AKD. All you have to do is add an AKD drive to your project as an EtherCAT slave, add an axis to your LabVIEW project, and bind the axis to the AKD. SoftMotion takes care of sending all of the right SDOs and PDOs to the drive. Once you have completed this setup, you can run any of the Express VI, Function Block, or Property/Invoke node shipping examples. You cannot use the old trajectory generator with this method.

 

If you're using any other EtherCAT drive (or if you are using the AKD in a mode other than position mode), things become more difficult. The first step is to write the EtherCAT communcation layer. This will involve getting the EtherCAT XML file in the right direectory location, successfully adding the EtherCAT slave to the project, and finding what SDOs and PDOs the drive needs to operate. Also, if the drive is like the AKD, it has an internal state machine that you must make sure gets to the right states before you start sending certain commands. Once the EtherCAT communcation layer is complete, you could use the old trajectory generator to generate position setpoints. However, I would not recommend it. I would instead recommend using the new axis interface API as a communcation layer between your EtherCAT code and the SoftMotion high level API (express VIs, etc). While there are no shipping examples that show how to do this with EtherCAT drives, there are online examples. 

 

An old, but still relevant example

A new example that shows how to use the AKD in torque mode

 

I wrote the second example and I can tell you that it does not scale well to multiple drives. The CPU overhead of sending the PDO data will not allow you to do more than a few axes of motion on the 9074. I can't say if the first example will have this same problem, but I think it will. There is a bulk transfer mechanism in the latest EtherCAT driver, but I am not familiar with it and don't know how difficult it would be to implement or how much it will help with CPU usage.

 

If you tell me what kind of drives you are working with, I can try to offer more suggestions.

 

Thanks,

0 Kudos
Message 15 of 15
(3,529 Views)