How many megabytes does the KUKA KRC4 support for programming?
KRC4 program capacity
-
JonatanSemp -
September 4, 2024 at 1:45 PM -
Thread is Resolved
-
- Go to Best Answer
-
When and where under what conditions? The question is far to vague:
Holding in the real-time controller?
On the hard disk on Windows?
While executing?Any specific problem you encountered?
Check out Dirloader tool. Usually it helps.Fubini
-
How many megabytes does the KUKA KRC4 support for programming?
The first limit you can hit is the RAM limit, and (last time I ran into it), it was very low -- only about 4MB. That was about 10 years ago, under KSS 8.3. This is not a physical RAM limit -- adding more RAM does not improve this situation. It's a limit inherent to something in VxWorks/KSS.
Briefly: The KRC runs everything from RAM. The HDD contents are loaded into the RAM drive during boot, but all execution and edits are made in the RAM drive, with periodic or event-driven writes from the RAM drive to the HDD.
The only way (so far) to get around the RAM limit is to use the DirLoader and "swap" program modules in/out of the RAM drive.
-
JonatanSemp
September 4, 2024 at 4:16 PM Selected a post as the best answer. -
The first limit you can hit is the RAM limit, and (last time I ran into it), it was very low -- only about 4MB. That was about 10 years ago, under KSS 8.3. This is not a physical RAM limit -- adding more RAM does not improve this situation. It's a limit inherent to something in VxWorks/KSS.
Briefly: The KRC runs everything from RAM. The HDD contents are loaded into the RAM drive during boot, but all execution and edits are made in the RAM drive, with periodic or event-driven writes from the RAM drive to the HDD.
The only way (so far) to get around the RAM limit is to use the DirLoader and "swap" program modules in/out of the RAM drive.
Thanks for the information, and how does DirLoader work? Could you clarify this for me?
-
Thanks for the information, and how does DirLoader work? Could you clarify this for me?
DirLoader basically does a similar series of actions as if you were deleting a module, then loading a different one, manually on the pendant. But performs this in Auto modes. This requires jumping through some hoops, given the way KSS performs a compile/link cycle every time a module is modified.
For example, let's say CELL links to Module Alpha, which links to Modules Bravo, Charlie, and Delta. But you want the DirLoader to swap out Bravo, Charlie and Delta for Echo, Foxtrot, and Golf. The DirLoader will:
1. Comment out the call to Alpha from CELL
2. Delete Alpha, Bravo, Charlie, and Delta
3. Load the contents of a directory, in alphabetical order, linking each module as it loads. Thus, the naming of the modules needs to be such that the modules are called in reverse order of dependency, from "lowest" to "highest."
4. The directory will need to contain Echo, Foxtrot, and Golf, as well as a different version of Alpha (same name, different contents) that calls E, F, and G instead of B, C, and D.
5. Un-comment the line(s) commented out of Cell in Step 1
6. CompleteThe DirLoad works, but it's a bit of a kludge to work around a bunch of very old (over 40 years at this point) core Module-handling behaviors in KSS.
-
- Best Answer
directory loader allows adding/removing/replacing programs on KRC. basically it allows you to remove programs to make some space and then add new ones.
to get more info:
1. check your KSS version,
2. determine correct DirLoader for your KSS,
3. download manual for it and go through it. there are restrictions that you want to be aware of.last two steps require access to Xpert portal.
basically there are several limits, such as:
max length of the line in the file
max number of lines
max number of modules
memory limits that are KSS specific etc.
also note that program structure plays a role.
typical program module has two files (SRC and DAT). persistant variables are declared in DAT file. those variables are given memory locations when program is selected - even if one does not run program. that memory allocation is retained and used next time program is selected.guess what happens when there are many program modules and one keeps selecting/deselecting different ones. more and more memory is alocated and it is not released until cold start. so when memory as premium and programs are large, everything that could be in SRC should be in SRC. largest programs are exports from various Cad-To-Path software as they have many points. but all points are in the SRC file. too large program can be broken down into chunks that are called from main program.
-
JonatanSemp
September 4, 2024 at 9:21 PM Selected a post as the best answer. -
JonatanSemp
September 4, 2024 at 9:21 PM Selected a post as the best answer.