Jump to content
OMRON Forums

Selective Motor AbortAll


Guilherme Semissatto

Recommended Posts

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?

Link to comment
Share on other sites

  • Replies 4
  • Created
  • Last Reply

Top Posters In This Topic

  • 1 year later...

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...