Jump to content
OMRON Forums

AmpEnable/AmpDisable with macro station


burg0183
 Share

Recommended Posts

We are using a Power PMAC CPU main rack that contains a Acc5E card that talks (over fiber) to a remote station with a 16-Axis Macro CPU. The remote station with the 16 axis macro cpu has 16 axis, 4 axis per each of 4 ACC-24E2A cards.

 

We are using "AmpEnable(int)" and "AmpDisable(int)" from c routines operating in the servo interrupt and the realtime interrupt. These functions are included in RtGpShm.h but they are not documented.

 

AmpEnable works as far as we can tell. However, issuing AmpDisable will cause the encoders to function incorrectly. Additionally, AmpDisable can cause the MacroStation itself to become unresponsive. As a temporary work around, we have found "MacroControllerInit" will clear the errors.

 

We want to understand this issue better. What exactly do AmpDisable and AmpEnable do? Do they have conditions around when they can be called?

 

For a macro system using an Acc5E card with a 16 axis macro cpu card, what firmware version should be on the Acc5E card and what firmware version should be on the 16 axis macro cpu card?

 

Are there equivalent commands we could use in place of AmpEnable/AmpDisable?

 

Are the AmpEnable/AmpDisable functions compatible with a macro station? If not, what functions should we be using?

Link to comment
Share on other sites

  • Replies 1
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Hi,

 

We recommend at least firmware version 1.4.0.27, as this is when we documented several MACRO commands. Newer versions than this are fine also, including the current released firmware version. The firmware version on the MACRO 16 CPU does not matter as much as it has not changed significantly in recent years.

 

Since the AmpEnable and AmpDisable functions haven't been documented, I do not suggest that you use them. Instead, you should map Motor[x].pAmpEnable to Gate2.Macro[j][3].a, where "i" is the ACC-5E's addressing index in Power PMAC and "j" is the node number for the motor you are trying to control over MACRO. Then, whenever you enable the motor (e.g. through a #nout command, cout command, J/ command, or the C-based "int CloseLoopEnable (int n)" function, etc.), Power PMAC will set the Amplifier Enable bit at that address. The bit number is specified in Motor[x].AmpEnableBit, which for MACRO should be 22. When you kill the motor (e.g. with a #nK command or the like), PMAC will unset the Amp Enable bit.

 

Is that basically what you wanted to know?

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share


×
×
  • Create New...