10-01-2012 05:53 PM
Hi Gang,
I've spent the day configuring a new cRIO system and a new installation of LV2012 with RT, FPGA and Softmotion.
Our system uses a CAN interface, which, we find out, requires using FPGA mode. Maybe that's not a bad thing, as we are concerned about the speed of scan mode. I've developed an FPGA app before.
My main concern right now, is to get the motion control stuff working. Our motion module is an NI- 9514. I'm hoping there's a way to use SoftMotion modules with the FPGA interface. Otherwise, the FPGA motion examples look REALLY daunting!
All I need to do is simple relative moves and homing. I'll appreciate all help/advice on the simplest/fastest way to get going.
Thanks!
Roger
Solved! Go to Solution.
10-01-2012 09:24 PM
Hi Roger,
You can use the 9514 without using the 'daunting' examples by using the cRIO in hybrid mode. There are good instructions on how to do this here. A quick summary is that you have to put the modules that you want to use in scan mode under the chassis and the modules you want to use in FPGA mode under the FPGA. When you compile the FPGA bitfile, the RIO scan interface is compiled for the modules that are under the chassis so that you can use them in scan mode. A few caveats:
As a side note for those using the 951x motion modules, unless you really need to do something custom, you should use the 951x modules in scan mode. The performance is better in scan mode than it is in FPGA mode (assuming you want to use the high level SoftMotion API (EXVIs, function blocks, or properties/methods)). When you use it in FPGA mode, there is extra delay in getting the data from the FPGA into the SoftMotion engine. Plus, you are still coupled to the scan engine! So you get worse performance, a more difficult experience, and you don't even remove the need for the scan engine. There are valid reasons to use the 951x modules on the FPGA (e.g. custom control loops), but most applications I have seen that use FPGA would be better served using the module in scan mode.
Thanks,
10-02-2012 07:42 AM
WOW!
Thanks, Paul! This motion control newbie appreciates your detailed reply.
I'll dig into this today.
Roger
10-08-2012 01:18 AM - edited 10-08-2012 01:40 AM
Hi
Ditto. Helpful comments. Thanks
If you do run the 9514 in FPGA mode, does the 9514 still run its own PID, or is it disabled somehow. The "Servo Interface 9514" example (which is an FPGA mode example), shows a position PID which is then written to the Drive Command OUTPUT.
I'm guessing that means the on-board PID controls that would normally run in the scan mode are disabled somehow. Is that correct ? Or does that PID still run as an 'inner loop' withe the position PID (fed by the spline engine) the 'outer loop' ??
Thanks
10-08-2012 09:57 AM
Hi,
You are correct that the 9514's PID is disabled when using it in FPGA mode. In scan mode, you are sending position setpoints to the module and the module sends these setpoints through a PID loop to generate the +/-10V control signal. In FPGA mode, you write directly to the +/-10V line. What kind of control you use (traditional PID, cascaded PI, direct torque control, etc) is up to you.
Thanks,