Creating a new Palletization plan

  • Hey guys,


    The thing is i'm stuck. I'm doing an internship for my last year of college. I was asked to create a new palletization plan. The robot has already 25 plans (or so it seems, i don't really understant much of the program but i can see that the previous programmer made 25 cases so he gave the operator 25 choices of plans). I really am a beginner, what i'm trying to do now is understand the previous program so i can add the requested plan. I have the pallet and box dimensions but i don't know where to put them. I don't understand how they calculated the positions. Do you guys have any documentation on the creating process?


    Thank you in advence.

  • Definitely READ FIRST.


    More specifically, we would need to know how the existing "Palletizing Plans" were made. They could have been programmed entirely "by hand" in raw KRL, or the original programmer could have used a version of PalletTech that requires a licensed piece of offline software to generate patterns.

  • This is the program (I don't even know if I have the right to put it here, but just in case, this program is not my property, it's the property of the FABRICOM company). I don't have any software so I literally can't run the program yet, they just gave me a bunch of files with sub programs everywhere "i read the program in .txt and I don't even know what was writtend by kuka and what was written by the former programmer". After, adding my program, they expect me to test it directly on the robot (I don't know how it works because the only course I had in KUKA involved the SMARTPAD so I guess I will inplant it into the smart pad using a USB card?). An automation technician is supposed to take the lead and connect the robot to the PLC.


    What I think I understand as of now, is that in the palletization plans are written in the files named pr_po_ppi (i=1 to 25) And the positions are saved there. What I don't understand however is whether he saved the box points and the pallet points using the points method or he used some other way ?


    I read the software user manual but it only detailed what I already saw in class. I don't know. I'm kinda lost.... should I request using the SMARTPAD? to see how the program runs there? I don't know...

  • first you would need to expand "gestion_prog.src" to add new case (or cases).


    then duplicate one of pattern modules and adapt it...

    this means you would need to modify calculation (in SRC) and pattern data (in DAT).

    this will require advanced KRL skills.

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

  • There's a lot being driven by variables that aren't in that package, like NUM_PROG, NUM_CANTON, NUM_POSE, etc.


    It looks like GESTION_CANT is the "main" program, and the PRISE and POSE_BRIDE_xx program is the one that actually executes the motions. The PR_PO_xxx programs appear to modify the points that PRISE executes based on varaibles like NUM_CANTON, NUM_POSE, etc.


    Reverse-engineering this would need an entire backup of the robot, and an understanding of who's controlling those variables, and what values they can take on. It's impossible to say if they are controlled by a counter in some other program in the robot, or remotely by a cell PLC, or something else.


    The calling stack seems to go:

    GESTION_CANT calls PR_PO_xxx, PR_PO_xxx modifies points, then calls PRISE and then POSE_BRIDE_xx in that order.


    If you can determine what all these variables are doing and where they're controlled from, you might be able to find the PR_PO program for the product most similar to the one they want you to add, copy that, then modify it. But there's a lot of missing data here.


    Just looking at PR_PO_PP01, NUM_CANTON and NUM_POINT control what recorded point is copied into XPT_POSE, and the various PLAN_01 points are visible in the .DAT file, but why they have the different dimensions they do is unknown. The rotations all seem to be the same, they mostly vary from each other in X, but what that means is dependent on many factors that aren't visible in these programs.


    At minimum, you're going to need a complete robot backup, and a tool like BareGrep, and do a lot of tracing. This will be a non-trivial reverse-engineering task.

  • Hey again!


    I added these lines in the "gestion_prog" file to get the user to choose the added palletization plans:


    Code
    CASE 26
    ;trajectoire de prise convoyeur d'entrée et de pose
    ;sur l'un des cantons avec le plan de palettisation 26
    PR_PO_PP26 ()
    CASE 27
    ;trajectoire de prise convoyeur d'entrée et de pose
    ;sur l'un des cantons avec le plan de palettisation 27
    PR_PO_PP27 ()


    The most similar pallet plan to the one I need to do is the plan 02. So I changed the code a bit which resulted to this:

    Of course I didn't do much, I just redirected the code to the next one.

    Now, I learnt that the PLC is the one that sets the dimensions of both the box and the pallet. However, I still don't understant whose are those coordinations. My pallet plan is supposed to be like this:

    1 3 57
    2468


    Two rows and 4 columns. I'll come back tomorrow if I find anything else.


    Thank you guys for your comments I feel less alone on this.

    Edited 2 times, last by ekkobluee ().

  • Robot type: Kuka Kr 180 PA


    After doing some researche I found out that the pallet pattern I'm asked to do already exists in the program (it's the pr_po_pp02 ( )) so I don't think I need the do any modification on the program. However, I need to somehow add other items (two items with different dimensions and layers). The thing is, I can't find the program file with all the data (items' data, pallet data etc...). I know that they didn't use any palletizing software and technology(Palletedit/Palletech). .....Still looking....

  • As I said before, you need to get a full backup of the robot, not just this handful of files, and then chase variables through the file tree. Building a full flowchart of how one style operates would also be handy in unravelling exactly how the existing code works.

Advertising from our partners