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


Add New Comment


b.schliessmann   

asked 5 months ago
Closed



Best Answer

1

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.

Dieter Henkel   

answered 5 months ago


 


By Ordoban on 7/6/2017 | Like (0) | Report

Once again the request to the freelance developer:
please set for the 16MB controller better default values.


By Dieter Henkel on 7/6/2017 | Like (0) | Report

@Ordoban: Has been done already. Don't remeber from which version on though. In my current installed version (2016SP1) FE sets Objects 5000, PRAM 4 MB for PM 803F and 3000 Objects 900 KB for the PM 802F.


By Ordoban on 7/6/2017 | Like (0) | Report

Ah, very nice.


By b.schliessmann on 7/10/2017 | Like (0) | Report

Hello Dieter,

thank you very much for your detailed explanation! :) My answer comes a bit late because of our tight schedule.

I raised the PRAM and Max Objects and did a Load Whole Station. Unfortunately, first it failed (E_STATION_ABORT if I remember correctly), then the Secondary didn't synchronise, but the third attempt worked fine.

Thank you very much for the rules of thumb regarding PRAM and RAM. With the hint that PRAM and RAM size should generally be the same, do you mean that about the same amount of PRAM and RAM should normally be free, or that the PRAM should occupy about half of the RAM?

The Global Variables size you're referring to, that's the "Variablenbereich" in German? It has 32K total and 27K free, seems fine to me. Is this the memory range where global variables are stored? Can/should I change the size in some cases?

A last question -- can there arise the need to change the "Configured Redundancy Memory" in the resource's boot parameters?

Many thanks and best regards


Björn


By Dieter Henkel on 7/10/2017 | Like (1) | Report

Hello Björn,
when you set the PRAM size, then the RAM size is calculated automatically. When I say the RAM size and PRAM size should approx be the same, I mean that after the setting the variables PS.RAM_SIZE and PS:PRAM_SIZE should have the same value.

The Global Variables size need only be adjusted, if the free size comes close to 0, which means your total number of variables in this resource take close to 32K of RAM.

The Configured Redundancy Memory needs only be corrected if the value of Requiered Redundancy Memory comes close to (or is even higher than) the configured value. After plausibility check you should see the Required .... value shown in the corresponding field.


By b.schliessmann on 7/11/2017 | Like (0) | Report

Hello Dieter,

again, many thanks for your assistance!

Best regards


Björn


Add New Comment


Answers

1

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.

Dieter Henkel   

answered 5 months ago


 


By Ordoban on 7/6/2017 | Like (0) | Report

Once again the request to the freelance developer:
please set for the 16MB controller better default values.


By Dieter Henkel on 7/6/2017 | Like (0) | Report

@Ordoban: Has been done already. Don't remeber from which version on though. In my current installed version (2016SP1) FE sets Objects 5000, PRAM 4 MB for PM 803F and 3000 Objects 900 KB for the PM 802F.


By Ordoban on 7/6/2017 | Like (0) | Report

Ah, very nice.


By b.schliessmann on 7/10/2017 | Like (0) | Report

Hello Dieter,

thank you very much for your detailed explanation! :) My answer comes a bit late because of our tight schedule.

I raised the PRAM and Max Objects and did a Load Whole Station. Unfortunately, first it failed (E_STATION_ABORT if I remember correctly), then the Secondary didn't synchronise, but the third attempt worked fine.

Thank you very much for the rules of thumb regarding PRAM and RAM. With the hint that PRAM and RAM size should generally be the same, do you mean that about the same amount of PRAM and RAM should normally be free, or that the PRAM should occupy about half of the RAM?

The Global Variables size you're referring to, that's the "Variablenbereich" in German? It has 32K total and 27K free, seems fine to me. Is this the memory range where global variables are stored? Can/should I change the size in some cases?

A last question -- can there arise the need to change the "Configured Redundancy Memory" in the resource's boot parameters?

Many thanks and best regards


Björn


By Dieter Henkel on 7/10/2017 | Like (1) | Report

Hello Björn,
when you set the PRAM size, then the RAM size is calculated automatically. When I say the RAM size and PRAM size should approx be the same, I mean that after the setting the variables PS.RAM_SIZE and PS:PRAM_SIZE should have the same value.

The Global Variables size need only be adjusted, if the free size comes close to 0, which means your total number of variables in this resource take close to 32K of RAM.

The Configured Redundancy Memory needs only be corrected if the value of Requiered Redundancy Memory comes close to (or is even higher than) the configured value. After plausibility check you should see the Required .... value shown in the corresponding field.


By b.schliessmann on 7/11/2017 | Like (0) | Report

Hello Dieter,

again, many thanks for your assistance!

Best regards


Björn


Add New Comment



Get weekly AKS updates


Partner Exclusive Webinars

 

> – Login to the partner portal to register



Points Redemption Program - Redeem your points for ABB training, Bluetooth speakers and mugs. Terms and conditions >


Earn points when you refer a friend
AKS Referral Program is "Live" - Learn more



AKS Experts


avatar
Ask Rob Lyon   

Rank: 3

info@lymac.co.nz I'm an independent DCS software and commissioning engineer with extensive experience in 800xA and other ABB products. I've worked in almost every corner of the world and still haven't seen it all.


avatar
Ask Dieter Henkel   

Rank: 23


avatar
Ask Sumit Gargav   

Rank: 2

I have worked with Freelance in majority, with 800xA FD and Melody system partly. Also had opportunity to work with Protocols - HART,Profibus,FF & Modbus.


avatar
Ask Flavio Mussolin   

Rank: 4

ABB AVP, Senior Electronic and Automation Engineer with over 30 years of experience in the field of process automation automotive, pharmaceutical, hollow glass, steel and rolling.


avatar
Ask Govindaraj   

Rank: 10

Working in ABB India Operation Center. Have Project engineering and commissioning experience in ABB 800xA, Freelance, AC500.


avatar
Ask Ronny Lindström   

Rank: 21

ABB Service Engineer


avatar
Ask Harsha.D   

Rank: 6

Tech.Support,software and commisioning engineer with Proficient knowledge in 800xA and its products, RNRP,Networking in general.


avatar
Ask nikismith   

Rank: 270

I have been a part of the Recording & Control Factory team for 17 years in total, having spent a number of years as a repairs technician withi the manufacturing department, but being in my current role for 9 years now.


avatar
Ask MMM   

Rank: 5

ABB PA CT Technical Support


avatar
Ask WvanWees   

Rank: 7

I'm a senior service engineer working for ABB in The Netherlands.


avatar
Ask kstoilov   

Rank: 15

Control System Engineer: 800xA, Compact 800, AC500, AC31-50, Advant Master, Simatic, AC&DC Drives 11 years worked for ABB - Control Systems


avatar
Ask Stefan Stromqvist   

Rank: 1

I joined ABB in the year of 1994 and has since 1999 been working as a Service & Support Engineer at BU Control Technologies in Västerås, Sweden. My areas of expertise are: 800xA Base, 800xA for Advant Master, Information Management, operating systems, RNRP and Ethernet comms/networking in general.