陕西西门子S7-200SMART模块代理经销商
西门子S7-200系列PLC编程元件直接寻址方式
编程元件通常指的是PLC内部具有一定功能的器件,这些器件是由电子电路和存储器单元等组成的。例如,输入继电器是由输入电路和输入存储映像寄存器构成的;输出继电器是由输出电路和输出映像寄存器构成的;定时器和计数器等也都是由特定功能的寄存器构成的。
编程元件按功能命名,不同的名称实质是将整个存储器分为若干区域,如映像寄存器、定时器、计数器和特殊功能继电器等。同种编程元件按一定的顺序进行编号,称为元件地址,其实质是在区内编号。因此,通过元件名称和元件地址就可以确定这一元件在总存储器中的地址。
S7-200将编程元件统一归为存储器单元,存储单元按字节进行编址,无论所寻址的是何种数据类型,通常应指出它所在的存储区域和在区域内的字节地址。每个单元都有的地址,地址由名称和编号两部分组成,元件名称(区域地址符号)如表3.11所示。
所谓直接寻址是指直接在指令中使用由存储器或寄存器的元件名称和地址编号构成的地址实现对数据的访问。直接寻址包括:位寻址、字节寻址、字寻址和双字寻址。
数据地址的基本编址格式为:ATx.y
● A为元件名称。即该数据在数据存储器中的区域地址,可以是表3.11中的符号。
● T为数据类型。如用位寻址方式,无该项;如用字节寻址方式,该项为B;如用字
寻址方式,该项为W;如用双字寻址方式,该项为D。
● x为存储区域内的首字节地址。
● y为字节内的位地址,只有位寻址时才有该项。
关于直接寻址方式的说明如下:
(1)位寻址的编址格式为Ax,y:必须指定编程元件的名称、字节地址和位地址,如图3.10所示。
图3.10 位寻址格式
(2)字节、字和双字的寻址格式可以统一为ATx,即在直接访问字节、字和双字数据时,也必须指明元件名称、数据类型和存储区域内的首字节地址。
下面是以变量存储器为例分别存取3种长度数据的比较:
字节:VB200
V:元件名称,B:数据长度为字节型,200:字节地址

字:VW200
V:元件名称,W:数据长度为字类型(16位),200:起始字节地址

双字:VD200
V:元件名称,D:数据长度为双字类型(32位),200:起始字节地址

(3)存储区内另有一些元件是具有一定功能的硬件,由于元件数量很少,所以不用指出元件所在存储区域的字节,而是直接指出它的编号。其寻址格式为:Ay。
这类元件包括:定时器(T)、计数器(C)、高速计数器(HC)和累加器(AC),如T32、AC0等。
PLC是通过编制程序来实现控制要求的,在编程中需要使用各种编程元件。常用的PLC的编程元件包括输入映像寄存器、输出映像寄存器、位存储器、定时器、计数器、通用寄存器、数据寄存器及特殊功能存储器等,这些编程元件可以为程序提供无数个常开和常闭触点。
PLC内部的编程元件的作用和继电接触控制系统中使用的继电器十分相似,也有“线圈”与“触点”,当写入的逻辑状态为“1”时,表示相应继电器线圈得电,常开触点闭合,常闭触点断开。但编程元件并不是真正的继电器,而是PLC内部的存储单元,通常也称这些编程元件为“软”继电器。
(1)输入映像寄存器(I)。输入映像寄存器用于接受外部输入设备的信号,以字节为单位,寄存器的每一位对应一个数字量输入点。在每个扫描周期的开始的输入处理阶段,PLC对各输入点进行采样,并把采样值送到输入映像寄存器。PLC在接下来的本扫描周期各阶段不再改变输入映像寄存器中的值,直到下一个扫描周期的输入处理阶段。
不同型号主机的输入映像寄存器区大小可以参考主机技术性能指标表。实际输入点数不能超过这个数量,未用的输入映像区可以作其他编程元件来使用。如:可以当通用辅助继电器或数据寄存器来使用,但这只有在寄存器的整个字节的所有位都未占用的情况下才可作他用,否则会出现错误执行结果。
(2)输出映像寄存器(Q)。输出映像寄存器用于输出程序执行结果并驱动外部设备,以字节为单位,寄存器的每一位对应一个数字量输出点。在每个扫描周期的输入处理、程序执行和通信处理等阶段,PLC并不把输出结果直接送到输出继电器,而是送到输出映像寄存器,只有在每个扫描周期的末尾才将输出映像寄存器中的信号几乎同时地送到输出点进行刷新。实际未用的输出映像区可作他用,用法与输入继电器相同。
(3)位存储器(M)。位存储器如同继电接触控制系统中的中间继电器,一般以位为单位使用,但也可以以字节等其他单位使用。位存储器在程序内部使用,不能提供外部输出。
(4)特殊存储器(SM)。特殊存储器用来存储系统的状态变量和有关的控制参数和信息。用户可以通过特殊存储器沟通PLC与被控对象之间的信息,并利用这些信息用程序实现一定的控制动作。用户也可通过直接设置某些特殊存储器位以使设备实现某种功能。
SM能以位、字节、字和双字方式使用,按存取方式可将其分为两大类:只读型SM和可写型SM。
例如:
● SM0.0:该位始终为1。
● SM0.1:首次扫描为1,以后为0,常用来对子程序进行初始化,只读型。
● SM0.4:提供高低电平各30s,周期为1min的时钟脉冲。
● SM0.5:提供高低电平各0.5s,周期为1s的时钟脉冲。
● SM1.2:当机器执行数学运算的结果为负时,该位被置1。
● SM36.5:HSC0当前计数方向控制,置位时,递增计数,可写型。
● SMB31和SMW32:在存储器系统的使用中,用户可以用程序通过对特殊标志存储
器字SMB31和存储器字SMW32的设置,将存储在RAM中的字节、字或双字数
据备份到E2PROM存储器。
其他特殊标志继电器的功能可以参见附录。
(5)变量存储器(V)。变量存储器用来存储变量,它可以存放程序执行过程中控制逻辑操作的中间结果,也可以使用变量存储器来保存与工序或任务相关的其他数据。
(6)局部变量存储器(L)。局部变量存储器用来存放局部变量,局部变量与变量存储器所存储的全局变量十分相似,主要区别是全局变量是全局有效的,即同一个变量可以被任何程序(包括主程序、子程序和中断程序)访问;而局部变量是局部有效的,即变量只和特定的程序(比如子程序)相关联。
S7-200 PLC提供64个字节的局部存储器,其中60个可以用作暂时存储器或给子程序传递参数。主程序、子程序和中断程序在使用时可以使用全部的64个字节的局部存储器。PLC在运行时会自动根据需要动态地分配局部存储器:在主程序执行时,分配给子程序或中断程序的局部变量存储区是不存在的,当子程序调用或出现中断时,需要为之分配局部存储器,新的局部存储器可以是曾经分配给其他程序块的同一个局部存储器。
(7)顺序控制继电器(S)。顺序控制继电器用在顺序控制和步进控制中非常方便,它用于组织机器操作或进入等效程序段的步。SCR指令提供控制程序的逻辑分段,用顺序控制继电器和相应指令可以在小型PLC上编制复杂的顺序控制程序。
(8)定时器(T)。定时器是可编程序控制器中重要硬件编程元件,是累计时间增量的设备。自动控制的大部分领域都需要用定时器进行延时控制,灵活地使用定时器可以编制出动作要求复杂的控制程序。
定时器的工作过程与继电接触控制系统的时间继电器基本相同。定时器使用时需要提前输入时间预设值,当定时器的输入条件满足时开始计时,当前值从0开始按一定的时间单位增加;当定时器的当前值达到预设值时,定时器发生动作,发出中断请求,以便PLC响应而作出相应的动作。此时它对应的常开触点闭合,常闭触点断开。利用定时器的输入与输出触点就可以得到控制所需的延时时间。
精度等级:S7-200定时器的精度(时间增量,或称时间单位)有3个等级:1ms、10ms和100ms。
定时器数量不多,定时器的编址用定时器的名称和它的编号来表示,如T4。
T4不仅仅是定时器的编号,它还包含两方面的变量信息:定时器位和定时器当前值。
● 定时器位:定时器位与时间继电器的输出相似,当定时器的当前值达到预设值时,
该位被置为“1”。
● 定时器当前值:存储定时器当前所累计的时间,它用16位符号整数来表示。
● 指令中所存取的是当前值还是定时器位,取决于所用的指令:带位操作的指令存取
的是定时器位,带字操作的指令存取的是定时器的当前值。
(9)计数器(C)。计数器用来累计输入脉冲的次数,是应用非常广泛的编程元件,经常用来对产品进行计数。
计数器是对外部输入的脉冲计数。计数器在使用时需要提前输入它的设定值(计数的次数),当输入触发条件满足时,计数器开始累计它的输入端脉冲电位上升沿(正跳变)或下降沿(负跳变)的次数,当计数器计数达到预定的设定值时,就发出中断请求信号,以便PLC作出相应的处理。
计数器的计数方式有两种:累加计数和累减计数,前者从0开始累加到设定值,后者从设定值开始累减到0。两种方式的变化单位都为1。
计数器的数量不多,与定时器的使用相似,计数器的编址用计数器的名称和它的编号来表示,如C4。
C4也不仅仅是计数器的编号,它还包含两方面的变量信息:计数器位和计数器当前值。
● 计数器位:表示计数器是否发生动作的状态,当计数器的当前值达到预设值时,该
位被置为“1”。
● 计数器当前值:存储计数器当前所累计的脉冲个数,它用16位符号整数来表示。
● 指令中所存取的是当前值还是计数器位取决于所用的指令:带位操作的指令存取的
是计数器位,带字操作的指令存取的是计数器的当前值。
(10)模拟量输入映像寄存器(AI)、模拟量输出映像寄存器(AQ)。模拟量输入电路用以实现模拟量/数字量(A/D)之间的转换,而模拟量输出电路用以实现数字量/模拟量(D/A)之间的转换。
模拟量输入/输出映像寄存器也叫模拟量输入/输出寄存器,将电压或温度等模拟量值与数字量之间进行转换。数字量的长度为1字长(16位),且从偶数号字节进行编址来存取这些值,如0、2、4、6、8。
编址内容包括元件名称、数据长度和起始字节的地址,如AIW6、AQW12。
存储形式如下:
模拟输入寄存器编址举例:MSB LSB
AIW6 | AIB6(有效字节) | AIB7(有效字节) |
模拟输出寄存器编址举例:MSB LSB
AQW12 | AQB12(有效字节) | AQB13(有效字节) |
PLC对这两种寄存器的存取方式不同:模拟量输入寄存器只能作读取操作,对模拟量输出寄存器只能作写入操作。
(11)高速计数器(HC)。高速计数器的工作原理与普通计数器基本相同,它用来累计比主机扫描速率更快的高速脉冲。高速计数器的当前值为双字长(32位)的符号整数,且为只读值。
高速计数器的数量很少,编址时只用名称HC和编号即可,如HC2。
格式:
高速计数器的编程使用比较复杂,在后续章节中将作详细介绍。
(12)累加器(AC)。累加器(AC)是用来暂存数据的寄存器。它可以用来存放数据如运算数据、中间数据和结果数据,也可用来向子程序传递参数或从子程序返回参数。使用时只表示出累加器的地址编号,如AC0。数据长度可以是字节、字和双字,分别如下所示:

累加器可进行读写两种操作,在使用时只出现它的地址编号。累加器可用长度为32位,但实际应用时,累加器中的数据长度取决于进出AC0的数据的类型。
陕西西门子S7-200SMART模块代理经销商