9
编程软元件的寻址涉及两个问题。一是某种可编程控制器设定的编程元件的类型及数量。不同厂家、不同型号的PLC所含编程元件的类型、数量及命名标示法都可能不一样。二是该种PLC存储区的使用方式,即寻址方式。寻址方式包括立即数寻址、直接寻址和间接寻址。
立即数寻址实质上是常数的使用方式,这与数字的表达形式有关。单就十进制数字来说,表达一位数字就需4位存储单元。或者反过来说,一定长度的存储单元能存储一定的表达形式的数字范围是有限的。表2-6给出了存储器长度与存储的数据范围。
表2-6 不同数据长度表示的十进制和十六进制数的范围
局部存储器(L)和变量存储器(V)很相似,主要区别在于局部存储器是局部有效的,变量存储器则是全局有效。全局有效是指同一个存储器可以被任何程序(如主程序、中断程序或子程序)存取,局部有效是指存储区和特定的程序相关联。
S7-200有64个字节的局部存储器,编址范围为LB0.0~LB63.7。其中60个字节可以用作暂时存储器或者给子程序传递参数,最后4个字节为系统保留字节。S7-200PLC根据需要分配局部存储器。当主程序执行时,64个字节的局部存储器分配给主程序;当中断或调用子程序时,将局部存储器重新分配给相应程序。局部存储器在分配时,PLC不进行初始化,初始值是任意的。各程序不能访问其他程序的局部存储器。因为局部变量使用临时的存储区,子程序每次被调用时,应**它使用的局部变量被初始化。
各POU(Program Organizational Unit,程序组织单元,即主程序、子程序或中断程序)有自己的局部变量表,局部变量在它被创建的POU中有效。变量存储器是全局存储器,可以被所有的POU存取。
可以用直接寻址方式按字节、字或双字来访问局部存储器,也可以把局部存储器作为间接寻址的指针,但不能作为间接寻址的存储区域。
输出继电器(又称输出映像寄存器)存储程序执行的结果。每个输出继电器在存储区中占一位,每一个输出继电器与一个输出口相对应。输出继电器通过隔离电路,将程序运算结果送到输出口并决定输出口所连接器件的工作状态。正常运行中输出继电器的状态只由程序的执行决定。
输出继电器用来将PLC的输出信号传递给负载,只能用程序指令驱动。程序控制能量流从输出继电器的线圈左端流入时,线圈通电(存储器位置1),带动输出触点动作,使负载工作。负载又称执行器(如接触器、电磁阀、LED显示器等),连接到PLC输出模块的输出接线端子,由PLC控制执行器的启动和关闭。
I/O映像寄存器可以按位、字节、字或双字等方式编址,如I0.1、Q0.1(位寻址)、QB1(字节寻址)。
输入继电器(又称输入映像寄存器)用于接收及存储输入端子的输入信号。机箱上每个输入端子都有一个输入继电器与之对应。输入信号通过隔离电路改变输入继电器的状态,一个输入继电器在存储区中占一位。输入继电器的状态不受程序的执行所左右。
存储器是存放程序及数据的地方,PLC运行所需的程序分为系统程序及用户程序,存储器也分为系统存储器和用户存储器两部分。
(1)系统存储器。它用来存放PLC生产厂家编写的系统程序,并固化在ROM内,用户不能更改。
(2)用户存储器。它包括用户程序存储区和数据存储区两部分。用户程序存储区存放针对具体控制任务,用规定的PLC编程语言编写的控制程序。用户程序存储器的内容可以由用户任意修改或增删。用户数据存储区用来存放用户程序中使用的ON/OFF状态、数值、数据等,它们被称为PLC的编程“软”元件,是PLC应用中用户涉及较频繁的存储区。PLC中存储单元的字长目前以8位的较多,也有16位及32位的。