Independent motion of a slave axis in MappMotion

I have a SCARA-style kinematic running as an MpRoboticsFlex axis group. The group has three joint axes (Q1, Q2, QZ) plus two
synchronized auxiliary/slave axes, a gantry X and gantry Z, that carry the whole arm. Workspace protection is set up in the
path program with SafeCuboid() (shelf/post obstacles anchored in MCS via SetFrame/SetPCS).

What I want to achieve: move the gantry X axis to a target position independently while the path program continues to move
Q1/Q2 back and forth (i.e. the gantry travels on its own profile rather than being locked into each PTP block with the joint
axes).

My approach was to ReleaseAxis(‘GantryX’) from the path, drive it as a single axis (MC_MoveAbsolute) from a cyclic task, then
re-adopt it later with MovePosition(‘GantryX’).

The problem: while the axis is released, the path planner no longer has a trajectory for it, so the SCARA wireframe used for
SafeCuboid monitoring is computed with the gantry X frozen at its release position. Because the shelf/post cuboids are
anchored in machine coordinates and the arm’s MCS location depends on gantry X, the monitoring is evaluated at the wrong
place and the cuboid protection effectively no longer guards the arm correctly while gantry X is physically moving.

Is there any way to accomplish moving the gantry axes independently while maintaining proper safe cuboids? 1b2217b5-5390-4ff9-a94b-80b6dce398a6 looks close to what I need, but is limited to spindle set ups.

Using AS 4.12, MappMotion 5.28.3. We’re weeks away from upgrading to AS6 though if that makes any difference.

Thanks in advance!

Hello,

Can you explain a bit more about the UseCase why the Axis shall move independent. Is this a kind of Tracking?

Going with the Release would also be my first idea.
But with this removed from the Table…

There are not much interfaces to influence a Axis Position while it is under control of the AxesGroup. There is the MC_BR_OnlinePathInfluence, which can be used to overlay movements to the active Programs. It can be used to move the Slave Axis while the AxesGroup is Executing an MovementProgram. You could use a Virtual Axis or a ProfileGenerator from MappControl to generate the SetPoints for the Movement.

I think the Tracking Functionality will not be helpfull even if it is a possibility to follow an Movement given from the Outside of the AxesGroup. But i don’t think you can force the Tracking to use only the Slave axis. I think it would use the whole kinematik. But i have no expirience in this combination.

As far as i know the PathGenerator can only process one movement at a Time. Programming two different Movments is not possible, with the normal interpolation G-Codes.

Greetings
Michael