首页 理论教育 系统存储器及读写访问优化

系统存储器及读写访问优化

时间:2023-06-27 理论教育 版权反馈
【摘要】:表3-3 系统存储区对存储器的“读写”“访问”“存取”这3个词的意思基本上相同。由于过程映像表保存在CPU的系统存储器中,访问速度比直接访问信号模块快得多。不同型号的S7-300的位存储器区的大小从128B到8KB。每个组织块用20B的临时局部数据来存储它的起动信息。

系统存储器及读写访问优化

1.过程映像输入/输出表(I/Q)

在执行用户程序时,CPU并不直接访问I/O模块中的输入地址区和输出地址区,而是

访问CPU内部的过程映像表(I/Q区,见表3-3)。在每次扫描循环开始时,CPU读取输入模块的外部输入电路的状态,并将它们存入过程映像输入表(Process Image Input,PII)。在扫描循环中,用户程序计算输出值,并将它们存入过程映像输出表(Process Image Output,PIQ)。在下一扫描循环开始时,将过程映像输出表的内容写入输出模块。

表3-3 系统存储区

978-7-111-54209-4-Chapter03-48.jpg

存储器的“读写”“访问”“存取”这3个词的意思基本上相同。

I区和Q区均可以按位、字节、字和双字来访问,例如I0.0、IB0、IW0和ID0。

与直接访问输入模块相比,访问过程映像输入表可以保证在整个扫描周期内,过程映像输入的状态始终一致。即使在本次循环的程序执行过程中,接在输入模块的外部电路的状态发生了变化,过程映像输入表各信号的状态仍然保持不变,直到下一个循环被刷新。由于过程映像表保存在CPU的系统存储器中,访问速度比直接访问信号模块快得多。

过程映像输入在用户程序中的标识符为I,它是PLC接收外部输入信号的窗口。输入模块的数字量输入端可以外接常开触点或常闭触点,也可以接多个触点组成的串并联电路。PLC将外部电路的通/断状态读入并存储在过程映像输入位中,外部输入电路接通时,对应的过程映像输入位为1状态(ON);反之为0状态(OFF)。在梯形图中,可以多次使用过程映像输入位的常开触点和常闭触点。

过程映像输出位在用户程序中的标识符为Q,扫描周期开始时,CPU将过程映像输出位的数据传送给数字量输出模块,再由后者驱动外部负载。如果梯形图中Q0.0的线圈“通电”,继电器型输出模块对应的硬件继电器的常开触点闭合,使接在Q0.0对应的输出端子的外部负载通电工作。某些CPU的过程映像区的大小可以在组态时设置。

过程映像分区与中断功能配合,可以显著地减少PLC的输入、输出响应时间。过程映像区分为主程序OB1的过程映像OB1-PI和过程映像分区PIP。S7-400 CPU最多可以使用15个过程映像分区。每次扫描循环刷新一次OB1过程映像。

下面举例说明过程映像分区的使用方法。在硬件组态时,将某些I/O模块分配给过程映像分区PIP2,再将PIP2分配给时间中断组织块OB10,这样这些I/O模块就被分配给OB10。用STEP 7指定的过程映像分区中的I/O地址不再属于OB1过程映像输入/输出表。

在调用OB10时,CPU自动读入被组态为属于过程映像分区PIP2的输入模块的输入值,OB10被执行完后,输出值被立即写至被组态为属于PIP2的输出模块。

用户程序可以调用SFC26“UPDATLPI”来刷新整个或部分过程映像输入表,调用SFC27“UPDATLPO”来刷新整个或部分过程映像输出表。

2.外设I/O区(PI/PQ)

外设输入(PI)和外设输出(PQ)区用于直接访问本地的和分布式的输入模块和输出模块。PI/PQ区与I/Q区的关系如下:

1)访问PI/PQ区时,直接读写输入/输出模块,而I/Q区是输入/输出信号在CPU的存储器中的“映像”。使用外设地址可以实现用户程序与I/O模块之间的快速数据传送,因此被称为“立即读”和“立即写”。P/Q区采用周期性批量读/写的方式,因此可能有一定的滞后。

2)I/Q区可以按位、字节、字和双字访问,PI/PQ区不能按位访问。

3)I/Q区的地址范围比PI/PQ区的小,前者与CPU的型号有关。如果地址超出了I/Q区允许的范围,必须使用PI/PQ区来访问。(www.xing528.com)

4)I/Q区与PI/PQ区的地址均从0号字节开始,因此I/Q区的地址编号也可以用于PI/ PQ区。例如用MOVE指令将QB1传送到PQB1,可以实现“立即写入”操作。

5)可以读、写I/Q区的地址。只能读取外设输入,不能改写它。只能改写外设输出,不能读取它。指令L将数据装载到累加器1,指令T将数据从累加器1传送到指定的地址。

下面两条指令违背了上述规定,因此是错误的,输入后出错的指令变为红色。

L PQB 0

T PIB 0

6)访问I/Q区的指令比访问PI/PQ区的指令的执行时间短得多。例如CPU 317-2 DP的指令“L IB0”和“L PIB0”的执行时间分别为0.05μs和15μs。

3.位存储器(M)

位存储器用来保存控制逻辑的中间操作状态或其他控制信息。不同型号的S7-300的位存储器区的大小从128B到8KB。

4.定时器(T)和计数器(C)

定时器相当于继电器系统的时间继电器。给定时器分配的字用于存储时间基准和剩余时间值(0~999)。剩余时间值可以用二进制数或BCD码方式读取。

计数器用来累计其计数脉冲的个数,给计数器分配的字用于存储当前计数值(0~999)。计数值可以用二进制数或BCD码方式读取。

5.数据块(DB)与背景数据块(DI)

DB为数据块,DBX、DBB、DBW和DBD分别是数据块中的数据位、数据字节、数据字和数据双字。DI为背景数据块,DIX、DIB、DIW和DID分别是背景数据块中的数据位、数据字节、数据字和数据双字。

6.局部数据区(L)

各逻辑块都有它的局部(Local)数据区,局部变量在逻辑块的变量声明表中生成,只能在它被创建的块中使用。每个组织块用20B的临时局部数据来存储它的起动信息。局部数据用于传送块参数和保存来自梯形图程序的中间逻辑运算结果。

CPU按组织块的优先级划分局部数据区,S7-300同一优先级的组织块及其调用的块共用256B的临时局部数据区。S7-400每个优先级的局部数据区要大得多,可达数十KB,可以用STEP 7改变其大小。

全局变量包括I、Q、M、T、C、PI、PQ和共享数据块DB,所有的逻辑块(OB、FC、FB、SFC和SFB)都可以使用全局变量。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈