任务四 认识S7-200系列PLC
【知识、能力目标】
了解S7-200 PLC的基本结构及各部件的功能;
了解S7-200 PLC的主要性能指标;
掌握S7-200 PLC的编程元件及寻址方式。
德国西门子(Siemens)公司生产的PLC具有世界领先水平,从1975年至今,先后推出了S3、S5、S7等系列PLC,其中1996年推出的SIMATIC S7系列PLC继承了上一代S5系列稳定、可靠和故障率低的精髓,将先进控制思想、现代通信技术和IT技术的最新发展集于一身,在CPU运算速度、程序执行效率、故障自诊断、联网通信等方面取得了业界公认的成就。
SIMATIC S7系列包括小型PLC S7-200、中型PLC S7-300、大型PLC S7-400。
一、S7-200 PLC的构成
S7-200系列PLC,将一个微处理器、一个集成电源和数字量I/O点等部件,集成在一个紧凑的封装中,从而形成了一个功能强大的、整体式结构的微型PLC。S7-200系列PLC主要有CPU221、CPU222、CPU224、CPU226四种主机CPU型号。该系列PLC的硬件系统主要包含:基本单元(或称主机、CPU模块)、扩展模块、编程器等外设。
基本单元由CPU、存储器、基本输入/输出(I/O)点数及电源等组成。它是PLC系统中必不可少的部分。它实际上已是一个能独立实现一定控制任务的完整的控制系统。S7-200 主机外形如图1-4所示。
图1-4 S7-200主机外形
扩展模块包括用来增加I/O点数及用来增加PLC控制功能的两类部件。用户可根据实际需要,灵活地改变系统的输入/输出点数,或将高速计数器模块、PID模块等与主机连接,完成相应的特殊控制功能。不同型号的PLC所能连接的扩展模块数量有所不同,其中CPU 221无扩展模块。
二、S7-200 CPU的主要性能指标
S7-200 CPU通用规范见表1-1。表1-2列出了S7-200 CPU主要性能指标。
表1-1 S7-200 CPU通用规范
表1-2 S7-200 CPU主要性能指标
对于每个型号,西门子提供DC(24V)和AC(120~220V)两种供电的CPU类型。四种CPU均有晶体管输出和继电器输出两种类型。如CPU224 DC/DC/DC和CPU224 AC/DC/Relay的含义如下。
需要说明的是,S7-200 PLC提供了下面几种方法,确保用户程序、数据和CPU的组态数据不丢失。
(1)CPU提供了一个EEPROM,永久保存用户程序、选择的数据区和CPU的组态数据。
(2)CPU提供了一个超级电容器,在CPU断电时保存完整的RAM存储器。根据CPU模块类型,超级电容器可保存RAM存储器达数天之久。
(3)CPU提供了一个可选的电池卡,当CPU断电后,可延长RAM存储器保持的时间。电池卡只有在超级电容器耗尽后才提供电源。
另外,所有S7-200 CPU都有一个内部电源,为CPU自身、扩展模块和其他用电设备提供5V、24V直流电源。扩展模块需要通过与CPU连接的电缆取得5V直流工作电源。24V的直流电源可为CPU和扩展模块上的I/O点供电,也可为一些特殊或智能模块提供电源。
三、扩展模块
S7-200 CPU为了扩展I/O点数或执行特殊的功能,可以连接扩展模块(CPU 221 除外)。扩展模块主要有:数字量I/O模块、模拟量I/O模块、通信模块和特殊功能模块。如EM 221 DI 8X24V(DC)[8点24V(DC) 数字量输入扩展模块]、EM 222 DO 8XDC24V[8点24V(DC)数字量晶体管输出扩展模块]、CP 243-1(工业以太网通信模块)。常用扩展模块所消耗5V(DC)电流详见表1-3。
表1-3 常用扩展模块所消耗5V(DC)电流
由表1-1可知,不同规格的CPU提供5V(DC)和24V(DC)电源的容量不同。每个实际的PLC控制系统都要就电源容量进行规划计算。如每个扩展模块都需要5V(DC)电源,应当检查所有扩展模块的5V(DC)电源需求是否超出CPU的供电能力,一旦超出,就必须减少或改变模块配置。同理,需要24V(DC)电源的设备,也要根据CPU的供电能力进行计算,如果所需电源超出电源的容量,则需要增加外接24V(DC)电源。S7-200 CPU模块上提供的电源不能和外接电源并联,但它们必须共地。
四、最大I/O配置
S7-200 CPU虽然具有相同大小的I/O映像区,但不同CPU的最大I/O还受下面几种情况的限制。
(1)模块数量:CPU 221 不能扩展;CPU 222 最多扩展2个模块;CPU 224及226最多扩展7个模块(其中最多2个智能模块,如EM 277 PROFIBUS-DP)。
(2)数字量映像寄存器大小:每个CPU允许的数字量I/O的逻辑空间为128个输入和128个输出。由于该逻辑空间按8点模块分配,因此有些物理点无法被寻址。一个特殊模块可能不能全部寻址8个点。如CPU 224有10个输出点,但它占用逻辑输出区的16个点地址;又如一个4输入/4输出模块,占用逻辑空间的8个输入点和8个输出点。
(3)模拟量映像寄存器大小:模拟量I/O允许的逻辑空间是 CPU 222为16输入/16输出;CPU 224及226为32输入/32输出。
(4)CPU内部电源所能提供的5V(DC)电源容量和每种扩展模块所消耗的电流都不同。如CPU 222控制系统的最大数字量I/O配置是78点,因CPU 222最多可扩展2个模块,选EM 223 DI16/DO16X24V(DC)或者EM 223 DI16/DO16X24V(DC)/继电器扩展模块,扩展输入点2X16、扩展输出点2X16,CPU 222模块本身有输入点8点、输出点6点,所以共78点。
S7-200系列PLC组成的控制系统中,每种类型CPU模块提供的主机I/O点,都具有固定的I/O地址;每个扩展模块的地址,都必须由I/O类型及模块在I/O链中的位置决定。I/O扩展模块必须依次接到PLC右边。
S7-200 PLC共有4类I/O:数字量输入(DI)、数字量输出(DO)、模拟量输入(AI)、模拟量输出(AQ)。其I/O地址分配规则如下。
(1)每一类I/O分别排列地址,从PLC主机开始算起,I/O点从左到右按由小到大的规律排列,扩展模块的类型和位置一旦确定,则它的I/O点地址也随之确定。
(2)CPU给数字量扩展模块的输入输出映像寄存器的单位长度为8位(1个字节),某模块实际位不足8位的,没有使用的高位也不能分配给I/O链的后续模块。
(3)CPU给模拟量扩展模块是以2字节递增方式来分配空间的。
例如,某PLC控制系统需要的输入输出点数为:数字量输入25点、数字量输出21点,模拟量输入5点、模拟量输出2。能够满足此要求的配置有多种,表1-4列出了其中的一种,该种配置共有数字量输入26点、数字量输出22点、模拟量输入8点、模拟量输出2点,可满足控制系统的需要。
表1-4 I/O地址分配举例
五、S7-200 PLC的编程元件及寻址方式
1. PLC的数据类型及表示方法
SIMATIC S7-200 系列PLC的数据类型有:逻辑型、整型和实型(或浮点型)。实数采用32位单精度来表示。存储器的常用单位有位(bit)、字节(Byte)、字(Word)、双字(Double Word)。一位二进制数称为1个位(bit),位是最小的存储单元。这几种常用单位的换算关系是:1DW=2W=4B=32bit。表1-5列出了不同的数据长度所表示的数值范围。
表1-5 数据长度和数值范围
在许多S7-200指令中经常会使用到常数。常数值可为字节、字和双字。CPU以二进制方式存储所有常数,也可用十进制、十六进制、ASCII码或浮点数形式来表示,表1-6列出了常数的各种表示方式。
表1-6 常数的表示方式
2. S7-200 PLC的编程元件及直接寻址
S7-200 将信息存于不同的存储器单元,每个单元都有唯一的地址,只要明确指出要存取的存储地址,用户程序就可以直接存取其中的信息。S7-200 CPU使用数据地址访问所有的数据,称为寻址,寻址方式又分为直接寻址和间接寻址两种。
① 直接寻址方式:按给定地址所找到的存储单元中的内容就是操作数。
② 间接寻址方式:使用指针来存取存储器中的数据。在存储单元中放置一个地址指针,按照这一地址找到的存储器中的数据才是所要取的操作数。
编程元件是PLC内部的具有一定功能的各种存储器单元电路,它们由寄存器与存储器单元等组成,是支持该机型编程语言的软元件,按习惯叫法分别称为继电器、定时器、计数器等,由于它们与物理元件有很大的差别,一般称它们为“软继电器”,也就是说软继电器是PLC内部的编程元件。每一个编程元件与PLC的元件映像寄存器的一个存储单元相对应。软继电器的工作线圈没有工作电压等级、功耗大小和电磁惯性等问题;触点没有数量限制、没有机械磨损和电蚀等问题。它们在不同的指令操作下,其工作状态可以无记忆,也可以有记忆,还可以作脉冲数字元件使用。
PLC中的各种编程元件的功能是相互独立的,它们均用一定的字母来命名。不同的名称实质上代表了不同的存储器区域。对于同名元件又按一定的规则进行编号,这就是元件的地址,其实质是在存储器区域内的编号。使用这些元件编程时必须用元件名称(即区域号)和元件地址(即区内编号)来加以识别。图1-5和图1-6分别是位寻址的格式和字节寻址的格式举例。
图1-5 位寻址的格式举例
图1-6 字节寻址的格式举例
注意,当涉及多字节组合寻址时,S7-200遵循“高地址、低字节”规律。如果将16#6C送入VB200,16#9A送入VB201,那么,VW200的值将是16#6C9A,即VB201作为高地址字节,保存的则是数据的低字节部分。
下面介绍S7-200 PLC 的编程元件的直接寻址方式。
(1)输入映像寄存器(I)寻址
在每个扫描周期的开始,CPU对输入点进行采样,并将采样值存入输入映像寄存器中。输入映像寄存器是以字节为单位的寄存器,它的每一位对应一个外部数字量输入端子。可以按位、字节、字及双字来存取输入映像寄存器中的数据。
① 位寻址:I字节地址.位地址,如:I0.1;
② 字节、字、双字寻址:I长度 起始字节地址,如:IB0,IW1,ID3。
(2)输出映像寄存器(Q)寻址
在每次扫描周期的结尾,CPU将输出映像寄存器中的数据复制到物理输出端点上。输出映像寄存器也是以字节为单位的寄存器,它的每一位对应一个外部数字量输出端子。可以按位、字节、字及双字来存取输出映像寄存器中的数据。
① 位寻址:Q字节地址.位地址,如:Q1.2;
② 字节、字、双字寻址: Q长度起始字节地址,如:QB0,QW1,QD3。
(3)变量存储器(V)寻址
变量存储器用于存储程序执行过程中控制逻辑操作的中间结果,也可以用来保存与工序或任务相关的其他数据。可以按位、字节、字及双字来存取变量存储器。
① 位寻址:V字节地址.位地址,如:V10.2;
② 字节、字、双字寻址: V长度起始字节地址,如:VB20,VW6,VD11。
(4)位存储器(M)寻址
可以用位存储器作为通用辅助继电器来存储中间操作状态和控制信息。同样可以按位、字节、字及双字来存取位存储器区中的数据。
① 位寻址:M字节地址.位地址,如:M0.2;
② 字节、字、双字寻址:M长度起始字节地址,如:MB1,MW6,MD10。
(5)顺序控制继电器(S)存储器区寻址
顺序控制继电器(S)用于组织机器操作或进入等效程序段的步进控制。SCR指令提供控制程序的逻辑分段。可以按位、字节、字及双字来存取顺序控制继电器中的数据。
① 位寻址:S字节地址.位地址,如:S0.1;
② 字节、字、双字寻址:S长度起始字节地址,如:SB1,SW6,SD21。
(6)特殊标志存储器(SM)
特殊标志存储器的位提供了CPU和用户程序之间传递信息的方法。可以使用这些位控制S7-200 CPU 的一些特殊功能。如:SM0.1位第一次扫描为ON,SM0.0位始终为ON;SM0.5为时钟脉冲(0.5S闭合/0.5S断开);关于SM的详细信息,请参阅有关的编程手册。可以按位、字节、字及双字来存取特殊标志存储器中的数据。
① 位寻址:SM字节地址.位地址,如:SM0.0;
② 字节、字、双字寻址: SM长度 起始字节地址,如:SMB35,SMW6,SMD52。
(7)局部变量存储器(L)区寻址
局部变量存储器用来存放局部变量。可以按位、字节、字及双字来存取局部存储器中的数据。
① 位寻址:L字节地址.位地址,如:L1.2;
② 字节、字、双字寻址:L长度起始字节地址,如:LB0,LW1,LD6。
(8)定时器(T)存储器区寻址
定时器是累计时间增量的器件,用来进行延时控制,它相当于继电接触器控制系统中的时间继电器。定时器寻址有两种形式,两种寻址格式相同,均用定时器地址(T+定时器号)来存取定时器的定时器当前值或定时器位。如:T37不仅是定时器的地址,T37还包含了以下两方面的变量信息。
① 定时器当前值:它用16位有符号整数表示,存储定时器当前所累计的时间。
② 定时器位:表示定时器是否发生动作的状态。按照定时器的当前值和预置值的比较结果置位或复位,带位操作数的指令存取定时器位,而带字操作数的指令存取定时器当前值。详见项目二。
(9)计数器(C)存储器区寻址
计数器用于累计输入端脉冲电平的次数。计数器也有两种寻址形式,其格式相同,均用计时器地址(C + 计时器号)来存取计数器的当前值或计数器位。如:C10不仅是计数器的地址,C10还包含了以下两方面的变量信息。
① 计数器当前值:是一个16位有符号整数,存储计数器当前所累计的输入脉冲个数;
② 计数器位:表示计数器是否发生动作的状态。按照计数器当前值和预置值的比较结果来置位或复位,带位操作数的指令存取计数器位,而带字操作数的指令存取当前值。详见项目二。
(10)高速计数器(HC)寻址
高速计数器用来累计比CPU扫描速度更快的脉冲。CPU 221及CPU 222均有四个高速计数器,CPU 224及CPU 226均有六个。高速计数器的当前值为32位有符号整数,且为只读数据,可作为双字(32位)来寻址,其寻址格式为HC+高速计数器号,如:HC2。
(11)累加器(AC)寻址
累加器是与存储器相仿的存取数据的读/写器件。例如,可用来向子程序传递参数、从子程序返回参数、存储计算的中间值。CPU只提供四个32位累加器(AC0、AC1、AC2、AC3),可以按字节、字及双字来存取累加器中的数据,若按字节或字来存取累加器只能使用其8位或16位,按双字存取累加器可以使用全部32位。存取数据的长度由所用指令来决定。其寻址格式为AC+累加器号,如:AC3。
(12)模拟量输入映像寄存器(AI)寻址
S7-200 PLC 将实际系统中的模拟量输入值(如温度、速度、流量等)转换成1个字长(16位)的数字量。其寻址格式如图1-7所示。
图1-7 存取模拟量输入值寻址格式
(13)模拟量输出映像寄存器(AQ)寻址
S7-200 PLC把一个字长(16位)数值按比例转换为电流或电压。因为模拟输出量为一个字长,且从偶数字节(如:0,2,4)开始,必须使用偶数字节地址(如:AQ0,AQ2)来设置这些值,所以用户程序无法读取这个模拟输出值。其寻址格式如图1-8所示。
图1-8 存取模拟量输出值寻址格式
S7-200 PLC的编程元件及寻址范围见表1-7,其中输入映像寄存器和输出映像寄存器采用八进制编号,其他元件用十进制编号。
表1-7 S7-200 PLC编程元件及寻址范围
3. 存储器区域的SIMATIC 间接寻址
前面介绍的对各存储器区域访问都是使用直接寻址方式,即按照给定地址所找到的存储单元中的内容就是操作数。间接寻址方式则使用指针来存取存储器中的数据。S7-200 CPU允许使用指针对指定存储器区域进行间接寻址:I、Q、V、M、S、T(仅当前值)、C(仅当前值),但不可以对独立的位(BIT)或模拟量进行间接寻址。使用间接寻址方式访问存储器区域的步骤如下。
(1)建立指针
为了对存储器区域的某一地址进行间接寻址,需要先为该地址建立指针。指针为双字值,是需要被访问的存储器的物理地址。只能使用变量存储器(V)、局部变量存储器(L)和累加器(AC)作为指针。为了生成指针,必须使用双字传送指令(MOVD),将所要访问的存储器区地址移入,用来作为指针的存储器或寄存器。
例:MOVD &VB200,AC0
MOVD &MB10,VD100
MOVD &C50,LD10
“&”是取地址符号,&VB200表示VB200单元的32位物理地址,而VB200本身是一个直接地址编号,注意区别。第一条指令是将VB200单元的32位物理地址装入AC0中。指令中的第二个操作数是用来存放物理地址的,它必须是双字长,如上面的AC、VD、LD。
(2)间接存取
操作数前面加有“*”,则表示该操作数为一个指针。
例:MOVD &VW0,AC1
MOVW *AC1, AC2
第一条指令将VW0的地址移入AC1中,即建立地址指针;第二条指令中的*AC1表示AC1为MOVW指令确定的一个字长的存储单元的指针。执行结果是将以AC1中内容为起始地址的内存单元的16位数据送到累加器AC2中,即AC1指针所指的一个字长的数据(VB0,VB1)送到累加器AC2中。
另外,根据控制程序的要求,有时需要修改指针的值。因为指针是32位的值,所以用双字指令来修改指针大小。简单的数学运算指令,如加法、减法、自增和自减等指令可用来修改指针。
例:INCD AC1
INCD AC1
MOVW *AC1,AC2
执行情况:前两条指令使AC1中的内容增加了两个单位,变成了下一个数据的地址(VW2 的起始字节地址);第三条指令将指针所指的一个字长的数据(VB2、VB3中内容)送到累加器AC2中。
注意,调整指针大小要根据所存取的数据长度进行。存取字节时,指针调整单位为1;存取一个字、定时器或计数器的当前值时,指针调整单位为2;存取双字时,指针调整单位为4。
六、习题与训练
1.4.1 简述S7-200系列PLC的系统基本构成。
1.4.2 PLC中的软继电器有什么特点?
1.4.3 S7-200系列PLC主机中有哪些编程元件? 各编程元件如何直接寻址?