前言
S7-300/400 PLC实现各种复杂控制任务的根本是数据处理,为了更好的明白PLC的程序执行原理,我们有必要弄清楚以下几个问题:
- CPU是怎样进行数据存取和处理的?
- 我们编程及监视程序时,各种数据到底存放在哪里?
本文旨在深入认识以下S7-300/400PLC的存储区,总体来说,S7-300共用4类存储器;S7-400则有3类存储器,如图1所示。
图1 S7-300/400存储器汇总
一、各类存储器简介
1、装载存储器(Load Memory)
- 装载存储器用于存放不包含符号地址分配和程序注释的用户程序。
- 装载存储器可以是存储器卡、内部集成的RAM或EPROM
2、工作存储器(Work Memory)
- 工作存储器中仅存放与运行相关的程序和数据。
- 类型为RAM,集成在CPU中。保存在其中的数据需通过电源模块供电或后备电池来保持;
- 除了CPU417-4外,每一款CPU的工作存储器的大小是固定的,不能扩展。如果工作内存对于一个工程应用来说不够大,则必须选用带有更大内存的CPU。(CPU417-4可以通过插入专用的存储器卡来扩展工作存储器)
3、系统存储器(System Memory)
系统存储器用于存放以下数据:
- 输入/输出过程映像区PII、PIQ
- 位存储区M
- 定时器T
- 计数器C
- 本地数据堆栈L堆栈
- 块堆栈
- 中断堆栈
4、保持存储器(Non-Volatile Memory)
- 类型为:非易失性的RAM,通过组态可以在PLC掉电后即使没有安装后备电池的情况下,保存一部分数据。
- 可组态到保存存储器的数据有:位存储器(M)、定时器(T)、计数器(C)和数据块(DB),如图1所示。
- 仅300系列PLC有保持存储器。
图2 保持存储器及数据组态
二、各类存储器的具体用法
图3 S7-300的存储器概念
如图3为S7-300的存储器及其数据存取方法,具体如下:
1. 当在step7中执行下装(download)时,首先将PG/PC或电脑中工程项目下的用户程序下装到装载存储器,同时,把与运行相关的程序和数据加载到工作存储器;
2. PLC执行工作存储器中的程序,并根据需要和系统存储器进行数据交互,如读位存储区的数据、写数据到输出过程映像区等;
3. 若CPU没有后备电池,当系统断电时,除了定义在保持存储器中的数据外,工作存储器中的数据及系统存储器的数据都会丢失;
4. 重新上电后,系统会做两件事:一是将装载存储器中与运行相关的程序和数据重新加载到工作存储器中;二是将保持存储器中的数据重新写入相应的存储区,保证关键的运行数据不丢失。
图4 S7-400的存储器概念
如图4位S7-400的存储器及其数据存取方法,与S7-300不同的是,它没有保持存储器,有兴趣的小伙伴可以认真分析一下各存储器的读写过程。