burg0183 Posted December 20, 2013 Share Posted December 20, 2013 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 More sharing options...
Omron Forums Support Posted December 23, 2013 Share Posted December 23, 2013 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 More sharing options...
Recommended Posts