08-13-2025 11:41 PM
Hi all,
I’m having trouble configuring a Baldor M3714T servo motor in NI-MAX.
I’m using an older Windows XP machine with a PCI-7344 card, along with LabVIEW 8.6, DAQmx 8.7.2, NI-MAX 4.5, and NI-Motion 7.7. This system previously controlled the same servo motor without issues. However, after reinstalling the NI software, our original LabVIEW routines can no longer control it properly—specifically, they can’t read instantaneous velocity (i.e., encoder feedback).
To troubleshoot, I tried controlling the motor directly in NI-MAX’s 1-D Interactive mode. I tested the Absolute Position, Relative Position, and Velocity operation modes. In all cases, the motor (with load) can rotate, but the instantaneous position and velocity both remain at zero in the Misc. Plots tab.
I suspect this is due to incorrect Encoder Settings in NI-MAX, likely caused by the reinstallation resetting the original configuration. I can’t determine the correct line state combination for channels A, B, and Index. I found a similar case here:
However, the settings suggested in that thread didn’t resolve my issue.
I’ve attached screenshots of my current settings. Any suggestions would be greatly appreciated.
Thanks in advance!
08-16-2025 06:49 AM
Hi there,
Sounds like you're having trouble reading the encoders. For a quick test, you can rotate the shaft of the motor by hand, and observe the encoder position count in MAX. If everything‘s set up right, you should be able to see the encoder position accurately reflecting your current position. Reflecting accurate position is a rudimentary step towards velocity feedback, since velocity calculation is based on position. v = dp/dt.
From your pictures, it appears that the encoder count is at least non-zero, which suggests that the count is changing — though it may not be accurate. You can try different filter frequencies, or toggle the active high/low states of the A and B phases, see pic below. You can also check for loose cabling with the PCI-7344 board, the 68-pin connector may be loose.
By the way, in your Axis Configuration page, are you using "stepper" or "servo" settings?
BR
John
Add motion to LabVIEW in 30min or less - TENET EMotion
Finding it hard to source legacy NI hardware? Try Extend Test
08-24-2025 10:41 PM
Hi RIObotic,
Thank you so much for your suggestions on the different testing methods. I tried all of them last week, but unfortunately the problem still persists. I’m sharing additional screenshots of my NI-MAX setup and the installed NI software for reference, in the hope that they may help identify the root cause.
Based on my testing, the issue appears consistently across all three modes—absolute position, relative position, and velocity. Specifically, when I click Start in the 1D Interactive panel, the motor begins to run. If I monitor the real-time plots in Misc. Plots, both DAC_Output and Following Error (counts) increase together (see the attached DAC_Output.jpg and FollowingError.jpg). However, when plotting Velocity or Position, neither changes with time—the Velocity remains at zero, and the Position stays fixed at a non-zero constant value (see Velocity_Position.jpg).
After adjusting the line states of A and B, changing the encoder filter frequency, and setting the Axis Configuration to Servo, the behavior remains unchanged. This leads me to suspect that the system is still unable to properly read the motor’s encoder signals—i.e., the position information and the derived velocity. What confuses me most is the meaning of the Following Error (counts): why does it increase linearly with time?
I’d greatly appreciate any further suggestions or insights you might have.
Finally, I connected the motor cable to the MOTION I/O slot of the PCI-7344 (rather than the DIGITAL I/O slot). Please let me know if this needs to be changed.
Best regards,
Yin
08-28-2025 07:29 AM
Hi,
"Following error" is defined as the difference between Target position and Actual current position. Ideally following error should always be 0, or close to 0. When your motors are turning, your target position will increase continuously, but since your encoder is not working, your actual position is not changing. Therefore your following error keeps growing as your motor turns, this is expected.
Yes, motor cable should be connected to "motion I/O" connector, not "digital I/O" connector.
Which motion accessory are you using with PCI-7344? UMI-7764, or UMI-7774? My guess is that the encoder might be malfunctioning, or it might not be powered. If using the UMI-7764, you should also check the DC 5V input terminal, it is necessary for supplying 5V power to the encoder.
BR
John
Add motion to LabVIEW in 30min or less - TENET EMotion
Finding it hard to source legacy NI hardware? Try Extend Test
08-28-2025 08:14 PM
Hi John,
Thank you very much for your reply — I think you’ve pointed out the key issue.
As you suggested, I checked the wiring of the entire system, which includes four motors and therefore 12 wires for the four encoders (each encoder has three wires: A, B, and 5V; see motor_encoder_wiring.jpg). These three wires from each encoder are connected to the front panel of a stainless-steel box (12 connections total for four encoders, shown in box_front.jpg). This box doesn’t seem to be a UMI-7764 or UMI-7774 — do you happen to know if it’s an NI product or possibly a homemade unit?
From there, the back panel of the box connects to the MOTION I/O port of the PCI-7344 card installed in a Windows XP PC (box_rear.jpg and box_PC_connection.jpg). It appears there is no independent 5V supply to the box.
Since I wasn’t involved in developing the system (it worked well until the PC failed), and the issue only appeared after reinstalling all the NI software, I’m not entirely sure where to start regarding the 5V power supply. Any suggestions would be greatly appreciated!
Thanks again for your help.
Best,
Yin