S7-1200 PLC的存储器地址包括输入I、输出Q、位存储器M、数据块DB,以及本地或临时存储器L

 

 

eg:标识存储区M0.0 MB0 MW0 MD0 分别是 B位 字节B 8位 字W 16位 双字D 32位

输入过程映像存储器I

输入I是CPU用于接收外部输入信号的,比如按钮、开关、行程开关等。CPU会在扫描开始时从输入模块上读取外部输入信号的状态,放入到输入过程映像区,当程序执行的时候从这个输入过程映像区读取对应的状态进行运算。

但是如果我们给地址或变量后面加上“:P”这个符号的话,就可以立即访问外设输入,也就是说可以立即读取数字量输入或模拟量输入。它的数值是来自被访问的输入点的,而不是输入过程映像区的,这个我们需要注意一下。

输出过程映像存储器Q

输出Q是将程序执行的运算结果输出驱动外部负载的,比如指示灯、接触器、继电器、电磁阀等,但是需要注意它不是直接输出驱动外部负载的,而是需要先把运算结果放入到输出过程映像区,CPU在下一个扫描周期开始时,将过程映像区的内容复制到物理输出点,然后才驱动外部负载动作的。

如果我们需要把运算结果直接写入到物理输出点,需要在地址或变量名称后面加上“:P”这个符号。在使用输出Q的时候需要注意避免双线圈的情况,如果出现双线圈错误的话,会造成物理输出点不能输出的情况。

位存储器M

位存储器M既不能接收外部输入信号,也不能驱动外部负载,它是属于内部的软元件。用户程序读取和写入M存储器中所存储的数据,任何代码块都可以访问M存储器,也就是说所有的OB、FC、FB块都可以访问M存储器中的数据,这些数据可以全局性的使用。

位存储器M常用来存储运算时的中间运算结果,或者用于触摸屏中组态按钮开关的情况。对于前面说的双线圈错误,比如有两个驱动条件都要驱动Q0.0,这时我们就可以分别引入两个位存储器地址M0.0和M0.1,然后再将这两个位存储器并联再输出Q0.0,就可以避免双线圈的问题了。

临时存储器L

临时存储器L用于存储代码块被处理时使用的临时数据,我们只要去调用代码块,CPU就会将临时存储器自动分配给代码块,当代码块执行完成后,CPU会重新分配临时存储器用于其它要执行的代码块。

其实临时存储器L类似于位存储器M,区别在于M存储器是全局的,L存储器是局部的。也就是说在OB、FC、FB块的接口区生成的临时变量只能在生成它的代码块中使用,不能与其他代码块共享。我们需要注意的是临时存储器只能通过符号地址寻址。

数据块DB

数据块DB用于存储各代码块使用的各种类型的数据,数据块的访问可以按位、字节、字、双字的方式进行寻址,我们在访问数据块中的数据时,应该指明数据块的名称,比如DB0.DBB0。

在S7-1200 PLC中新建的DB块默认是采用优化块的访问方式进行访问的,所有通常都是使用符号的方式访问DB块中的数据,如果我们需要使用绝对地址访问的话,需要在属性设置中去掉优化访问块的选项。

这就是我们S7-1200 PLC的存储器啦,我们编程的过程中是一定会使用到这些存储器的哦,大家一定要掌握牢固哟~

上一篇文章中给大家介绍了(点击回顾: S7-1200 PLC的存储器)地址包括输入I、输出Q、位存储器M、数据块DB,以及本地或临时存储器L

那么这些存储器的大小是怎么进行表示的呢?

这是这一篇文章中所要告诉大家的,其实每个存储器的大小都是以字节为单位进行表示的,存储器中的每一个存储单元都有一个唯一的地址,用户程序利用这些地址去访问存储单元的数据。

访问的寻址方式主要有按位寻址、按字节寻址、按字寻址和按双字寻址。其实这跟S7-200/200 SMART PLC中的寻址方式是一样的,只不过我们S7-1200中存储器有 DB块,对于DB块中的地址寻址格式是需要另外注意的,这也是我们学习的一个重点。

下面小编分别给大家介绍一下吧。

按位寻址

按位寻址的格式是由存储器标识符、字节地址、分隔符、字节的位号这四个部分组成的,什么是存储器标识符?

比如说上篇文章介绍的输入I、输出Q、位存储器M等,就是使用存储器的字母I/Q/M。

字节地址表示的是第几个字节,是直接用数字表示的。

分隔符是一个固定的小的黑点表示。

字节的位号表示的是要访问的字节中的哪个位。

因为一个字节是8个位,分别是0~7,所以字节的位号可以是0~7的任意一个数字。比如M3.3,这是按位寻址的,访问的是M存储器的第 3个字节中的bit3位(从第0个位/字节开始数起)。

按字节、字、双字寻址

按字节、字和双字寻址的格式都是一样的,都是由存储器标识符、字节/字/双字的表示符B/W/D、字节的起始地址这三个部分组成的。

比如以输出过程映像存储器为例,如果将字节3的0~7位都描黑,描黑的色块代表访问的地址是QB3。我们还可能会看到这样的地址:MW10、QW2、ID0等。

在CPU中我们能够访问的小的地址是位,8个位可以组成1个字节,2个字节组成1个字,2个字可以组成1个双字。

比如说QB0包含了Q0.0~Q0.7这8个位,QW0包含了QB0和QB1这2个字节,其中QB0是高字节、QB1是低字节,QD0包含了QW0和QW2这2个字,也含了QB0、QB1、QB2、QB3这4个字节。

DB块中地址的寻址格式

对于DB块,如果使用的优化访问的块,那么在对DB块寻址时是通过符号寻址的,如果使用的是非优化的访问块,那么DB块中建立的变量都会有一个对应的绝对地址。我们使用的时候需要注意的是,对于DB块的访问,在一个程序中可以添加多个DB块,所以在访问时候需要在访问的地址前面加上DB块的名称。

比如访问DB1中的第0个字节的第0个位,地址应该是DB1.DBX0.0;访问DB1中的第1个字节,地址为DB1.DBB1;访问DB1中的第2个字,地址为DB1.DBW2;访问DB1中的第4个字,地址为DB1.DBD4。

很显然,我们看到地址中的DB1是DB块的名称,后面用小黑点间隔开,后面的地址就是DB X/B/W/D 数字的形式就可以了。

这就是S7-1200 PLC存储区的寻址方式,我们要重点掌握DB块中地址的寻址格式哦。可能在刚开始接触看到这样的地址会有点陌生,但是其实自己也可以随便写个地址去确定它到底是访问的那个地址,用的多了也就熟悉了哦~

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐