Fanuc Arc Type Motion Limitations

  • I am working with Fanuc CRX-10iA/L robot. I am trying to move it along an arc with 500mm radius and pitch varying from -15 degrees to 15 degrees. When I put 15 points like below, it works fine. But, when I increase the number of points to more than 15, it throws error: MOTN-356 ARC:180 deg SPIN change(G:1) . I tried different angle ranges, whenever the point count is more than half the angle range, the same error comes up. Is this a limitation from Fanuc ?

    A P[1] 250mm/sec FINE ;

    A P[2] 250mm/sec FINE ;

    ....

  • Place your Ad here!
  • I am working with Fanuc CRX-10iA/L robot. I am trying to move it along an arc with 500mm radius and pitch varying from -15 degrees to 15 degrees. When I put 15 points like below, it works fine. But, when I increase the number of points to more than 15, it throws error: MOTN-356 ARC:180 deg SPIN change(G:1) . I tried different angle ranges, whenever the point count is more than half the angle range, the same error comes up. Is this a limitation from Fanuc ?

    A P[1] 250mm/sec FINE ;

    A P[2] 250mm/sec FINE ;

    ....

    It may be a limitation of the motion planner itself, you may need to use the normal circular instruction instead of the arc one.


    But, why you do want to create 15 points if you have a fixed radius?

    If it's because you want to change the minimum and maximum angle of the arc, I suggest you to just calculate 3, or even 5 points along the arc using sin/cos to just rotate the points the way you want. You can do it by calculating the arc points with that fixed radius and then displacing them a fixed distance on XY to the location you want with the rotation you need.


    That's what I am doing right now on an application where I needed to parametrize both the radius and start/end points of the path and it's not difficult, you can do a little function with karel to just pass the angles and storing the points on PR.


    That's is what

  • I am doing 15 or more points because we want to capture some reading on the probe from all of these points which are at the same radius from the origin.

    I will try the normal circular instruction and see if that works.

  • I have wait instruction after every point as well, here is a sample of the code:


    5: A P[1] 250mm/sec FINE ;

    6: R[8]=0 ;

    7: WAIT R[7]=1 ;

    8: A P[2] 250mm/sec FINE ;

    9: R[7]=0 ;

    10: WAIT R[8]=1 ;

    11: A P[3] 250mm/sec FINE ;

    12: R[8]=0 ;

    13: WAIT R[7]=1 ;

    14: A P[4] 250mm/sec FINE ;

    15: R[7]=0 ;

    16: WAIT R[8]=1 ;

    17: A P[5] 250mm/sec FINE ;


    So, in my python code, I read the readings from the probe and then update the register R[8] and R[7] alternatively.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account
Sign up for a new account in our community. It's easy!
Register a new account
Sign in
Already have an account? Sign in here.
Sign in Now

Advertising from our partners