I'm driving a NEMA34 bipolar geared stepper motor with the following specifications: Rated Current 4A, Voltage 24-60V. It is being driven by a MA860H driver with output current of 2.6-7.2A 24-80VAC. I have the driver configured for a peak current of 4.45A, and using a microstep of 5 (1000 pulses / rev). This is connected to a gearbox that results in an input of around ~4000 steps / rev.


The driver is being controlled by a PLC that drives the stepper motor to a desired position. The motion control allows for a desired position, steps/second, and a ramp up/down time (ms).

This particular use case requires a new motion command to be issued while the motor may be in travel. There are no issues if i move the motor from standstill, or issue a new move command while the motor has reached its max steps/second.

However, if the motor is moving, and is nearing its desired position, it will begin to ramp down, if during this ramp a new move command is issued with an increased desired position, the motor should ramp back up and continue to move. Instead, the motor will seize up and makes a high pitch squeal. The longer i set the ramp-up/down time the easier this condition is to reproduce. Oddly enough if i perform the same function but the new move command tells the motor to reverse, this condition does not occur.

I'm not sure what the exact issue i am facing, or how to narrow it down to a particular component. Could it be counter EMF from the motor that is causing the strange behavior, or have i sized the motor incorrectly?

  • \$\begingroup\$ It sounds like while you are decelerating you have retarded the step angle a step to brake the motor,. If so to return to acceleration you need to advance the angle TWO steps not the normal ONE step you would use when accelerating from a stop position. \$\endgroup\$
    – Trevor_G
    Jul 27, 2017 at 13:48
  • \$\begingroup\$ Even if you solve this problem, you will have something else. That's how it works in open loop. Use brushless dc motors with encoder, none of that will happen. \$\endgroup\$
    – user76844
    Jul 27, 2017 at 15:16
  • \$\begingroup\$ @trevor if this was the case, wouldn't i encounter this issue when changing directions, or every time during a deceleration and then a subsequent acceleration before stop? Is there any way i can log the steps across the wire to look at the actual data? \$\endgroup\$
    – DDulla
    Jul 27, 2017 at 17:37

1 Answer 1


The problem of course is in the PLC trajectory generator. The stepper driver itself only outputs the setpoint frequency (step/dir) to the motor. It seems that upon changing the setpoint position, your PLC program doesn't gradually decrease or increase the frequency, rather it jumps. Look for PLC documentation how to overcome this bug.

  • \$\begingroup\$ In the PLC, the ramp value is supposed to gradually increase or decrease the frequency. You can observe the motor slowing or accelerating, i encounter this stall when it is actually decelerating and before it has stopped it starts to accelerate again. Is there any PC tools i could use to log the step and direction pules going across the wire to verify what is being sent? (The plc does not have any such tool) \$\endgroup\$
    – DDulla
    Jul 27, 2017 at 17:34
  • \$\begingroup\$ @DDulla You didn't mention the PLC type. Anyway, it is almost impossible to be able to monitor in the PLC IDE the true state of pulse train output (PTO) since this function is implemented as a low level microcontroller function. Yo can use a scope to trace the pulse frequency. \$\endgroup\$ Jul 27, 2017 at 22:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.