12-16-2011 02:48 AM
Where are the trajectory generator property and invoke nodes in softmotion for LV 2011?
These functions are not longer found in the pallet? Are they no longer supported?
All the new soft motion examples are using the scan engine. Can I use soft motion without the scan engine????
Steve
12-16-2011 04:44 PM
Hi Steve,
You are correct. These functions are no longer supported as of LV2011. Your existing code should upgrade to 2011 and work correctly, but it does not lend itself to further development. What is the primary reason you don't want to use the scan engine? In general, it should make using SoftMotion easier, but I can imagine situations where the old way would be beneficial. If you were using the trajectory generator functions to send setpoints to an FPGA, you can use the offline trajectory generator to generate your profile and then send the setpoints to the FPGA using a DMA FIFO. The shipping example "Position Control (open loop) - NI 9501.lvproj" shows an example of how to use the offline trajectory generator and how to send the setpoints to the FPGA using a DMA FIFO. The potential downfall of this solution is that you can't update trajectories in real-time; the entire trajectory is solved and put into the FIFO.
If you can tell me what specific functionalities you are missing in 2011, I can see if there are different or better ways to do them.
Thanks,
12-16-2011 09:42 PM
Thanks Paul,
I have been looking the new API in Softmotion 2011, and it looks like there are some good improvements. I'm working to setup one of the examples like the "2 Axis Sero Interface (9263 & 9401).lvproj" to see how it runs with using the scan engine to sync the FPGA and the RT. In the past I have not had good luck with applications where I have tried running the scan engine. It just seems like it uses a lot of the RT cpu (cRIO) without much benifit. I was hoping to not use the scan engine in my application.
Steve
12-20-2011 10:07 AM
Hi Paul,
This change is causing me problems, too.
I need to coordinate multi-axis motion within a distributed system - some axes are controlled by a cRIO, but others by both a PXI system and PLCs
Up to LV 2010, I could keep the cRIO tightly synchronised with the rest of the system by controlling the execution rate of the trajectory generator. Now it seems I am unable to do this. Have you any suggestions of how I cope with such a situation? Thank you.
Regards,
Ian
PS - Sorry, I need to get this off my chest:
<rant>I tried to read all of the release notes and known issues before upgrading to LV 2011, but I didn't see any mention that this functionality was being removed. Have I missed something obvious? If you're making changes that can break people's code, surely that should be flashed up in huge, bold text? The release notes seem much keener to show off the new features than to alert existing users of potential problems. I don't know why, but SoftMotion has some history of doing this badly (e.g. 2009) - I've never had any unexpected problems with any of the rest of LabVIEW.</rant>
(thanks - I feel better now)
12-20-2011 03:09 PM
Hi Ian,
I apologize that this wasn't stated in the release notes. While your code should have upgraded without breaking, the release documentation should have mentioned that the advanced trajectory genertor functionality is no longer supported. If you still want to use the trajectory generator functions, they are still shipped with SoftMotion, they are just not on the palette. I have attached a zip file that has 4 .mnu files that will get them on the palette. To install these, do the following:
Keep in mind that we no longer support these functions. This means that they are not tested in new releases and any bugs will likely not get fixed.
I would recommend that you use the new API for any new designs. You can still get most of the functionality of the old API but without the complexity. If you want to generate setpoints at 5ms then you will run the scan engine at 5ms. This is certainly easier than having to do the timing yourself, but it does take away some control from the user. If you give me a brief overview of what you mean by synchronization, I will let you know the best way to do it with the new API.
Thanks,
12-21-2011 04:06 AM
Hi Paul,
Thanks for the response and the menu files.
What I mean by synchronization is this (for example):
I have a multi-axis (~10 axis) system. Some of these axes are controlled by a PXI system (PXI-7358), and some by a cRIO (mainly 9505). As part of an experiment, I may want my system to follow a long (up to 10 minutes) pre-defined contour move.
In my current architecture, I route a hardware clock signal from the PXI-7358 to the cRIO FPGA to keep the systems in sync during the move. This defines the FPGA loop rate, which pulls new data from the SoftMotion Trajectory Generator as required.
Is there any way that I can achieve this sort of functionality with the new SoftMotion interface?
Thank you.
Regards,
Ian
BTW, it appeared that the changes in LV 2011 had broken my code because I was getting error -77013 from every Trajectory Interface Invoke Node. I tried to create a little example of this to post, though, and in the process fortunately found that replacing all the existing Invoke Nodes using the new palette you sent through fixes this. Somehow it seems the old nodes hadn’t been upgraded properly (from LV2010 SP1)?
12-21-2011 11:38 AM
Hi Ian,
In this specific case, you don't necessarily need the trajectory generator. Assuming that the interval of your contour points is the same as your trigger period, you can do either of the following:
1) Use an interrupt (triggered by the hardware trigger) to send a contour point to the FPGA using a read/write control.
2) Put all of your contour points into a DMA FIFO and then pull out one point each time you get a trigger.
This method could also work for straight line moves and arc moves. By using the offline trajectory generator (see the second post in this thread) you can generate profiles that you can store in an array and either send to the FPGA point by point using interrupts or by putting the entire array into a DMA FIFO.
Thanks,
12-21-2011 12:10 PM
Hi Paul,
Yes, I guess that’s one option – but for smooth motion I’d need to implement my own spline fitting and send those coefficients over, too. I’m wary of creating too much custom code unnecessarily.
For the longer term, I’d prefer it if there was a way of using SoftMotion on a distributed system. Are there any examples or recommended architectures for that (even if they involve ditching the PXI-7358)?
One thing I was wondering about is whether the Scan Engine execution rate is tied to the RT clock – i.e. if I can synchronise the time between the various systems, does that automatically mean the SoftMotion move times will be synchronised?
Thanks,
Ian
12-23-2011 10:44 AM
I agree with Ian, It would have been nice to have some mention about the trajectory generator interface support going away.
02-28-2012 01:10 PM
Hi All,
Motion R&D is looking for SoftMotion users' opinions on the SoftMotion Development Module (the blue trajectory generator VIs) to see in what ways its removal from the palette was inconvenient. Is it that we didn't document it? Is it that you don't want to rewrite your old code? Is it that you don't want to use the scan engine? Is it something else? List any and all ways it inconvenienced you and how, in future versions, we could improve your experience with NI SoftMotion.
Thanks,