Jump to content
OMRON Forums

MACRO ring and assignment of EncTable[x].pEnc


Recommended Posts



We have a Power PMAC with the ACC-5E3 card connected to Geo Macro Drives controlling brushless DC motors.


I have a question regarding the assignment of the EncTable[x].pEnc.


In the Power PMAC User manual it states to point to the address of the Macro registers. e.g.

EncTable[x].pEnc = Acc5E3[n].MacroInA[j][0].a


However in the Turbo PMAC/PMAC2 Software Reference on page 219 it states.


When performing commutation of motors over the MACRO ring, it is advisable to get servo position

feedback data not directly from the MACRO ring registers, as shown above, but from the motor’s

previous phase position register instead. This is where the commutation algorithm has stored the position

it read from the ring (with Ixx83) for use in its next cycle.

Using this register prevents the possibility of jitter if the conversion table execution can be pushed too late

in the cycle


i.e. EncTable[x].pEnc = Motor[n].PrevPhaseEnc.a


Can you please clarify if the Turbo PMAC methods should still be used with the Power PMACS? Or if there might be advantages/disadvantages to it.

Link to comment
Share on other sites

  • Replies 1
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

The short answer is: You can use either - it doesn't matter.


The longer answer: In the Turbo PMAC manual, which was copied from the older (non-Turbo) PMAC manual, was concerned with much slower processors, where there was a realistic chance that the conversion table might not get to read the MACRO input register until after the next phase interrupt. In addition, virtually everyone who was controlling motors over MACRO was performing the commutation in the PMAC and so had a valid value in the PrevPhaseEnc register.


The Power PMAC is far faster computationally, so the chance that the conversion table read could be delayed by a phase cycle is virtually nil. In addition, there are several commonly used MACRO drives (Copley, ABB, Yaskawa) that perform the commutation themselves, so there would be no valid value in the PrevPhaseEnc register. So the instruction to read the MACRO input register is more general, and extremely unlikely to cause any problems.


There is one slight advantage to reading the PrevPhaseEnc memory register instead of the MacroInA hardware register. A memory read only takes 1-2 nanoseconds, whereas a hardware read takes about 100 nanoseconds. So you do save a little time by reading PrevPhaseEnc.

Link to comment
Share on other sites

This topic is now closed to further replies.

  • Create New...