Jump to content
OMRON Forums


Matsuzawa Makoto

Recommended Posts

  • Replies 3
  • Created
  • Last Reply

Top Posters In This Topic

I have a Power-PMAC DEMO-box there is two PWM motor #3 and #4.

I set up motors and can move but it move to ccw.

I want to move to cw and I write change for 7 to 3 in Gate3[0].chan[2].EncCtrl but vibration only no move.

why?Is my way of thinking wrong?


Please recall when using the setup software to commission the motor there was a test (Open Loop test) to confirm that the direction sense of feedback matched the physical rotation of the motor. This is very important because if the sense of direction for feedback and motor do not match, your system will be unstable. A stable system uses 'negative' feedback. If the direction sense of either motor or feedback is changed, then the system has 'positive' feedback and becomes unstable.

This is why your motor is vibrating - also very possible is a dangerous runaway condition.

To change whether you consider cw or ccw as forward (mechanically speaking), you must do two things:

1) Change the physical direction of motor rotation

2) Tell the feedback mathematics that you have done this, so that stability is preserved.


To effect #1, swap two of the 3 phase motor wire connections. ABC -> ACB

To effect #2, change the value in Gate3[0].chan[2].EncCtrl, as you have already done.

Once the correct relationship is established (Open Loop test), never change just one, always change both together.


You can leave the motor wiring and encoder direction definition alone and change the way your software defines forward & reverse. This can be a little confusing because you would be using a negative software command (X-2.34) to move mechanically forward. Same result, but probably better to do it the way you have begun.

Link to comment
Share on other sites

The current Power Brick manuals have a section called "Reversing Motor Jogging Direction" that shows how to take a working (able to jog) motor with a direction sense opposite of what you want and flip it.


For a brushless motor with a quadrature encoder:

Motor[].PhaseOffset = – present value

Motor[].PwmSf = – present value

Gate3[].Chan[].EncCtrl = the opposite decode of the present value (e.g. 7 or 3)

If using halls:

Motor[].AbsPhasePosSf = – present value

Motor[].AbsPhasePosOffset = 2048 – present value


You will still need to worry about Motor[x].HomeOffset

Link to comment
Share on other sites

This topic is now closed to further replies.

  • Create New...