首页 理论教育 系统存储区及绝对操作数的自动插入

系统存储区及绝对操作数的自动插入

时间:2023-06-30 理论教育 版权反馈
【摘要】:程序编辑器自动地在绝对操作数前面插入%,例如%I3.2。表2-3 系统存储区2.外设输入在I/O点的地址或符号地址的后面附加“:P”,可以立即访问外设输入或外设输出。代码块执行结束后,CPU将它使用的临时存储器区重新分配给其他要执行的代码块使用。

系统存储区及绝对操作数的自动插入

1.过程映像输入/输出

过程映像输入(见表2-3)在用户程序中的标识符为I,它是PLC接收外部输入的数字量信号的窗口。输入端可以外接常开触点或常闭触点,也可以接多个触点组成的串并联电路。

在每次扫描循环开始时,CPU读取数字量输入点的外部输入电路的状态,并将它们存入过程映像输入区。

过程映像输出在用户程序中的标识符为Q。用户程序访问PLC的输入和输出地址区时,不是去读、写数字量模块中信号的状态,而是访问CPU的过程映像区。在扫描循环中,用户程序计算输出值,并将它们存入过程映像输出区。在下一扫描循环开始时,将过程映像输出区的内容写到数字量输出点,再由后者驱动外部负载。

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

I和Q均可以按位、字节、字和双字来访问,例如I0.0、IB0、IW0和ID0。程序编辑器自动地在绝对操作数前面插入%,例如%I3.2。在SCL中,必须在地址前输入“%”来表示该地址为绝对地址。如果没有“%”,STEP7将在编译时生成未定义的变量错误

2-3 系统存储区

978-7-111-58719-4-Chapter02-17.jpg

2.外设输入

在I/O点的地址或符号地址的后面附加“:P”,可以立即访问外设输入或外设输出。通过给输入点的地址附加“:P”,例如I0.3:P或“Stop:P”,可以立即读取CPU、信号板和信号模块的数字量输入和模拟量输入。访问时使用I_:P取代I的区别在于前者的数字直接来自被访问的输入点,而不是来自过程映像输入。因为数据从信号源被立即读取,而不是从最后一次被刷新的过程映像输入中复制,这种访问被称为“立即读”访问。

由于外设输入点从直接连接在该点的现场设备接收数据值,因此写外设输入点是被禁止的,即I_:P访问是只读的。

I_:P访问还受到硬件支持的输入长度的限制。以S7-1200被组态为从I4.0开始的2DI/2DQ信号板的输入点为例,可以访问I4.0:P、I4.1:P或IB4:P,但是不能访问I4.2:P~I4.7:P,因为没有使用这些输入点。也不能访问IW4:P和ID4:P,因为它们超过了信号板使用的字节范围。

用I_:P访问外设输入不会影响存储在过程映像输入区中的对应值。

3.外设输出

在输出点的地址后面附加“:P”(例如Q0.3:P),可以立即写CPU、信号板和信号模块的数字量和模拟量输出。访问时使用Q_:P取代Q的区别在于前者的数字直接写给被访问的外设输出点,同时写给过程映像输出。这种访问被称为“立即写”,因为数据被立即写给目标点,不用等到下一次刷新时将过程映像输出中的数据传送给目标点。

由于外设输出点直接控制与该点连接的现场设备,因此读外设输出点是被禁止的,即Q_:P访问是只写的。与此相反,可以读写Q区的数据。

与I_:P访问相同,Q_:P访问还受到硬件支持的输出长度的限制。(www.xing528.com)

用Q_:P访问外设输出同时影响外设输出点和存储在过程映像输出区中的对应值。

4.位存储器区

位存储器区(M存储器)用来存储运算的中间操作状态或其他控制信息。可以用位、字节、字或双字读/写位存储器区。

5.S5定时器和S5计数器

S7-1500可以使用S7-300/400的S5定时器和S5计数器,它们的地址标识符为T和C,例如T3、C10。所有型号的S7-1500 CPU的S5定时器和S5计数器的个数分别为2048个。可以设置有掉电保持的S5定时器和S5计数器的个数。

建议S7-1500使用IEC定时器和IEC计数器,它们的个数不受限制,编程也更加灵活。

6.数据块

数据块(Data Block)简称为DB,用来存储代码块使用的各种类型的数据,包括中间操作状态或FB的其他控制信息参数,以及某些指令(例如定时器、计数器指令)需要的数据结构

数据块可以按位(例如DB1.DBX3.5)、字节(DBB)、字(DBW)和双字(DBD)来访问。在访问数据块中的数据时,应指明数据块的名称,例如DB1.DBW20。

如果启用了块属性“优化的块访问”,不能用绝对地址访问数据块和代码块的接口区中的临时局部数据。

7.临时存储器

临时存储器用于存储代码块被处理时使用的临时数据。临时存储器类似于M存储器,二者的主要区别在于M存储器是全局的,而临时存储器是局部的。

1)所有的OB、FC和FB都可以访问M存储器中的数据,即这些数据可以供用户程序中所有的代码块全局性地使用。

2)在OB、FC和FB的接口区生成临时变量(Temp)。它们具有局部性,只能在生成它们的代码块内使用,不能与其他代码块共享。即使OB调用FC,FC也不能访问调用它的OB的临时存储器。

CPU在代码块被启动(对于OB)或被调用(对于FC和FB)时,将临时存储器分配给代码块。代码块执行结束后,CPU将它使用的临时存储器区重新分配给其他要执行的代码块使用。CPU不对在分配时可能包含数值的临时存储单元初始化。只能通过符号地址访问临时存储器。

可以通过菜单命令“工具”→“调用结构”查看程序中各代码块占用的临时存储器空间。

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

我要反馈