03-12-2013 01:55 PM
Hi folks,
I was just wondering if there was a way to get the absolute position of from the built-in Smart Feedback Device (SFD) of my servomotor using the LabVIEW FPGA interface? I'm using a cRIO-9074, 9514 IO module, AKM42E-ANCNC-00 servomotor, and a Single-axis AKD Servo Drive, set up according to http://www.ni.com/pdf/manuals/375516b.pdf. I'm able to get the encoder position in counts, where my counts/rev is defined as 4*PPR of the encoder. I can see the absolute encoder position from the software included with my drive and motor but I seem to only be able to retrieve it in LabVIEW as if it were a quadrature encoder.
What I'm trying to do is retain the current position of my system even after I close my application. As it stands, when I reboot my application the encoder reading resets to zero. Since I'm using my motors to drive linkages, the actual position is significant and I would like to be able to retain that in my FPGA application.
Thanks,
- John Acob
03-13-2013 02:57 PM
Hi John,
From what I can find on the SFD it seems that it is going to read in tick counts. In your situation you may want to use a home switch. When your code turns on you set the motor to find home and once it is home you reset the encoder. This would be able to account for any movement tha happens when the system is off.
I am not sure it would work, but you could also try to use the reinitialize to default method at the end of a program run. This would save the current position when you close the program. When you reopen it, assuming the system has not moved in between runs, you should have the current position as the starting point. You would probably want to have a manual reset to zero option when using this in case there is movement and you position gets off.
03-13-2013 08:41 PM
Thanks for the suggestion. I'll give it a try and let you know how it goes.