Guilherme Semissatto Posted June 11, 2019 Posted June 11, 2019 Is it possible to select which motor will be affected when the Power PMAC receives an "abort all" input? I'm working in a system that has an air pressure bearing with a reed switch (Normally Closed contact). When the pressure goes down I must kill 1 of the 8 axes which the PowerPMAC is driving. The others must be able to move. I thought about a PLC program polling a Digital Input, but I'm concerned about IEC machine safety standards, this is why I prefer to handle the Abort Pin. So what I'm choosing is a .pmh file which set tup 2 coordinates systems. One CS which will be affected by abort pin and the other one not affected as below: -------------------------------------------------------------------------------------- global_definition.pmh undefine all //setup CS1 &1 #1 -> X //setup CS2 &2 #2 -> X #3 -> A #4 -> XX #5 -> YY #6 -> ZZ #7 -> U #8 -> V Sys.pAbortAll = PowerBrick[0].GpioData[0].a Sys.AbortAllBit = 31 Sys.AbortAllLimit = 5 Coord[1].AbortAllMode = 1 // CS1 motors killed after abortAll Coord[2].AbortAllMode = 3 // CS2 dont affected by abortall -------------------------------------------------------------------------------------- Is there a better way to do this?
Omron Forums Support Posted June 11, 2019 Posted June 11, 2019 You are already using the best method and that is how AbortAll is intended to work. Aborting only part of a coordinate system wouldn't make sense.
leandro.martins Posted March 23, 2021 Posted March 23, 2021 I am implementing this solution and have tried some similars approaches, but without success Sys.pAbortAll = PowerBrick[0].GpioData[0].a Sys.AbortAllBit = 31 Sys.AbortAllLimit = 5 Coord[0].AbortAllMode = 3 // CS0 dont affected by abortall Coord[1].AbortAllMode = 1 // CS1 motors killed after abortAll 1) &1 #8->I As I can see using Motor[x].Coord, the remaining motors are allocated in the Coord[0] by default, but when Sys.AbortAll=1 all the motors are aborted. Also tried to change the remaining motors of the system to Coord[2] 2) Coord[2].AbortAllMode = 3 // CS2 dont affected by abortall &2 #1->I #2->I #3->I #6->I #5->I And I defined an axis for each motor: 3) Coord[2].AbortAllMode = 3 // CS2 dont affected by abortall &2 #1->A #2->B #3->C #6->X #5->Y but none these attempts worked as I expected. There is something that I am missing? FW 2.5.4.0 CPU PowerPC,APM86xxx
Omron Forums Support Posted March 24, 2021 Posted March 24, 2021 I am a bit confused. What behavior are you looking for? Motor 8 being killed while the rest continue? Was Motor 8 always in coordinate system 1? What behavior did you get from "3)"?
leandro.martins Posted March 24, 2021 Posted March 24, 2021 Yes, the behavior that a I expect is Motor 8 being killed while the rest remain controllable. The Motor 8 is always in Coordinate System 1. I repeated the tests with simulated motor in another Powerbrick and all the cases results in the expected behavior. Perhaps when the problem occurred some statement could have been missing, I am trying to reproduce the error. Anyway, I will test again with the real motors on the first controller at an opportune time
Recommended Posts