overall file size limitation in R1 directory 3
-
Is the admissable user memory in KRC smaller than 8mb in KRC4-compact? (0) 0%
-
Is it possible to use a main program and load several larger size sub-programs in R1 using DirLoader to overcome overall-file size limitation? (3) 100%
Hi everyone,
I am working on a .src file that has 30mb in size. I knew that there's a size-limit for single .src file because the file should be loaded in VxWorks (RealTime OS), which has a restricted RAM size. However, thank god that our brilliant KUKA-PRC(grasshopper kuka plugin) has the functionality of <Splitting KRL for *** lines each> which automatically split my program into severak sub-programs, which all have size under 8 mb limitation.
However, when I get so happy to think that I can finally run my programs with ease, I cannot copy and paster them in KRC:/R1 folder and the system showed me
-- "No user memory available."
and only successfully loaded one of the files into R1 folder. I cleaned my KRC:/ folder from bottom to the top but still cannot load my programs in KRC directory.
I understand that there should be a over-all size limitation because it needs some spare RAM to process and guarantee safety. But it is too restrictive to only allow users to utilize 8 mb for all.
I am using Kuka KR10-1100 and has a KRC4-compact controller, KSS 8.3.105.
Is there some thing wrong with my KRC or it is a common problem? If it does, what is the reason to implement <Split functionality>, since even if we split the program into several smaller one, we still cannot load them in the KRC RAM?
And after this, I searched internet and found some posts in our forum (somewhat) related to this problem:
- Single file limitation enlargement by changing Physical Pages (KRC 4) https://www.robot-forum.com/robotforum/kuk…start-required/
- Memory upgrade on by changing Physical Pages related variable (KRC2) https://www.robot-forum.com/robotforum/kuk…pgrade-on-krc2/
- Mikail has posted some stuff about DirLoader software package https://www.robot-forum.com/robotforum/kuk…w-does-it-work/, https://www.robot-forum.com/robotforum/kuk…kuka-dirloader/
I don't want to entangle the usage of CNC here, as KonstantinosP has told us about his painful experience fighting with this and recommended the using of CNC or CAM package to resolve the large-size file running problem.
I want to focus on how to load several “legal” (with size under 7mb) programs into R1 folder and use a main programs to (wrap them and to) run them.
The "Main Programs" are showed as followed:
&ACCESS RVP
&REL 1
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM EDITMASK = *
DEF Foshan ( )
EXT Foshan_1()
EXT Foshan_2()
EXT Foshan_3()
;FOLD INI
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;ENDFOLD (INI)
;FOLD STARTPOSITION - BASE IS 0, TOOL IS 1, SPEED IS 5%, POSITION IS A1 5,A2 -90,A3 100,A4 5,A5 10,A6 -5,E1 0,E2 0,E3 0,E4 0
$BWDSTART = FALSE
PDAT_ACT = {VEL 5,ACC 100,APO_DIST 50}
FDAT_ACT = {TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE}
BAS (#PTP_PARAMS,5)
PTP {A1 5,A2 -90,A3 100,A4 5,A5 10,A6 -5,E1 0,E2 0,E3 0,E4 0}
;ENDFOLD
;FOLD LIN SPEED IS 0.1 m/sec, INTERPOLATION SETTINGS IN FOLD
$VEL.CP=0.1
$APO.CVEL=70
;ENDFOLD
;FOLD RESET OUTPUTS TO DEFAULT VALUES (FALSE for DIGITAL, 0 for ANALOGUE
$OUT[1]=FALSE
$OUT[2]=FALSE
$OUT[3]=FALSE
$OUT[4]=FALSE
$OUT[5]=FALSE
$OUT[6]=FALSE
$OUT[7]=FALSE
$OUT[8]=FALSE
$ANOUT[1]=0.0
$ANOUT[2]=0.0
$ANOUT[3]=0.0
$ANOUT[4]=0.0
;ENDFOLD
Foshan_1()
Foshan_2()
Foshan_3()
END
I've got Directory Loader in my hand but I don't know how to use it to achieve my goal.
As SkyFire has said in https://www.robot-forum.com/robotforum/kuk…kuka-dirloader/:
QuoteBut basically, the DirLoader was a way to load new files into the robot's RAMdrive, programmatically, and overwrite existing programs, while running in Auto.
Short history digression: the /R1 directory you see in the KUKA Navigator window is actually a RAM drive, not the hard drive -- all .SRC, .DAT, and .SPS files get loaded into the RAM drive during boot up, and then saved back to the hard drive periodically. You can actually tamper with the program files on the hard drive while the robot is running, and the programs the robot is running will remain unaffected.
So, historically, the only way to load new files (or new versions of existing files) into the /R1 tree was to load them manually in Teach mode, or to "backdoor" the files onto the hard drive and then perform a cold reboot. But once customers started needing files larger than the RAMdrive could support, a solution had to be found.The DirLoader does just what it says on the tin: it grabs an entire directory from whatever hard drive (or, potentially, network drive, or USB drive) you configure the DirLoader to grab, and copies the entire contents of that directory into the /R1 tree (usually under /R1/Programs/, but I believe you can specify that).
So I think I can load the size-overflowed files in R1 by using DirLoader and run my main programs as above.
Mikail has casted some light on this, by showing us how to trigger Dir Loader in main programs.
But how should I implement this in my program? Invoke DirLoader() (check the code here: https://www.robot-forum.com/robotforum/kuk…w-does-it-work/) in my main program before EXT foshan_1() ... or after? What should I change the original DirLoader implementation of Mikail?
In a word, I want to use the main program Line -> EXT foshan_i() (i = 1, 2, 3, 4) available by loading them in R1 utilizing KUKA Directory Loader Package.
Any comment and suggestion is appreciated. Thank you in advance.
Best,
Yijiang