西门子 S7-200PLC 的数据存储器的编址与寻址
(一)数字量输入和输出映象区
1.输入映象寄存器(数字量输入映象区)(I)
数字量输入映象区是 S7-200CPU 为输入端信号状态开辟的一个存储区。输
入映像寄存器的标识符为 I,在每个扫描周期的开始,CPU 对输入点进行采
样,并将采样值存于输入映像寄存器中。
输入映像寄存器是 PLC 接收外部输入的开关量信号的窗口。
可以按位、字节、字、双字四种方式来存取。
(1)按“位”方式:从 I0.0~I15.7,共有 128 点
(2)按“字节”方式:从 IB0~IB15,共有 16 个字节
(3)按“字”方式:从 IW0~IW14,共有 8 个字
(4)按“双字”方式:从 ID0~ID12,共有 4 个双字
2.输出映像寄存器(Q)
数字量输出映象区是 S7-200CPU 为输出端信号状态开辟的一个存储区。输
出映像寄存器的标识符为 Q(从 Q0.0~Q15.7,共有 128 点),在每个扫描
周期的末尾,CPU 将输出映像寄存器的数据传送给输出模块,再由后者驱动
外部负载。
(1)按“位”方式:从 Q0.0~I15.7,共有 128 点
(2)按“字节”方式:从 QB0~QB15,共有 16 个字节
(3)按“字”方式:从 QW0~QW14,共有 8 个字
(4)按“双字”方式:从 QD0~QD12,共有 4 个双字
说明:实际没有使用的输入端和输出端的映象区的存储单元可以作中间继
电器用。
(二)模拟量输入映象区和输出映象区
1.模拟量输入映象区(AI 区)
模拟量输入映象区是 S7-200CPU 为模拟量输入端信号开辟的一个存储区。
S7-200 将测得的模拟量(如温度、压力)转换成 1 个字长(2 个字节)的
数字量,模拟量输入映像寄存器用标识符(AI)、数据长度(W)及字节的
起始地址表示。
从 AIW0~AIW30,共有 16 个字,总共允许有 16 路模拟量输入。
说明:模拟量输入值为只读数据。
2.模拟量输出映象区(AQ 区)
模拟量输出映象区是 S7-200CPU 为模拟量输出端信号开辟的一个存储区。
S7-200 将 1 个字长(2 个字节,16 位)的数字量按比例转换为电流或电压。
模拟量输出映像寄存器用标识符(AQ)、数据长度(W)及字节的起始地址
表示。
从 AQW0~AQW30,共有 16 个字,共允许有 16 路模拟量输出。
(三)变量存储器(V)(相当于内辅继电器)
PLC 执行程序过程中,会存在一些控制过程的中间结果,这些中间数据也需
要用存储器来保存。变量存储器就是根据这个实际的要求设计的。变量存
储器是 S7-200CPU 为保存中间变量数据而建立的一个存储区,用 V 表示。
(1)按“位”方式:从 V0.0~I5119.7,共有 40960 点。CPU221、CPU222
变量存储器只有 2048 个字节,其变量存储区只能到 V2047.7 位。
(2)按“字节”方式:从 VB0~VB5119,共有 5120 个字节
(3)按“字”方式:从 VW0~VW5118,共有 2560 个字
(4)按“双字”方式:从 VD0~VD5116,共有 1280 个双字
说明:如温度、压力、流量、转速、质量、转矩、位置、时间、等数据常
放在此区。
(四)位存储器(M)区
PLC 执行程序过程中,可能会用到一些标志位,这些标志位也需要用存储器
来寄存。位存储器就是根据这个要求设计的。位存储器是 S7-200CPU 为保
存标志位数据而建立的一个存储区,用 M 表示。该区虽然叫位存储器,但
是其中的数据不仅可以是位、还可以是字节、字或双字。
(1)按“位”方式:从 M0.0~M31.7,共有 256 点。
(2)按“字节”方式:从 MB0~MB31,共有 32 个字节
(3)按“字”方式:从 MW0~MW30,共有 16 个字
(4)按“双字”方式:从 MD0~MD28,共有 8 个双字
说明:如启动、停止、正转、反转、状态位、中间状态等位数据常放在此
区。
(五)顺序控制继电器区(S)
PLC 执行程序过程中,可能会用到顺序控制。顺序控制继电器就是根据顺序
控制的特点和要求设计的。顺序控制继电器区是 S7-200CPU 为顺序控制继
电器的数据而建立的一个存储区,用 S 表示。在顺序控制过程中,用于组
织步进过程的控制。
(1)按“位”方式:从 S0.0~S31.7,共有 256 点。
(2)按“字节”方式:从 SB0~SB31,共有 32 个字节
(3)按“字”方式:从 SW0~SW30,共有 16 个字
(4)按“双字”方式:从 SD0~SD28,共有 8 个双字
说明:机械手、红绿灯等顺序操作,配合顺空指令,可以方便快捷、准确
地完成编程任务。
(六)局部存储器区(L)(相当于内辅继电器)
S7-200PLC 有 64 个字节的局部存储器,其中 60 个可以用作暂时存储器或者
给子程序传递参数。
局部存储器和变量存储器很相似,主要区别是变量存储器是全局有效的,
而局部存储器是局部有效的。全局是指同一个存储器可以被任何程序存取
(例如,主程序、子程序或中断程序)。局部是指导存储器区和特定的程
序相关联。
几种程序之间不能互访。
局部存储器区是 S7-200CPU 为局部变量数据建立的一个存储区,用 L 表示。
该区域的数据可以用位、字节、字、双字四种方式来存取。
(1)按“位”方式:从 L0.0~L63.7,共有 512 点。
(2)按“字节”方式:从 LB0~LB63,共有 64 个字节
(3)按“字”方式:从 LW0~LW62,共有 32 个字
(4)按“双字”方式:从 LD0~LD60,共有 16 个双字
说明:即是 C 语言的函数、局部变量、形式参数的概念,。
(七)定时器存储器区(T)
PLC 在工作中少不了需要计时,定时器就是实现 PLC 具有计时功能的计时设
备。定时器的编号:
T0、T1、……、T255
S7-200 有 256 个定时器。
注意:Tx,如果是用于触点指令中,那么访问的将是 Tx 的标志位。
如果是用于 word 指令中,那么访问的将是 Tx 当前计数值。
(八)计数器存储器区(C)
PLC 在工作中有时不仅需要计时,还可能需要计数功能。计数器就是 PLC 具
有计数功能的计数设备。
计数器的编号:
C0、C1、……、C255
注意:Cx,如果是用于触点指令中,那么访问的将是 Cx 的标志位。
如果是用于 16 位的访问指令中,那么访问的将是 Cx 当前计数值。
(九)高速计数器区(HSC)
高速计数器用来累计比 CPU 扫描速率更快的事件。S7-200 各个高速计数器
不仅计数频率高达 30kHz。
S7-200 各个高速计数器有 32 位带符号整数计数器的当前值。若要存取高速
计数器的值,则必须给出高速计数器的地址,即高速计数器的编号。
高速计数器的编号为:HSC0、HSC1、……、HSC5。
S7-200 有 6 个高速计数器。其中 CPU221 和 CPU222 仅有 4 个高速计数器
(HSC0、HSC3、HSC4、HSC5)
使用它:必须配合西门子 S7 200PLC 手册上的高速计数器表使用,它是与 I
有硬件对应关系的,是不可以随便分配的。
(十)累加器区(AC)
累加器是可以像存储器那样进行读/写的设备。例如,可以用累加器向子程
序传递参数,或从子程序返回参数,以及用来存储计算的中间数据。
S7-200CPU 提供了 4 个 32 位累加器(AC0、AC1、AC2、AC3)。
可以按字节、字或双字来存取累加器数据中的数据。但是,以字节形式读/
写累加器中的数据时,只能读/写累加器 32 位数据中的低 8 位数据。如
果是以字的形式读/写累加器中的数据,只能读/写累加器 32 位数据中的低
16 位数据。只有采取双字的形式读/写累加器中的数据时,才能一次读写全
部 32 位数据。
因为 PLC 的运算功能是离不开累加器的。因此不有像占用其他存储器那样
占用累加器。
(十一)特殊存储器区(SM)
特殊存储器是 S7-200PLC 为 CPU 和用户程序之间传递信息的媒介。它们可
以反映 CPU 在运行中的各种状态信息,用户可以根据这些信息来判断机器
工作状态,从而确定用户程序该做什么,不该做什么。这些特殊信息也需
要用存储器来寄存。特殊存储器就是根据这个要求设计的。
1.特殊存储器区
它是 S7-200PLC 为保存自身工作状态数据而建立的一个存储区,用 SM 表示。
特殊存储器区的数据有些是可读可写的,有一些是只读的。特殊存储器区
的数据可以是位,也可是字节、字或双字。
(1)按“位”方式:从 SM0.0~SM179.7,共有 1440 点。
(2)按“字节”方式:从 SM0~SM179,共有 180 个字节
(3)按“字”方式:从 SMW0~SMW178,共有 90 个字
(4)按“双字”方式:从 SMD0~SMD176,共有 45 个双字
说明:特殊存储器区的头 30 个字节为只读区。 SM 的地址是都已经分配了
用途的存储器,访问时,必须知道其具体用途。
2.常用的特殊继电器及其功能
特殊存储器用于 CPU 与用户之间交换信息,例如 SM0.0 一直为“1”状态,
SM0.1 仅在执行用户程序的个扫描周期为“1”状态。SM0.4 和 SM0.5
分别提供周期为 1min 和 1s 的时钟脉冲。SM1.0、 SM1.1 和 SM1.2 分别是
零标志、溢出标志和负数标志。