Hello everyone,
I’m currently working on a project using a PC910, and I’ve run into a bottleneck with remanent (retain) memory. I need to store a large data area, but I’m hitting the limits of the configuration (I think). I’ve tried adjusting the memory settings in Automation Studio, but I haven’t been able to allocate enough space for my requirements.
Are there specific settings that I might be overlooking to maximize the available Retain space? If not, is it possible to purchase and install additional memory?
Thanks in advance for your help!
Best regards, Bram
Hello,
“Permanent PVs” + “Remanent global PVs” + “Remanent local PVs” = “RemMem memory size”
”UserRAM size” + “RemMem memory size” can be set up to the available PCI.2.IPLK.SRAM
Used section is calculated while building a project. So Used “Permanent PVs” + “Remanent global PVs” + “Remanent local PVs” = 622196. So you’d need to have PCI.2.IPLK.SRAM at least this capacity and set “Permanent PVs” and “Remanent global PVs” appropriately according to the Used section.
Hi Pavel,
Thanks for the respond.
The problem is that it does not matter what i change. The RemMem memory size cant go higher than 262144 Byte. Is there any way I can make this higher?
Decrease “UserRAM size” if it’s possible. As I’ve already written ”UserRAM size” + “RemMem memory size” can be set up to the available memory of the PCI.2.IPLK.SRAM HW.
Hi Pavel,
Ive tried a lot of different values but it doesnt matter what i make the ‘UserRAM size’, the ‘RemMem memory size’ cant exceed 262144 byte.
Could you make a screenshot of the Physical View where CPU and interface card order codes are visible?
Let me know if you need anything else!
small note:
BUT:
256 * 1024 = 262144 bytes
Ciao
Valerio
1 Like
So your Used “Permanent PVs” + “Remanent global PVs” + “Remanent local PVs” sum can be maximum 262144 with the current interface card.
Hi,
Valerio an Pavel were faster then me 
The maximum amount of RemMem size depends on the hardware, and, to the best of my knowledge, with APC910 (or to be more precise, with the interface cards inside) a maximum of 256kB remanent + permanent variables are possible.
The reason behind is, that in case of a power-fail it has to be ensured, that the RemMem can be copied with the remaining power delivered by capacitor, until the system switches completely off.
2 Likes
for sure we appreciate if you buy more B&R hw but maybe you can save some of your remanent data to file.
Ciao
Valerio
The additional SRAM can be utitilized with the functions from the DataObj library.
With DatObjCreate you can create a datamodule (name) with MemType doUSRRAM.
If you do noy use the checksum monitoring, you can write or copy data with a pointer.
If you want use checksum monitoring, you can write or read data with the DatObjRead and DatObjWrite functions.
This datamodule (name) will be present in the SRAM depending on battery.
Normally you would check if the data object exists with the DatObjInfo function block and if not then create the data object.
The SRAM has a slower access than the DRAM, but you could implement similar behavior like with remanent and permanent data.
At startup copy saved data from SRAM to DRAM. If something changes in DRAM write also to SRAM.