北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章528 浏览8057431

深度理解S7-200 Smart的数据存储区(Data Storage)

PLC编程需要使用各种各样的数据,不同的数据存放在CPU不同的存储区中。熟悉CPU的存储区是编程的前提,今天这篇文章,我们来认识下西门子S7-200 Smart的存储区。

cover.png

S7-200 Smart的存储区可以分为两大类:(一)是跟外部物理信号相关的输入/输出映像区/存储区;(二)是CPU内部的存储区;

(一)输入/输出映像区/存储区包括:

  • 数字量输入映像区(DI,process-image input);

  • 数字量输出映像区(DO,process-image output);

  • 模拟量输入存储区(AI);

  • 模拟量输出存储区(AO);

(二)内部存储区的类别比较多,包括:

  • 变量存储区(V,Variable memory);

  • 标志存储区(M,Flag memory);

  • 定时器(T,Timer);

  • 计数器(C,Counter);

  • 高速计数器(HC,high speed counter);

  • 累加器(Accumulator);

  • 特殊存储器(SM,special memory);

  • 局部存储区(L,Local memory);

  • 顺序控制继电器存储区(Sequence Control Relay)。

CPU在每个扫描周期的初期将物理外设的数字量输入信号扫描到数字量输入映像区(DI)中,程序在运行过程中的数字量输出值暂存在数字量输出映像区(DO)中,并在扫描周期的末期将数字量输出映像区的值刷新到物理输出模块。数字量输入/输出映像区是可读且可写的,在程序中对某些数字量输入位进行写操作,便可以模拟外部的数字量输入信号。

CPU对模拟量的处理有所不同,模拟量的值存放在模拟量输入/输出存储区中。注意,模拟量的存放区被称为“存储区”而不是“映像区”或者“缓存区”。对于程序中使用的模拟量,是直接从存储区进行读取或写入的。模拟输入(AI)存储区是只读的(Read Only),模拟量输出(AO)存储区是只写的(Write Only);(参考:深度理解PLC的工作原理(How PLC works)

变量存储区(V)用来存放程序在运行过程中的中间变量或者需要的配方数据;标志存储区(M)用来存放逻辑运算的中间结果(标志,flag);其实,在编程时,变量存储区和标志存储区没有明显的界限,你也可以用变量存储区来存放逻辑运算的中间结果。两者都可以位、字节、字或者双字的方式进行访问,其区别在于变量存储区(V)比标志存储区(M)要大很多。比如,在CPU ST40中,变量存储区的范围为VB0到VB16383;而标志存储区的范围为MB0到MB31。程序运行过程中需要的配方数据,需要在数据块(Data Block)编辑器中设置并存放在变量存储器(V)中。

定时器(Timer)用来计时。S7-200 Smart定时器的时间基准有1ms,10ms和100ms三种。定时器有两种变量:当前值(Current value)和定时器位(Timer bit)。当前值是一个16位的无符号整数,用来记录当前的时间;定时器位是一个位(bit),用来记录定时器是否已经被触发(当前值大于设定值)。以定时器的地址(T+number)既可以访问当前值,也可以访问定时器位,取决于访问指令的类型。位操作指令访问的是定时器的位,字操作指令访问的是定时器的当前值。例如下面这张图:

第一段程序是读取定时器T3的当前值,并将其存放到VW10,属于字操作;

第二段程序是读取定时器T3的位,并将其输出到Q0.0,属于位操作;

timer.PNG

计数器(Counter)用来进行计数。S7-200 Smart提供三种计数器:向上计数器、向下计数器和上下计数器。与定时器类似,计数器也有一个当前值(16位无符号整数)和一个计数器位(bit),其地址是以字母C加上编号(比如C10)。使用字操作指令可以访问计数器的当前值,使用位操作指令可以访问计数器的位。

高速计数器(High Speed Counter)与普通的计数器不同,它不受CPU扫描周期的限制,可以用来对高速信号(比如脉冲)进行计数。高速计数器的值是一个32位的有符号整数,其性质为只读(Read Only),可以通过高速计数器的地址(HC+number)进行访问。

累加器(Accumulator)的访问速度快,可以用来传递参数或存放指令运算的中间结果。S7-200 Smart提供4个32位的累加器(AC0,AC1,AC2和AC3),累加器可以字节、字或者双字的方式进行访问。

特殊存储器(SM)存放着与系统运行有关的特殊变量,PLC的操作系统会将系统状态等信息写入到特殊存储器中,用户程序通过访问特定的特殊存储器,就可以获取一些系统级的信息。比如,SM0.0始终为1,SM0.5会产生1s的时钟脉冲等。S7-200 smart有非常多的特殊存储器变量,将在以后陆续介绍。可以先看看这篇文章:谈谈S7-200 Smart系列PLC的特殊存储器(SMB0/SMB1)

局部存储区(L)用来保存程序块的运行信息。如果某个程序块因为中断或者调用其它块的原因而被挂起时,其相关的运行信息会被存放到局部存储区中,以便程序返回时可以从断点处继续执行。S7-200 smart为每一个程序组织单元(POU,program organizational unit)分配了64个字节的局部存储区。

顺序控制继电器存储区(S)与顺序控制继电器相关,在编写顺序控制流程图中使用。它可以位、字节、字和双字的方式进行访问,其地址符号为S,比如S3.1,SB6等。

好了,关于S7-200 Smart的数据存储区就先介绍到这里,欢迎扫描下方的二维码关注我们的微信公众号。

小程序【李工谈工控】提供方便的检索功能,欢迎扫描右侧的二维码体验。


深度理解S7-200 Smart的数据存储区

来源:本站|   大小:497 KB|   下载次数:3031次

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论