1.数据存储的分配
为了有效地进行编程及对PLC的存储器进行管理,将存储器中的数据按照功能或用途分类存放,形成了若干个特定的存储区域。例如,I表示输入映像寄存器;Q表示输出映像寄存器;M表示内部标志位存储器等。存储器的常用单位有位、字节、字和双字等。一位二进制数为1个位(bit),每一位即一个存储单元。
每个区域的存储单元按字节(Byte,B)编址,每个字节由8个位组成。比字节大的单位为字(Word,W)和双字(Double Word,DW),这几种常用单位的换算关系是:1DW=2W=4B=32bit。
2.数据类型
在S7-200 PLC的编程语言中,大多数指令要同具有一定大小的数据对象一起进行操作。不同的数据对象具有不同的数据类型,不同的数据类型具有不同的数据和格式选择。程序中所用数据可指定一种数据类型。在制定数据类型时,要确定数据大小和数据位结构。S7-200 PLC的基本数据类型及范围见表3-2。
表3-2 S7-200 PLC的基本数据类型及范围
在编程中经常会使用常数,常数的数据长度可分为字节、字和双字。在机器内部的数据都是以二进制存储,但常数的书写可以用二进制、十进制、十六进制、ASCⅡ或浮点数(实数)等多种形式。几种常数表示方法见表3-3。
表3-3 几种常数表示方法
3.软元件(软继电器)
用户使用的PLC中的每一个I/O、内部存储单元、定时器和计数器等都称为软元件。各元件有其不同的功能,有固定的地址。PLC软元件的种类和数量因不同厂家,不同系列,不同规格而异,软元件的数量决定了PLC的规模和数据处理能力,软元件的种类及数量越多,其功能就越强。每一种PLC的软元件是有限的。
软元件是PLC内部的具有一定功能的器件,这些器件实际上是由电子电路和寄存器及存储器单元等组成。例如,输入继电器由输入电路和输入映像寄存器构成;输出继电器由输出电路和输出映像寄存器构成;定时器和计数器也都由特定功能的寄存器构成。它们都具有继电器特性,但没有机械性的触点。为了把这种元器件与继电器控制电路中的继电器区别开来,把它们称为软元件或软继电器。这些软元件的特点是其触点可以无限次使用。编程时,用户只需记住软元件的地址即可,每个软元件都有一个地址与之对应,软元件的地址编排采用区域号加区域内编号的方式,即PLC内部根据软元件的不同,分成了许多区域,如输入/输出继电器区、定时器区、计数器区等。
需注意的是,在PLC内部,并不真正存在这些物理器件,与其对应的只是存储器中的某些存储单元。一个继电器对应一个基本单元(即1位,1bit),多个继电器将占有多个基本单元;8个基本单元形成一个8位二进制数,称为一个字节(1B),它正好占用普通存储器的一个存储单元,连续两个存储单元构成一个16位二进制,通常又称为一个字(1W),或一个通道。连续两个通道还能构成双字(Double Word)。各种编程元件,各占一定数量的存储单元。使用这些编程元件,实质上就是对相应的存储内容以位、字节、字(或通道)或双字的形式进行存取。下面介绍PLC中常用的软元件。
(1)输入映像寄存器(I)
输入映像寄存器又称为输入继电器,其外部有一对物理输入端子与之对应。该端子用于接收外部输入信号。所以,输入继电器线圈只能由外部输入信号驱动,不能用程序指令驱动,常开触点和常闭触点供用户编程使用。
输入映像寄存器是以字节为单位的寄存器,每个字节中的每一位对应一个数字量输入点。该寄存器可按位、字节、字和双字等方式寻址存取数据。
输入映像寄存器的地址格式如下。
位地址:I[字节地址].[位地址],如I0.1;
字节、字、双字地址;I[数据长度][起始字节地址],如IB15、IW14、ID12。
(2)输出映像寄存器(Q)
输出映像寄存器又称为输出继电器。输出继电器是用来将PLC的输出信号传递给负载,它只能用程序指令驱动。它也提供常闭触点和常开触点供用户编程使用。
输出映像寄存器地址格式如下。
位地址:Q[字节地址].[位地址],如Q1.1;
字节、字、双字地址:Q[数据长度][起始字节地址],如QB4、QW8、QD12。
(3)内部标志位存储器(M)
内部标志位存储器也称内部线圈,它模拟继电器控制系统中的中间继电器,用于存放中间操作状态或存储其他相关数据。内部标志位存储器以位为单位使用,也可以字节、字、双字为单位使用,内部标志位存储器的地址格式如下。
位地址:M[字节地址].[位地址],如M31.7;
字节、字、双字地址:M[数据长度][起始字节地址],如MB31、MW30、MD28。
(4)变量存储器(V)
变量存储器存放全局变量、程序执行过程中控制逻辑操作的中间结果或其他相关的数据,变量存储器是全局有效的,全局有效是指同一个存储器可以在任一个程序分区(主程序、子程序、中断程序)被访问。变量存储器的地址格式如下。
位地址:V[字节地址].[位地址],如V10.2;
字节、字、双字地址:V[数据长度][起始字节地址],如VB200,VW1000。
(5)局部存储器(L)
局部变量存储器用来存放局部变量,局部变量存储器和变量存储器十分相似,主要区别在于全局变量是全局有效的,而局部变量只是局部有效,即变量只和特定的程序相关联。
S7-200 PLC有64个字节的局部变量存储器,其中60个字节可以作为暂时存储器,或给子程序传递参数。后4个字节作为系统的保留字节。
CPU可以按位、字节、字、双字访问局部存储器,也可以把局部存储器作为间接寻址的指针,但是不能作为间接寻址的存储器。局部存储器的地址格式如下。
位地址:L[字节地址].[位地址],如L53.5;
字节、字、双字:L[数据长度][起始字节地址],如LB20、LW32、LD55。
(6)顺序控制继电器存储器(S)
顺序控制继电器存储器用于顺序控制(或步进控制),顺序控制继电器指令基于顺序功能图(SFC)的编程方式,顺序控制继电器指令将控制程序逻辑分段,从而实现顺序控制。顺序控制继电器存储器的地址格式如下。(www.daowen.com)
位地址:S[字节地址].[位地址],如S31.1;
字节、字、双字地址:S[数据长度][起始字节地址],如SB31、SW30、SD28。
(7)特殊标志位存储器(SM)
PLC中还有若干特殊标志位存储器,特殊标志位存储器位提供大量的状态和控制功能,用来在CPU和用户程序之间交换信息,特殊标志位存储器能以位、字节、字或双字来存取,CPU 224的SM位地址编号范围为SM0.0~SM179.7共180个字节。其中SM0.0~SM29.7的30个字节为只读型区域。
常用的特殊标志位存储器的用途如下。
SM0.0:运行监视。SM0.0始终为“1”状态。当PLC运行时可以利用其触点驱动输出继电器,在外部显示程序是否处于运行状态。
SM0.1:初始化脉冲。每当PLC的程序开始运行时,SM0.1线圈接通一个扫描周期,因此SM0.1的触点常用于调用初始化程序等。
SM0.3:开机进入RUN时,接通一个扫描周期,可用在启动操作之前,给设备提前预热。
SM0.4、SM0.5:占空比为50%的时钟脉冲。当PLC处于运行状态时,SM0.4产生周期为1min的时钟脉冲,SM0.5产生周期为1s的时钟脉冲。若将时钟脉冲信号送入计数器作为计数信号,可起到定时器的作用。
SM0.6:扫描时钟,1个扫描周期闭合,下一个扫描周期则断开,循环交替。
SM0.7:工作模式开关位置指示,开关放置在RUN位置时为1。
SM1.0:零标志位,运算结果=0时,该位置1。
SM1.1:溢出标志位,结果溢出或为非法值时,该位置1。
SM1.2:负数标志位,运算结果为负数时,该位置1。
SM1.3:被0除标志位。
其他特殊标志位存储器的用途可查阅相关手册。
特殊标志位存储器的地址表示格式如下。
位地址:SM[字节地址].[位地址],如:SM0.1;
字节、字、双字地址:SM[数据长度][起始字节地址],如SMB196、SMW200、SMD546。
(8)定时器存储器(T)
定时器是模拟继电器控制系统中的时间继电器,累计时间增量的编程元件,定时器的工作过程与时间继电器基本相同,提前置入时间预设值,当定时器的输入条件满足时开始计时,当前值从开始按一定的时间单位增加;当定时器的当前值达到预定值时定时器发生动作,发出中断请求,PLC响应,同时发出相应的动作,即常开触点闭合,常闭触点断开;利用定时器的输入与输出触点可以得到控制所需要的延时时间。S7-200 PLC定时器的时间基准有三种:1ms、10ms、100ms。通常定时器的设定值在程序内赋予,需要时也可在外部设定。
定时器存储器地址表示格式为T[定时器号],如T24。CPU 22X系列PLC定时器数量为256个,其存储器的有效地址范围为T(0~255)。
(9)计数器存储器(C)
计数器是累计输入端脉冲电平由低到高的次数,它有三种类型:增计数、减计数、增减计数。通常计数器的设定值由程序赋予,需要时也可在外部设定。
计数器存储器地址表示格式为C[计数器号],如C3。CPU 22X系列PLC计数器数量为256个,其存储器的有效地址范围为C(0~255)。
(10)模拟量输入映像寄存器(AI)
模拟量输入模块将外部输入的模拟信号的模拟量转换成1个字长(16位)的数字量,存放在模拟量输入映像寄存器中,供CPU运算处理,模拟量输入映像寄存器的值为只读值。
模拟量输入映像寄存器的地址格式为AIW[起始字节地址],如AIW60。
模拟量输入映像寄存器的地址必须使用偶数字节地址来表示,如AIW0,AIW2,AIW4。
(11)模拟量输出映像寄存器(AQ)
CPU运算的相关结果存放在模拟量输出映像寄存器中,供D/A转换器将1个字长(16位)的数字量转换为模拟量,以驱动外部模拟量控制的设备,模拟量输出映像寄存器中的数字量为只写值。
模拟量输出映像寄存器的地址格式为AQW[起始字节地址],如AQW60。
模拟量输出映像寄存器的地址必须使用偶数字节地址来表示,如AQW0,AQW2,AQW4。
(12)累加器(AC)
累加器是用来暂时存储计算中间值的存储器。也可向子程序传递参数或返回参数。S7-200 PLCCPU提供了4个32位累加器(AC0、AC1、AC2、AC3)。
累加器的地址格式为AC[累加器号],如AC0。
累加器是可读写单元,可以按字节、字、双字存取累加器中的数值。由指令标识符决定存取数据的长度,例如,MOVB指令存取累加器的字节,DECW指令存取累加器的字,IN-CD指令存取累加器的双字。按字节、字存取时,累加器只存取存储器中数据的低8位、低16位;以双字存取时,则存取存储器的32位。
(13)高速计数器(HC)
高速计数器用来累计高速脉冲信号。当高速脉冲信号的频率比CPU扫描速率更快时,必须要用高速计数器计数。高速计数器的当前值寄存器为32位,读取高速计数器当前值应以双字(32位)来寻址,高速计数器的当前值为只读值。
高速计数器地址格式为HC[高速计数器号],如HC1。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。