Jump to content
OMRON Forums

Position Compare with non-digital encoders


Recommended Posts

  • Replies 6
  • Created
  • Last Reply

Top Posters In This Topic

Thanks. I was reading the hardware manual for the sine interpolator board. I couldn't follow all the differences in hardware counts, software counts, etc. I take it there is some type of limitation when using a sine encoder, but I can't tell what it will be, and the PMAC manual talks about using 1/4096 of a count for the position compare with a sine encoder. What's all that mean (briefly)?


I'm worried that the only time I could fire a pulse is at a zero crossing of the analog encoder, which would limit me to every 5µm in this case. Is this true?

Link to comment
Share on other sites

Using a sine encoder has no limitation with respect to a digital encoder.


One line of a sine encoder is decoded into four hardware counts, just like a digital quadrature encoder. These counts are used for position compare when not using fractional counts. There are 32 software counts per hardware count, so


When using fractional counts, there are 1024 fractional counts, i.e. states, per hardware count. Therefore, there are


1 line = 4 hardware counts = 128 software counts = 4096 states (LSBs)

¼-line = 1 hardware count = 32 software counts = 1024 states (LSBs)

1/128-line = 1/32-hardware count = 1 software count = 32 states (LSBs)

1/4096-line = 1/1024-hardware count = 1/32-software count = 1 state (LSB)

Link to comment
Share on other sites

Another method to utilize position compare on a system using absolute position sensors, is to create a phantom Pulse-and-Direction motor that runs on a Acc-24E2 or E3 card (see the "Setting up Power PMAC for Pulse and Direction" section in the Basic motor setup chapter of the users manual). Once you get the motors setup it just works, you don't need to worry about background plc's and any latency associated with their scan times.


Configure the phantom motor to follow the real motor and trigger the position compare with the phantom motor position. To make the conversion from motor units to counts easy to understand, I make sure that the phantom motor and actual motor positions match (I just write to the phantom motor .homepos at a convenient time to force it's position to whatever the real motor feedback is reporting).


We use this method with Biss-C encoders and it seems to work well. You will need a spare Gate1 or Gate3 card to run the phantom motor though.


I can post my phantom motor setup if you're interested.

Link to comment
Share on other sites

Thank you KMonroe023. Excellent point!


Mathewreck, it took me a while to get this all straightened out myself. Hopefully, my explanations will not confuse you more!


Based on your question, I am assuming that you were reading the ACC-51E manual. As for software and hardware counts, the main confusion in the ACC-51E manual arises because software counts are considered to be 1/32 of a whole count. But that only applies to Turbo PMACs and can be disregarded for Power PMACs. In Power PMACs, software count scaling is determined by EncTable[n].ScaleFactor.


Hardware counts (and sub-counts) are counts produced in hardware, and software counts in software, ultimately coming from the ECT (encoder conversion table). Hardware whole counts are decoded from the sine/cosine signals, 4 counts per line, like with digital quadrature encoders.


Software sub-counts (or fractional counts) are produced by “arctangent” processing of the sine and cosine ADC values (note Gate3 does this in hardware). Hardware 1/T sub-counts are optionally used for position compare (or capture). Hardware sub-counts (and/or whole counts) must be used for position compare. (Side note: one big advantage of arctangent sub-counts over 1/T sub-counts is that arctangent can be used to hold position whereas 1/T is useless when not moving).


Whole counts are the same as hardware counts as described in the ACC-51E manual, and sub-counts are the same as states. I copied the following from the ACC-51E manual, removing the software counts because in Power PMACs, EncTable[n].ScaleFactor determines software count scaling.


1 line = 4 hardware counts = 4096 states (LSBs)

¼-line = 1 hardware count = 1024 states (LSBs)

1/4096-line = 1/1024-hardware count = 1 state (LSB)


In the Power PMAC Users manual:

For details, see the sections “Hardware Position-Compare Functions” and “Setup on a PMAC2-Style IC” on page 774.

For using fractional counts, read the section titled “Optional Fractional Count Registers” on page 776.

For a description of ongoing commutation phase position, refer to page 147.

For a description of ongoing servo position, refer to page 149.

Link to comment
Share on other sites

This topic is now closed to further replies.

  • Create New...