这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 一文详解S7-1200PLC的存储器

共1条 1/1 1 跳转至

一文详解S7-1200PLC的存储器

工程师
2021-02-09 23:50:37     打赏

对于我们进行PLC程序编程,是需要用到编程软元件的,这个编程软元件我们也叫存储器,用户程序可以对这些存储区中所存储的数据进行读写访问。

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

下面我们就分别介绍一下这些存储器吧。

输入过程映像存储器I

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

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

o4YBAGAGQGCATdgtAAKfSCrIeCA308.png

输出过程映像存储器Q

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

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

pIYBAGAGQGeACU4gAAD1Rb_4w04222.png

位存储器M

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

o4YBAGAGQG6AXDwlAAEqzZUn01g103.png

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

pIYBAGAGQHWAJCSiAAD_Mclfkto691.png

临时存储器L

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

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

o4YBAGAGQICALzXpAACUAb1fGxQ883.png

数据块DB

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

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

pIYBAGAGQIeALp4tAAGaRG1xNhs307.png




共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]