E_DMS_NO_MEM error while incrementally loading AC 800F
Hello,
I'm afraid I've got quite an inconvenient issue here. While trying to incrementally load an AC 800F (16MB, redundant), the following error message appears (translation):
"Loading object 525 failed because of E_DMS_NO_MEM. The station was stopped. Would you like to restart it?"
Object 525 is the PA of one of my three tasks, which is "dirty" according to "display selected objects" in commissioning.
Does the error refer to a PRAM shortage? The relevant system variables are
PS.PRAM_Size 946991
PS.PRAM_Free 149215
PS.RAM_Size 14069504
PS.RAM_Free 12976384
149K PRAM might be too low (the other controllers have > 200K free). RAM seems fine to me.
To get out of this tight corner, do I have to increase PRAM size in boot parameters (900K is set presently) and do a painful "load whole station"?
Or could I try to save memory by reducing PRAM-heavy components? Which components strain the PRAM most -- FB instances, variables? Can I display object sizes somehow?
Hoping for any suggestions or insights,
best regards
Björn
Voted best answer
Hello Björn,
PRAM is used to store the downloaded information for the case of a reset or cold start. PRAM stands for Protected RAM. The PRAm is write protected against accidental overwrite by faulty applications.
The content of the PRAM is for performance reasons copied into the RAM for execution. In addition the RAM serves dynamic memory requrests from applications.
With this in mind we can see, that PRAM size and RAM size generally should be the same, with PRAM on the lower side. It actually depends on your application. If you create huge matrices in your application the size of those matrices would add to your needed RAM, but not PRAM.
Looking at your RAM_Free of 12 MB from 14 MB available (2 MB of the 16 MB AC 800F are used by the operating system) I think your 947 KB PRAM size is way to small.
You should set it somewhere in the range of 4-6 MB. Don't forget the Max Objects (also in the boot parameter). It should be around 5000-6000.
Also have a look at your Global Variables size. It is set in the Header dialog of the process station resource in the P-Tree.
The straight way out of your dilemma is to change the PRAM size and do a Load Whole Station.
You can reduce the effect by uploading the curent parameter settings into the project file prior to the download (though I'm not sure if this will still work in your current situation) and re-evaluate the initial values of of your variables.
Add new comment