FANUC ROBOTS - Palletizing Function using User Frames?

  • Hello there!

    I want to make a program in which I use the Palletizing Function for FANUC ROBOTS but assigned to a specific User Frame. I know it is possible to use Position registers and then it'll be easy to change the pallet's placing with a user frame, but I want to know if it's possible to specifically use the Palletizing Function for doing so.

  • Could you elaborate on how to do it? It looks like it's always getting the reference from the User Frame 0 rather than an UF set by me. And even changing the UF in the exact same program I made using the palletizing function doesnt change anything. Example: I have two pallets that have the exact same format and size, one set to UF1 and another to UF2, if I use UF1 to set up my first pallet, then set the exact same program to use UF2, it'll still go to the touchups I did in the first pallet, not the second one as I'd want it to.

  • I'm sorry, I misunderstood your question. You are right that the palletizing command always stores the points in world coordinates. I don't believe there is any way to simply change the user frame to move the pallet points. You would need to use a PR to store the offset between the two pallets/user frames. Something like this:

  • Oh I see, thank you nonetheless! I ended up making up a program in which I can determine how many pieces there are in the 3 axys (X Y Z) for the pallet and that you can determine the distance between pieces on all 3 axys as well. In any case I'll be attaching its code here. In this case you'd need to save PR2 as the first point of your pallet, and if its a linear pallet, it should work just fine.


    Code:


    1: UFRAME_NUM=3 ;

    2: UTOOL_NUM=1 ;

    3: ;

    4: ;

    5: PR[1]=LPOS ;

    6: PR[1]=PR[1]-PR[1] ;

    7: IF (R[1]=3),R[2]=(R[2]+1) ;

    8: IF (R[2]=3),R[3]=(R[3]+1) ;

    9: IF (R[1]=3),R[1]=(0) ;

    10: IF (R[2]=3),R[2]=(0) ;

    11: IF (R[3]=3),R[3]=(0) ;

    12: R[4]=R[1]*R[7] ;

    13: PR[1,1]=PR[1,1]+R[4] ;

    14: R[5]=R[2]*R[8] ;

    15: PR[1,2]=PR[1,2]+R[5] ;

    16: R[6]=R[3]*R[9] ;

    17: PR[1,3]=PR[1,3]+R[6] ;

    18: PR[1,3]=PR[1,3]+55 ;

    19: ;

    20: ;

    21:J PR[1] 100% FINE Offset,PR[2] ;

    22: PR[1,3]=PR[1,3]-55 ;

    23:J PR[1] 100% FINE Offset,PR[2] ;

    24: CALL OPEN_GRIPPER ;

    25: PR[1,3]=PR[1,3]+55 ;

    26:J PR[1] 100% FINE Offset,PR[2] ;

    27: R[1]=R[1]+1 ;

Advertising from our partners