incremental stacking with Z and W adjustment

  • hi
    using Fanuc R1000ia 100F with R30iA controller.
    I`m stacking parts with the robot simply incrementing upward after each part drop.
    i don`t have the palletizing option, trying to do it manually.
    i have made a user frame in the drop zone, the problem is I also want to increment
    the W about 8 degrees + after every drop, but after a few parts adding 8 degrees to
    the W makes it go the opposite way as it did before, so how can i get around this problem?


  • How are you adding the Degrees? using a PR(i,j) example PR(8)=PR(8,4)+8? if that is the case I can see how you are running into issues. I would try a matrix function. Within fanuc you can matrix points around axis's rather then try and add degrees to them. I feel it is much more reliable.

  • yes i am doing exactly that just adding with PR's and R's
    so can you give me a quick explanation of your method, i am a beginner and don't know how you mean?
    only way i know is the way i'm doing it

  • Fist you have to check what software version you have a r30ia (7.70 or 6.31) might not the the matrix program but that can fixed. Its a built in karel program on the newer controllers and I have seen it on older ones as well. check all the programs in the Select for Matrix

    So in the example I am taking pr90 then running the matrix function to shift the point 90 degrees around the z axis then placing the new point in pr33

    108: PR[32]=PR[32]-PR[32] ;
    109: PR[32,6]=PR[32,6]-90 ;
    110: CALL MATRIX(90,32,33) ;

    With the matrix you have to define the starting point you want to use(90) then the matrix amount(32) and where you want the new point to end up(33) if you use 1,2,3 the shift value is in mm if you use 4,5,6 the value is in degrees. Also you see I subtract the amount by itself 32-32 to make sure its at zero before entering the amount needed.

    I use the Matrix almost all the time have to shift a point since my user frames and tools are never straight or parallel with the robot.

    In this example the PLC controls a set of offsets for a User tool defined on the robot. So the operator has the ability to adjust the robot tools from the HMI to correct for when the crash the EOAT and instead of adjusting all the points again they realign the path buy adjusting the offsets of the tool. PR(63)being the original tool.

    7: PR[64,1:ApplyRearOffset]=R[66:Rear X] ;
    8: PR[64,2:ApplyRearOffset]=R[67:Rear Y] ;
    9: PR[64,3:ApplyRearOffset]=R[68:Rear Z] ;
    10: PR[64,4:ApplyRearOffset]=R[69:Rear Xr] ;
    11: PR[64,5:ApplyRearOffset]=R[70:Rear Yr] ;
    12: PR[64,6:ApplyRearOffset]=R[71:Rear Zr] ;
    13: ;
    14: CALL MATRIX(63,64,65) ;
    15: ;
    16: UTOOL[8]=PR[65:ApplyRearNewTool] ;

    It may be confusing but I was hoping to give you some examples to understand the function.

  • a more simple solution would be to put the values into a PR[#] and use it as a tool offset instead of a frame offset.

    PR[1,6:Tool Offset] = PR[1,6:Tool Offset] + 8

    L P[10:Original Point] 500mm/sec FINE Tool_Offset,PR[1:Tool Offset]

Advertising from our partners