I don’t have any experience with motion so I can’t give any advice how to implement it or if there are functionalities already providing a solution (I’m pretty sure that a CNC application would do the job easy, but as I don’t know the use-case behind I’m not even sure if CNC would be the right choice).
Independent of that, maybe the following information could be helpful:
If your two drives are the x and y axis in a mathematical plane (I think so), the fundamental basics for “drawing a circle in a plane” is sinus and cosinus:
to add the technical Part to the previous mathematical start from @alexander.hefner …
1. Using Single Axis Interface (no Licence cost)
You can creat your own Path Generator with Sin/Cos elements to create the Setpoint for each Cycle and then use the Functionblock MC_BR_MoveCyclicPosition to transmit the Position to the Stepper and execute the movement.
2. If you use a CNC via a AxesGroup (needs Licence)
The CNC System from B&R can read Program-Files in for example G-Code and control the interpolation for the motors.
The G-Code for a Circle is G02/G03/G102
The MotionConfiguration-Mode of X20SM1436 does use ACP10, which provides a PLCopen API via SDC, too.
There you can find a MC_BR_MoveCyclicPosition Functionblock, same Concept. Even CNC would be possible with ARNC0.
If this is a machine with existing Code you may stay with ACP10. But if this is a new Machine Development it is recommended to use MappMotion, which is since 8 Years the follow up of ACP10.
As I understand “MC_BR_MoveCyclicPosition” is just a cyclic position command per single axis.
I assume you suggest to create a radiuse and an angle variables and give a cyclic position command to two axes simultaneously with an “on-the-fly” position command ?
I was hoping to use a B&R library(function) that that receive parameters ( radiuse speed, jerk,etc… ) and perform the circle. does such a library/function exist ?
This is possible by using the CNC system, like Michael mentioned, which is more or less needed everywhere were you want to interpolate multiple axes movements to (carthesic) coordinate systems.
If you don’t want to use CNC based axes interpolation, you’re always in the scope of single axis and have to do any interpolation on your own.
Maybe the’re different ways / ideas how to solve it, but there’s no special function/function block for circle interpolation without CNC inside the standard libraries.