Delta Tau Forums
Axis software limits - Printable Version

+- Delta Tau Forums (http://forums.deltatau.com)
+-- Forum: Delta Tau Data Systems (http://forums.deltatau.com/forumdisplay.php?fid=1)
+--- Forum: Power PMAC (http://forums.deltatau.com/forumdisplay.php?fid=2)
+--- Thread: Axis software limits (/showthread.php?tid=3157)



Axis software limits - george.kontogiorgos - 11-20-2020

Hello

Is there a way to impose software limits to KinPosAxisA for example?

I would like to define my robot a limited work volume and the individual motors software limits does not work form me because I need the full range of some joints in order to perform the entire motion.

George


RE: Axis software limits - curtwilson - 11-23-2020

You have a couple of possibilities. One is to do the calculations yourself in the kinematic subroutine -- e.g.:

if (KinPosAxisA > MyMaxA || KinPosAxisA < MyMinA) …

The other method is to assign an additional virtual motor that maps directly to the axis -- e.g.:

KinPosMotor11 = KinPosAxisA

Set your motor software limits for this virtual motor to the axis software limits you desire.

You will need to define this as an inverse kinematic motor in the same coordinate system -- e.g.:

&1 #11->I

You will also need to disable other faults on this virtual motor: hardware limits, amplifier fault, following error.


RE: Axis software limits - george.kontogiorgos - 11-23-2020

(11-23-2020, 10:39 AM)curtwilson Wrote: You have a couple of possibilities. One is to do the calculations yourself in the kinematic subroutine -- e.g.:

if (KinPosAxisA > MyMaxA || KinPosAxisA < MyMinA) …

The other method is to assign an additional virtual motor that maps directly to the axis -- e.g.:

KinPosMotor11 = KinPosAxisA

Set your motor software limits for this virtual motor to the axis software limits you desire.

You will need to define this as an inverse kinematic motor in the same coordinate system -- e.g.:

&1 #11->I

You will also need to disable other faults on this virtual motor: hardware limits, amplifier fault, following error.

I prefer the second method but I couldn't find a way to interlock the individual motors looking to kinematics axes limits. If I move a individual motor by #4j=100 for example and motor 4 belongs to refered kinematics, the KinPosAxisA could reach a forbidden zone.


RE: Axis software limits - curtwilson - 11-23-2020

To do this outside the motion program execution, you will want to have a PLC program scanning continually and issuing the "pread" command, which will return the axis positions in D-variables for the program (e.g. D0 for the A-axis position). Then you will explicitly compare the returned position values for each axis to your axis limits and abort motion if exceeded.


RE: Axis software limits - Eric Hotchkiss - 11-24-2020

What robot shape are you working with?

I have used a PLC that sets Coord[1].ErrorStatus = 255 if Coord[1].TPExec.Pos[j] is not within bounds. I believe this protects against program moves that go out of bounds, but not individual motor jog moves. A pread or dread would be more useful for getting axis positions in the case of motor level moves.


RE: Axis software limits - george.kontogiorgos - 01-11-2021

Hi Eric!

Our robot is basically three granites, where two of them form a wedge and they are over the third granite. One motor control the wedge position and other motor compensate the movement, so we can perform X and Y movements purely by kinematics transformations.

We develop a plc to peform this safety but the complexity level increased too much and we decided to remove the individual motors from final users and the Curt Wilson answer's work very good.