11-10-2008 08:33 AM
First off, I am very new to using labview. I am trying to complete a project a former employee was working on.
For a quick background on what I am working with, I am using a NI DAQCard-6036E connected to a SC-2345. The SC-2345 is then connected to a load sensor, Omron R88D servo driver, and an omron servo motor. The servo motor has a incremental encoder with a resolution of around 2048 pulses per revolution. My labview program includes a counter that records the data from the encoder on the servo motor. I have been able to get accurate data when testing through the measurement and automation program by manually turning the motor. Also when running through the specific DAQ assistant I am using for my counter, I am getting correct readings when manually turning motor. Once I run my complete program, instead of getting 2048 pulses per revolution, I am getting between 34000-36000 pulses per revolution. The most logical assumption is that I am getting vibration in the motor itself or some sort of noise is interfering with my signal. I first attempted to change any possible settings through the omron servo driver that might reduce any vibration in the motor. I attempting changing the rigidity settings, turning on and off the auto-tuning function, and a few other settings specified by the user manual that might cause vibration. If I turn the rigidity settings as low as possible, I am able to get around 2000 pulses per revolution, but the data is very sporadic. Also, my equipment needs to be very rigid, and with the lowest rigidity setting for the servo driver, I am able to almost stop the motor with minimal force. My equipment needs to be able to travel at a near constant speed with fluctuations of up to 200 N of force. Any suggestions on which direction I should go in finding a countermeasure?
Thanks
Solved! Go to Solution.
11-11-2008 02:04 PM
11-11-2008 02:28 PM
Hello skindeform,
First, I'd like to congratulate you on an excellent post. I specifically commend you for putting the specific information about your DAQcard-6063E, SC-2345, and Omron R88D servo driver. Could you please tell us the model number of your servo motor? To address your problem of getting incorrect counts when you rotate your servo motor automatically as opposed to by hand, it is a good chance that the cause is vibration. Does the servo motor, when rotated automatically, turn at constant or variable speeds? If variable speeds is your answer, how does the accuracy of the counts correspond to the speed of rotation? There is an NI Developer Zone article called 'Using Quadrature Encoders with E Series DAQ Boards' that has an interesting section on the drawbacks of using non-conditioned quadrature encoders; one of which is inaccurate data due to vibration. The article points to using a clock converter device to condition the encoder signals and improve the reliability of your encoder measurements.
Regards,
Wallace F.
11-13-2008 11:04 AM
11-13-2008 01:15 PM
Correction: Not sure how accurate my assumption of applying pressure to the outer casing of the servo-motor/encoder casing was affecting my pulse output. As of now, I am not getting any change in pulse output by applying pressure at those points.
I know some DAQ cards allow certain debugging/filter methods to be applied by making modifications to the actual labview program. Other than adding equipment to my setup that would possibly filter out bad signals, would it be possible to insert certain VI's that would be compatible with my 6036E card that would simulate a filter?
11-14-2008 07:58 AM
I very much agree with centerbolt's suspicion that you have an issue with electrical noise. The fact that the problems are more pronounced when the motor works against a higher load help to confirm that. With higher loads, the motor commutation switches higher currents which in turn will tend to generate more electrical noise.
Unfortunately, there isn' t much you can do to "filter" this noise using software vi's. You need a hardware fix. I looked up the servo drive and it says that the encoder outputs are RS-422A style line driver outputs. You need a line receiver circuit to convert that to a referenced TTL-compatible signal for your data acq board. Better yet, purchase a combo unit that'll both convert from line driver to TTL and will perform the quadrature decode. The previously-linked app note refers to one such interface board.
-Kevin P.
11-18-2008 12:02 PM
I had my shielding for my load sensor cable grounded to two seperate grounds. Made a grounding block, routed everything to a common ground and now everything seems to work properly. Thanks guys.