YRC 1000 - H20DT - Palletizing Help

  • Hello,


    I am looking for help on palletizing .


    Currently, I have 50 objects to stack. I can do layers of 10.

    I can stack them now, but was looking for a more efficient way to do it.


    Is there a way to create an origin point, (X,1,y1,z1) and then each layer just add a set +z value to add another layer, and just loop that. that way I don't have to create a new point or origin point for each layer.

  • Is there a way to create an origin point, (X,1,y1,z1) and then each layer just add a set +z value to add another layer, and just loop that. that way I don't have to create a new point or origin point for each layer.

    Sure, you can use a Position Variable and Shift on the amount and direction. Before your moves that you want to shift add a line that reads SFTON Pxxx. The Pxxx is a variable that has an address. Use an address that is not being used by the system, such as P050. When you want to move to a non-shifted position add the SFTOF.


    MOVJ

    MOVJ

    SFTON P050

    MOVL

    MOVL

    'end effector

    MOVL

    SFTOF


    After the layer is done you could add Pxxx Pxxx. The second position variable has the amount in the Z-element that is the height of the object.


    ADD P050 P051 P051 has a Z-value of the object height.



    Another way is to have a layer counter instead of the ADD. After a layer is completed INC the layer counter and multiply.


    INC I000

    SET D050 (I000-1)*Object height

    SETE P050 (3) D050


    After the pallet is complete re-zero the shift amount with SUB P050 P050.


    You could also program all the positions calculated out.


    The wonderful world of programming, 10,000 ways to do the same thing.



    All address are for example only. You would need to use something that is not being used already.

    I know a thing or two, because I’ve seen a thing or two. Don't even ask about a third thing. I won't know it.

  • Awesome, thanks. Definitely multiple ways of doing different things.


    Do you have any ideas on how to start from the middle of a layer?


    Like, if I was palletizing 10 parts per layer, and got to the 3rd layer on part 5, and stopped the program for some reason. How could I cycle the robot to start from the 3rd layer part 6?

  • What I do is have a label for a position on the layer.


    JUMP *1 IF B010=1

    JUMP *2 IF B010=2

    PAUSE

    'Invalid position.

    JUMP *OUT

    *1

    SFTON P050

    'approach point

    MOVJ C00002 VJ=50.00

    'drop point

    MOVL C00003 V=400.0 PL=0

    CALL JOB:OPENGRIP

    TIMER T=0.50

    'approach point

    MOVL C00004 V=1600.0

    'increment part counter

    INC B010

    JUMP *PLACED

    *2

    SFTON P050

    'approach point

    MOVJ C00005 VJ=50.00

    'drop point

    MOVL C00006 V=400.0 PL=0

    CALL JOB:OPENGRIP

    TIMER T=0.50

    'approach point

    MOVL C00007 V=1600.0

    'increment part counter

    INC B010

    JUMP *PLACED



    *PLACED

    SFTOF


    Off of this I can start anywhere on the pallet with a layer counter and position on layer counter.

    I know a thing or two, because I’ve seen a thing or two. Don't even ask about a third thing. I won't know it.

  • well I think that the best way to do the palletizing is calculating the position.

    You can have a macro that would do the math, according the arguments used to call the macro.

    Like, call macro arg1 layer, arg2 part count

    With that you calculate the position. No mess with jumping up and down.

  • well I think that the best way to do the palletizing is calculating the position.

    Agreed. The questions led me to believe the OP doesn’t have a lot of experience. Learn the basics then move to more complex programming.

    I know a thing or two, because I’ve seen a thing or two. Don't even ask about a third thing. I won't know it.

Advertising from our partners