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位的。
S7-400支持多处理器模式。在同一P总线或K总线上,在一个机架上面可以运行多至4个合理配置的CPU。
如果通过硬件组态在一个*机架上布置多个CPU,S7-400站会自动运行于多处理器模式。插槽是任意的。CPU之间以升序数字来区分,这些数字是在CPU安装时自动分配的。用户也可以在“Multicomputing”选项卡里配置数字。
所有CPU的组态数据必须下载到PLC,即使只对一个CPU做了修改,也应做这样的操作。
在对CPU配置参数之后,还得把在站里的每个模块分配给CPU。这通过在“CPU assignment’下的“Addresses”选项卡配置模块参数来实现(如图20-5所示)。在配置模块地址域的同时,也要为CPU分配模块中断。通过View→Filter→CPU No.x-Modulfs,在组态表里为CPU配置的模块做强制规定。
多处理器方式的模块配置
图20-5 多处理器方式的模块配置
在一个多处理器网络中的全部CPU都有同样的操作模式,这意味着:
●参数配置必须有同样的重启模式。
●同时进入运行状态。
●当有一个CPU以单步调试方式工作时,全部CPU HOLD。
●只要一个CPU S**,其他CPU也都S**。
当站里的一个机架不能正常工作,每个CPU都会调用组织块OB 86。
各个CPU里的用户程序是独立执行的,它们是非同步的。
SFC 35 MP_ALM调用可以同时启动所有CPU中的组织块OB 60“多处理器中断”。
控制一个任务或者过程,是通过在RUN模式下,使主机循环扫描并连续执行用户程序来实现的,用户程序决定了一个控制系统的功能。程序的编制可以使用编程软件在计算机或者其他专用编程设备中进行(如图形输入设备、编程器等)。
广义上的程序由3部分组成:用户程序、数据块和参数块。
1.用户程序
用户程序在存储器空间也称为组织块(OB),它处于较高层次,可以管理其他块,可采用各种语言(如STL、LAD或者FBD等)来编制。不同机型的CPU,其程序空间容量也不同。用户程序的结构比较简单,一个完整的用户控制程序应当包含一个主程序( OBl)、若干子程序和若干中断程序3部分。不同的编程设备,对各程序块的安排方法也不同。程序结构示意图如图2-4所示。