S7-300 PLC的存储区可以划分为四个区域:装载存储器(Load Memory)、工作存储器(Work Memory)、 系统存储器(System Memory)和保持存储区(Non-Volatile memory),具体如图:
![cc83815724599952415a15048a733d80.png](https://i-blog.csdnimg.cn/blog_migrate/dbbfa5ac8b643cec0dde28ab4b7a330e.jpeg)
1. 系统存储器:
系统存储器用于存放输入输出过程映像区(PII,PIQ)、位存储器(M)、定时器(T)和计数器(C))、块堆栈和中断堆栈以及临时存储器(本地数据堆栈)。
2. 工作存储器:
工作存储器仅包含运行时使用的程序和数据。RAM 工作存储器集成在CPU中, RAM中的内容通过电源模块供电或后备电池保持。除了S7 417-4 CPU可以通过插入专用的存储卡来扩展工作存储器外,其他PLC的工作存储器都无法扩展。
![ec845d4f9402d067850710a17965581d.png](https://i-blog.csdnimg.cn/blog_migrate/f13f6e3c8e332af4e068e3a0e5c839c0.jpeg)
3. 装载存储器:
装载存储器是用于存放不包含符号地址分配或注释(这些保留在编程设备的存储器中)的用户程序。装载存储器可以是存储器卡、内部集成的RAM或内部集成的EPROM.
4. 保持存储器:
保持存储器是非易失性的RAM,通过组态可以在PLC掉电后即使没有安装后备电池的情况下,保存一部分位存储器(M)、定时器(T)、计数器(C)和数据块(DB)。在设置CPU参数时一定要指定要保持的区域。
1) 当在step7 中执行下装(download)时,会把编程设备中的用户程序下装到CPU的装载存储区,同时会把运行时使用的程序和数据写入工作存储区(如OB1和数据块)。
2) 若CPU没有后备电池,当系统断电时,在工作存储器中定义了保持特性的数据块会把数据写入保持存储器中,上电后保持存储器会把断电时的数据写入到工作存储区, 保证了运行数据断电不丢失。
3) 若CPU没有后备电池,当系统断电时,系统存储区中定义n的保持位存储器(M)、定时器(T)和计数器(C))断电时也会写入保持存储器,恢复上电时断电时的数据重新写入,保证了运行数据断电不丢失。
![dfa246758dd35163b63eb425a8c0d5f7.png](https://i-blog.csdnimg.cn/blog_migrate/02b61cbae363ac3512258f2fc47bed33.jpeg)
由于S7-400 PLC没有非易失性RAM,即使组态了保持区域,再掉电时若没有后备电池,也将丢失所有数据。这是S7-300 PLC 与S7-400 PLC 的重要区别。