Jump to content
OMRON Forums

Closed Loop Steppers


SimonD

Recommended Posts

Just a couple of questions regarding closed loop steppers on the PMAC. Does the PMAC do microstepping, if so where do I set the microstep size or does it base the microstep size based on step frequency? In a closed loop using a linear encoder. Does the PMAC tell the motor to step until it says stop or tell the motor to go a set number of motor steps and then just report the positional error? If the resolution of the encoder is smaller than the minimum step size will this cause "hunting" as the controller will be asking for an intermediate position which cannot be achieved with the steps?
Link to comment
Share on other sites

  • Replies 5
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Hello SimonD, I'm not the stepper guru but have done several apps with PMAC controlled Steppers. Attached is the document I think will answer all your questions. It includes a full Micro Stepping example, I have followed this and it works well. [attachment=1377:name] As far as you hunting question: This can be controlled in the PMAC by used of parameter Ixx28 Motor xx In-Position Band Ixx28 specifies the magnitude of the maximum following error at which Motor xx will be considered “in position” when not performing a move. So by setting this you can prevent the PMAC from hunting in between your mechanical steps because resolution is higher.
Link to comment
Share on other sites

Thanks for the prompt reply... I had a quick read but will need to digest it further. I suspect the system is working too hard. The mechanics were designed so that full steps provided more than adequate resolution. Thanks Simon
Link to comment
Share on other sites

SimonD: A couple of clarifications are needed here. Microstepping is by definition an open-loop technique that does not use encoder feedback for the phase commutation or position feedback. If Turbo PMAC is doing the full control of a microstepped motor, it is doing what we call "direct microstepping". In this mode it splits the full-step cycle into a fixed 2048 microsteps (512 microsteps per step). Nowhere in the direct microstepping algorithm is a pulse train generated. At higher speeds, many microsteps will be skipped between consecutive phase computation cycles. (Note that if you use a traditional external microstepping drive that accepts pulse-and-direction input, you will use PMAC completely differently to output one pulse per microstep of the drive.) If you use encoder feedback for the commutation, you are performing "brushless motor commutation", even if the motor is marketed as a "stepper motor". For you, it is just a high-pole-count brushless servo motor. In closed-loop brushless motor commutation, there is no commanded step size, and no possibility of a mismatch between output step and feedback count. I do not recommend open-loop commutation (microstepping) and closed-loop servo, as you can get into the hunting issue you worry about. If you have paid for the encoder, use it for everything you can! You will get better performance and higher efficiency. Curt Wilson
Link to comment
Share on other sites

Curt, Many thanks for the clarifications... I will try and find out how the system is currently programmed. The "hunting" is my guess as to what is happening on the system. It is either that or the speed of the motor is unfortunately close to the natural frequency of the loaded system. Is there an easy way to tell if the motors are being run as steppers or brushless servos? Thanks Simon
Link to comment
Share on other sites

Simon: Look at the setting of Ixx83 for the motor. It contains the address of the register used to read the rotor angle for the commutation. If it contains the address of a real encoder register (e.g. $078xxx for Turbo, $Cxxx for non-Turbo), it is doing closed-loop commutation, not microstepping. Curt
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...