06-11-2019, 07:32 AM
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?
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?