I have a very strange problem. Environment: MAX 3.0.1, FLEX MOTION 5.1.1, PCI-7344, Amplifier MID-7654, 4 motor-encoders. 1) I successfully tuned the PID parameters so all the 4 motors are servoing now. 2) I manaully turned a motor and read back the positions through 1-D Interactive are between around [-37000, +37000] (corresponding to [-180, 180] degrees). It's true for all the 4 motors; 3) I used my application to drive them to Range Of Motion and read the position. The returned values for motor 1-3 are around [-180, 180], while for motor 4, I got [0, 360] degrees. 4) I made the same drive and read the positions of motor 4 from 1-D Interactive, two strange things found: a) I saw motors 1-4 reach their positive limit ( 180 deg) together and stopped there, and position reading for motor 4 was around 37000, but it kept increasing to around 74000 (which is 360 deg) without any real motor movements. Then all the 4 motors moved backwards to the negtive limits and stopped there. The reading for motor 4 was near to 0. b) Then all of them moved back to real zero positions. I saw the reading for motor 4 approaching to 37000, then changed directly back to 0 after motor 4 reached zero and stopped there.
there were several issues with the NI-Motion 5.1.1 driver. That's why NI released several bugfixes for this version. I would suggest that you upgrade NI-Motion to the latest version 6.1. Please follow this link to download the upgrade:
Please don't forget to upgrade the firmware of the PCI-7344 in MAX after upgrading NI-Motion. It's always a good idea to uninstall the old driver before installing the new one. Please comment this answer if your problem isn't solved by the upgrade.
Jochen Klier Applications Engineering Group Leader National Instruments Germany GebH
Thanks for the reply. I found the problem though. It turned out the glue which to hold the motor and gearhead was not completely dry, so when the gearhead reached the hard stop, the motor slipped and continued moving, resulting in an increase of the encoder counts.