Memory and program size

naturephoenix

Member
Join Date
Jan 2015
Location
Vienn
Posts
181
Can you clarify for me some things:
When I look inside specifications s7-1212C it says 50KB.
Does that mean that I can download to CPU 50000 bytes, respectively over 12000 REAL variables.

I usually use ET200S with Card 512KB. Where I can see how much my program takes of this memory.

Inside SIMATIC MANAGER when I click on BLOCKS, and Once I select all blocks at the moment in bottom right corner I see 44000 bytes, if I select system data it increase to the 49000 bytes.

Is this my memory usage?
 
Yeah, that it is pretty much. Offline can show little bit different values than real online view, but difference isn't much.

If you go on step 7 -> diagnostic/settings -> Hardware
you can check online use of memory card on CPU.
 
Every vendor's PLCs handle memory differently, and oftentimes the memory is done differently even between families from the same vendor. Things are usually not comparable between different families.

In Siemens, you generally have Work memory and Load memory. Work memory is like the RAM in a computer, and load memory is like the HD. In some families (400/1500) the work memory is split into Code memory and Data memory. In other families (1200/300/ET200S) the work memory is one big pot.

For your ET200S, the memory card you mention is the load memory. That will need to store all the blocks as well as the system data (the HW config, basically). I usually hear recommendations that the memory card is at least 2x as big as the data it needs to store, so you don't run into issues during a download in RUN.

For a 1200 (like your 1212C), the work memory is both code and data. So yes, 50KB = about 50,000 bytes. However, if you use it for 12k REALs, then you won't have much left over for your code. I think a more realistic estimate is assuming you'll need at least 50% of the work memory for code. If you have a 1200 project already, you can look at the memory sizes in Program Info, under the PLC in the project tree.
 
Every vendor's PLCs handle memory differently, and oftentimes the memory is done differently even between families from the same vendor. Things are usually not comparable between different families.

In Siemens, you generally have Work memory and Load memory. Work memory is like the RAM in a computer, and load memory is like the HD. In some families (400/1500) the work memory is split into Code memory and Data memory. In other families (1200/300/ET200S) the work memory is one big pot.

For your ET200S, the memory card you mention is the load memory. That will need to store all the blocks as well as the system data (the HW config, basically). I usually hear recommendations that the memory card is at least 2x as big as the data it needs to store, so you don't run into issues during a download in RUN.

For a 1200 (like your 1212C), the work memory is both code and data. So yes, 50KB = about 50,000 bytes. However, if you use it for 12k REALs, then you won't have much left over for your code. I think a more realistic estimate is assuming you'll need at least 50% of the work memory for code. If you have a 1200 project already, you can look at the memory sizes in Program Info, under the PLC in the project tree.

Thx on an answer, but how do you choice do you need new to order card.

50KB sounds a lot.
I'm using s7-1200 as MODBUS master, there are 4 slaves, lets say 100 BYTES I take from each slave.
So since only thats inside my program 50KB should be enough
 
Thx on an answer, but how do you choice do you need new to order card.

50KB sounds a lot.
I'm using s7-1200 as MODBUS master, there are 4 slaves, lets say 100 BYTES I take from each slave.
So since only thats inside my program 50KB should be enough

Essentially, the "correct" way to guess at memory is to write your program first, see how much memory it takes (in Portal, Program Info), and order your HW after.

Note that the memory card in a 1200 only increases the LOAD memory, not the work memory. 50KB of work mem is all you get whether you use a card or not. If you need more memory, I think you need to buy a bigger PLC.

50KB is a fair bit, but it really depends what you're doing with that 100 Bytes from each slave. If you're trying to do high speed processing, you might not be able to do it. If you're just passing the data to an HMI or a SCADA system, no problem. Just remember that the 50KB of mem includes the 400B of data you receive, but also the Modbus communication blocks, the settings for those blocks, and then whatever you want to do with the data.
 

Similar Topics

Hello, I'm searching for a comparision between an Omron and Siemens PLC in program memory size. fe: Omron CP1L-EM -> 10Ksteps Siemens S7-1214C...
Replies
5
Views
5,365
What if any limit do you put on program size vs. total memory before you upgrade to a processor with more memory. 64K memory processor and 62K...
Replies
1
Views
1,910
Hello friends, long time lurker first time poster here. I have a, lets say, unique situation with a CompactLogix PLC where we've lost the program...
Replies
3
Views
357
Is there anyway to be certain that the memory module in a ML1400 has been written to with the current program? I have controllers in the field...
Replies
0
Views
867
Hi All, I have an Omron PLC program which is copied from the memory card. Could you please tell can I open the PLC program using CX programmer or...
Replies
0
Views
958
Back
Top Bottom