Phase shift in Continuous Motion

Hi All,

I need your advice on something. I am using AS4.12.5.95 and mappMotion 5.24.1

MC_PhasingAbsolute, MC_PhasingRelative, MC_BR_Phasing, MC_BR_Offset
All these blocks can also work while in synchronous motion.
So I need a MC_MoveSuperImposed fb in Continuous Motion.
How can I do this? Please tell me there’s a way to do this.

Thanks in advance

Hi Hasan,

thanks for reaching out! Before we can point you in the right direction, could you describe your use case in a bit more detail?

Specifically:

  • What motion profile are you running (e.g. gear, cam, automat)?
  • What should the superimposed motion achieve — a position offset, a phase shift, or something else?
  • The FBs you mentioned (MC_PhasingAbsolute, MC_PhasingRelative, MC_BR_Phasing, MC_BR_Offset) can indeed be used in parallel during synchronous motion, and depending on your goal one of them may already cover your need — without requiring “MC_MoveSuperImposed” at all.

Looking forward to your reply!

I am using MC_BR_MoveCyclicVelocity and I need phase shift while using this fb.

Hi Hasan,

I am sorry but from your description your use case is still not entirely clear to me. Do I understand it correctly, that your axis is not coupled, so you want to achieve an offset/phase shift during a Continuous Motion on an uncoupled axis?

If this is the case, then I think you can’t use any of the Offset or Phasing FBs. As far as I am aware, those can be used to achieve an offset or phase shift only on a coupled slave axis.

The question now is, where is the cyclic velocity for your axis coming from? Maybe the offset could be applied directly to that signal?

Or did I get it wrong? Could you please try to explain your complete use case? Then someone might be able to provide a solution.

Best regards

Hi Stransky,

Please imagine 2 axes,
First axis non stop moving with a MC_MoveVelocity (Virtual axis)
Second axis non stop moving with a MC_BR_MoveCyclicVelocity (Real axis)
The second axis follows the speed of the first axis.

I want to change the position of the second axis depending on the position of the first axis during movement.

I can add a third axis and I can make the second axis virtual and synchronize the third axis with GearIn to do what I want.

I don’t want overcomplicate it. Is there any simple way? (Except cam automat)

Phase/offset shifting isn’t possible outside of synchronized motion because the motion profiles are generated at execution of the block, with no real reference as to what was done before. When you used MC_BR_MoveCycleVelocity you are saying move this speed, move this speed, move this speed, etc. Since no relationship is known or kept between your first and second axis, there is no possibility of telling the axis to shift your position relationship.

If you are doing some sort of speed/acceleration limiting for your real axis, there are ways to do this within Cam Automat. Your use case sounds like it would be much easier to accomplish with Cam Automat.

In my B&R experiences I have seen entire machines where every real axis as linked to a virtual axis and the virtual axes are linked to each other and phasing is all handled in either virtual or real pairing depended on what is actually needed.

If you must use the MC_BR_MoveCyclicVelocity for some reason you can’t explain, there may be ways of implementing a phase/offset like motion profile into your relationship with a Mechatronic library block. These blocks are useful when you are trying to create relationship with non-servo based motion.

Is the a specific reason you are following axis #1 with a MoveCyclicVelocity on #2?

This seems much easier to implement if you would use MpAxisCoupling (needs MpLink references) or MC_GearIn?
Then you shift and offset all you need.

First of all, thank you very much for your attention to the problem I’m experiencing. I think I need to change some habits since I’ve used Codesys for many years. Because Codesys has MC_MoveSuperImposed, which allows you to perform phasing even when using MC_MoveVelocity or MC_MoveCyclicVelocity, and this allows you to easily create your own custom cam programs (rotary cutter, etc.).

I realize I can easily do these kinds of applications with B&R. B&R have a great tool like Cam Automat, and there are even pre-programmed tools available for it.

From what I understand from your answers to my question is that phasing cannot be done directly outside of synchronous motion, but alternative methods can be used.