Large URP Programs Memory Usage Error

Hello,

I’m a developing offline programming software for welding. Some of our programs can end up quite large with hundreds of welds, each of which can have several motions, touch sense points, calculations etc.

This leads to generated URP programs with 10000+ nodes as shown below. We’re running into errors loading some of these onto the robot, like the one shown below.

Typically I would split these into several sub-programs with a main program to call them so they’re not all loaded at once, but from what I can see each “SubProg” is still included in the main program itself, so I don’t think this will solve the issue as it will still be loaded.

Does any one have any advice / solutions for loading very large URP programs?

I’d say take a look at this post: garbage collection - Error java.lang.OutOfMemoryError: GC overhead limit exceeded - Stack Overflow

Not sure how your software is generating nodes or what it’s doing, but you might be holding on to too many references. At the VERY end of the day, the robot just needs to see a .script file. It would already have a full instruction set. But it looks like you’re using a thread to talk back and forth with the Java environment, so if you aren’t disposing of objects properly you could definitely be running the Garbage Collector out of memory.

Thanks Eric! We’re not actually generating/running any custom URP nodes or Java code, these are all standard ones generated from an offline environment then transferred onto the robot.

We chose to generate a URP rather than a script file so the user could see what the program is doing and edit it on the teach pendant.

I have a idea:

Instead of using subprog try using the Script Node Set to File. This allows you to run a whole script file in a way where it is not embedded in the file tree as it is not using the URP file.

if these script files also has a URP file then they could be load individually should changes be needed.

Thanks cg1! Unfortunately these are actually large URP programs, not URScript files.