一、S7-200 PLC的硬件
1.基本单元
S7-200系列包括CPU221、CPU222、CPU224、CPU224XP和CPU226共5种型号的基本单元。
图1 CPU224 DC/DC/DC外形图
2.扩展单元
1)数字量I/O扩展单元
S7-200系列PLC提供了多种数字量I/O扩展单元,包括EM221、EM222、EM223扩展单元。可提供8点、16点或32点数字量I/O点,来满足不同的控制需要。除CPU221外,其他CPU模块均可以配接多个扩展模块,连接时CPU模块放在最左侧,扩展模块用扁平电缆与左侧的模块相连。具体数字量输入/输出模块如表1所示。
型号 EM221 8点,DC24V输入 EM221 8点,AC230V输入 EM221 16点,DC24V输入 EM222 4点,DC24V/5A输出 EM222 4点,10A继电器输出 EM222 8点,DC24V输出 EM222 8点,继电器输出 EM222 8点,AC230V输出 EM223 4输入/4输出,DC24V EM223 DC24V 4输入/继电器4输出 EM223 DC24V 8输入/继电器8输出 EM223 8输入/8输出,DC24V EM223 16输入/16输出,DC24V EM223 DC24V 16输入/继电器16输出 2)模拟量扩展单元
表1 数字量扩展模块
各组输入点数 4,4 8点相互独立 4,4,4,4 — — — — — 4 4 4,4 4,4 8,8 8,8
— — — 4点相互独立 4点相互独立 4,4 4,4 8点相互独立 4 4 4,4 4,4 4,4,8 4,4,4,4 各组输出点数 S7-200PLC有3种模拟量扩展模块,如表2所示,转换位数都为12位。
表2 模拟量扩展模块
模块 点数 EM231 4路模拟量输入 EM232 2路模拟量输出
3)热电偶/热电阻模块
EM231热电偶/热电阻模块是最常用的模块,具有冷端补偿电路。EM231热电偶输出的电压范围为±80mV,模块输出15位加符号位的二进制数。EM231热电偶可以用于J、K、E、N、S、T和R型热电偶,用模块下方的DIP开关来选择热电偶的类型。EM231热电阻的接线方式有2线、3线和4线3种,4线方式的精度最高,2线方式受接线误差的影响精度最低;EM231热电阻模块可以通过DIP开关来选择热电阻的类型、接线方式、测量单位和开路故障的方向。
4)通讯扩展模块
EM277 PROFIBUS-DP模块是常用的通讯扩展模块,通过EM277 PROFIBUS-DP扩展模块可将S7-200CPU连接到PROFIBUS-DP 网络;CP243-2通讯处理器是AS-i主站连接部件,专门用于S7-200(CPU 22×),最多可连接31个AS-i从站,连接的同时显著增加了S7-200可利用的I/O点数。
3.相关设备
S7-200系列PLC提供了文本显示器TD-200和TD-200C,它们可以显示两行,每行20个字符,每两个字符的位置可以显示1个汉字,通过它们可以查看、监控和改变应用程序的过程变量。S7-200系列PLC还提供了TP070和TP170触摸屏,它们用专用的组态软件PROTOOL来生成画面,由用户自定义操作接口,例如图形、滚动条、按钮、指示灯、输入框等。
EM235 4路模拟量输入,1路模拟量输出 二、 S7-200PLC的外部接线
1.端子排
图2 CPU224DC/DC/DC的接线端子
2.外部接线实例
以CPU224DC/DC/DC型PLC为例,如图3所示,在PLC的输入端接入一个按钮SB1、一个限位开关SQ1,还有一个接近开关SP1;输出为一个电磁阀YV1。
图3 CPU224DC/DC/DC外部接线图
三、 S7-200 PLC的编程资源
1.S7-200的编程元件 1)输入继电器(I)
输入继电器存取的地址范围是I0.0~I15.7。 2)输出继电器(Q)
输出继电器存取的地址范围是Q0.0~Q15.7。
3)辅助继电器
①通用辅助继电器(M)。辅助继电器存取的地址范围是M0.0~M31.7。
②特殊辅助继电器(SM)。特殊辅助继电器,又称特殊标志位存储器。对于不同的CPU,特殊标志位存储器的地址范围有所不同,对于CPU224的地址范围为SM0.0~SM179.7,可按位、字节、字和双字来存取。每一个特殊标志位存储器都有特定的功能,常用特殊辅助继电器元件见表1。
表1 S7-200系列PLC的常用特殊辅助继电器元件
编号 SM0.0 SM0.1 SM0.4 SM0.5 SM1.0 SM1.1 SM1.2 功能描述 RUN监控,PLC为RUN时为ON 初始脉冲,RUN后1个扫描周期为ON 1min时钟脉冲 1s时钟脉冲 零标志 错误标志 负数标志
4)顺序控制继电器(S)
顺序控制继电器存取的地址范围是S0.0~S31.7。 5)定时器(T)
CPU222、CPU224及CPU226的定时器地址范围是T0~T255,用定时器地址(T和定时器号,如T0)来存取当前值和定时器位。
6)计数器(C)
计数器的地址范围是C0~C255,用计数器地址(C和计数器号,如C0)来存取当前值和计数器位。
7)高速计数器(HC)
高速计数器的地址范围根据CPU的型号有所不同,CPU221、CPU222各有4个高速计数器,分别是HC0~HC3,CPU224、CPU226各有6个高速计数器,分别是HC0~HC5。
8)数据存储器
①变量存储器(V)
变量存储器主要用于存储变量。它可以存放程序执行过程中的中间变量,也可以保存与工序或任务相关的变量。在进行数据处理时,变量存储器会被经常使用。
变量存储器存取的地址范围根据CPU的型号有所不同,CPU221、CPU222为V0.0~V2047.7,CPU224、CPU226为V0.0~V5119.7。
②局部变量存储器(L)
局部变量存储器和变量存储器相类似,也是用来存储变量。区别在于局部变量存储器主要用来存放局部变量,而变量存储器存放的是全局变量。S7-200系列PLC有64个字节的局部存储器,PLC运行时,根据需要动态的分配局部变量存储器,其中60个字节可以作为暂时存储器,或给子程序传递参数,另外4个字节作为系统的保留字节。
局部变量存储器存取的地址范围是L0.0~L63.7。
③累加器(AC)
累加器是用来暂存数据的寄存器,它可以用来存放运算数据、中间数据和结果,也可以用来向子程序传递参数或从子程序返回参数。
S7-200系列PLC提供了4个32位的累加器,地址范围是AC0~AC3。 2.S7-200系列PLC的寻址方式 1)直接寻址
位寻址格式、字节、字和双字寻址格式
2)间接寻址
用间接寻址方式存取数据需要做的工作有3个,分别是建立指针、用指针存取数据和修改指针。
四、 S7-200 PLC的常用指令
1.常用基本指令 1)标准触点指令
标准触点指令如图4所示,在语句表中分别用LD、A、O指令表示开始、串联和并联的常开触点;分别用LDN、AN、ON来表示开始串联和并联的常闭触点;用“=”表示线圈的输出指令。在梯形图中,触点符号中的“/”表示常闭,标准触点指令中变量的数据类型为BOOL型。
图4标准触点指令
2)逻辑电路块的连接指令
电路块连接指令有2个,分别是OLD、ALD。如图5所示。
OLD是指将两个以上触点串联形成的电路块并联起来;ALD是指将两条以上支路并联形成的电路块串联起来。
图5电路块连接指令
3)堆栈操作指令
S7-200有一个9位的堆栈,堆栈按“先进后出,后进先出”的原则存取,即先入的数据放在栈下方,后进的数据放在栈上方,出栈时上方的数据(后进的数据)先出去,下方的数据(先进的数据)后出去。栈顶用来存储逻辑运算的结果,下面的8位用来存储中间结果。与堆栈有关的指令有4个。
入栈指令(LPS):复制栈顶的值并将其压入堆栈的下一层,栈中原来的数据依次向下一层推移,原栈底值被推出丢失。
读栈指令(LRD):将堆栈中第2层的数据复制到栈顶,2~9层的数据不变,但原栈顶值丢失。 出栈指令(LPP):使栈中各层的数据向上移动一层,第2层的数据成为堆栈的新的栈顶值,原栈顶值被推出丢失。
装载堆栈(LDS):LDS n,n=1~8。复制堆栈内第n层的值到栈顶,栈中原来的数据依次向下移一层,原栈顶值丢失。
图6 堆栈操作指令
4)置位、复位指令
置位指令(S)的功能是将位存储区的某一位开始的N个(N=1~255)同类存储器位置1;复位指令(R)的功能是将位存储区的某一位开始的N个(N=1~255)同类存储器位置0。
图7置位、复位指令
5)立即指令
立即指令的功能是对I/O点进行快速的存取,不受PLC扫描周期的影响,可以提高PLC对外部设备的反应速度。LDI立即取指令,LDNI立即取反指令,OI立即或指令,ONI立即或反指令,AI立即与指令,ANI立即与反指令,=I立即输出指令,SI立即置位指令,RI立即复位指令。
图8 立即指令
6)边沿脉冲指令
边沿脉冲指令的功能是检测输入信号的上升沿和下降沿,检测到之后产生一个宽度为一个扫描周期的脉冲信号。指令格式为:EU,上升沿;ED,下降沿。如图9所示:
图9边沿脉冲指令
7)取反指令
取反指令NOT将它左边电路的逻辑运算结果取反。运算结果若为1则变为0;若为0则为1。如图10所示。
图10取反指令
8)空指令
空指令NOP使该步序空操作,不影响程序的执行。
2.定时器指令
S7-200系列PLC的定时器共有3种类型:接通延时定时器TON、断开延时定时器TOFF和有记忆接通延时定时器TONR。定时器有1ms、10ms、100ms三种分辨率,分辨率取决于定时器号
1)接通延时定时器指令
接通延时定时器TON的工作过程如图11所示,当定时器T37的IN输入端I0.0变为ON时,定时器T37开始定时,如果当前值小于预置时间PT端指定的设定值50而 I0.0变为OFF时定时器T37的当前值变为0;当前值大于等于预置时间PT端指定的设定值50时(即定时时间达到5s),定时器的常开触点T37为ON,Q0.0线圈得电。到达设定值后,当前值仍继续计数,直到最大值32767。当输入电路断开时,定时器自动复位,当前值被清零,常开触点T37为OFF。
图12接通延时定时器指令
2)断开延时定时器指令
断开延时定时器TOFF的工作过程如图13所示,当定时器IN输入端I0.0为ON时,定时器的常开触点T39闭合,当前值被清零;当I0.0由ON变为OFF时,定时器T39开始定时,定时时间到设定值5s时,使定时器常开触点T39变为OFF,定时器的当前值保持不变,直到输入电路I0.0的状态再次为ON。
TOFF与TON不能共享相同的定时器号,如不能同时对T37使用指令TON和TOFF。
图13断开延时定时器指令
3)保持型接通延时定时器指令
保持型接通延时定时器TONR的工作过程如图14所示,其工作原理与接通延时定时器TON相类似,在输入电路接通时,开始定时。当前值大于等于PT端指定的设定值时,定时器的常开触点变为ON,达到设定值后,仍然继续计数,直到最大值326767;不同的是保持型接通延时定时器在输入电路断开时,当前值保持不变。
图14 保持型接通延时定时器指令
3.计数器指令
计数器是用来累计输入脉冲的个数。S7-200系列PLC的计数器有3种类型:加计数器CTU、减计数器CTD、加减计数器CTUD。计数器的编号范围是C0~C255,不同类型的计数器不能使用同一计数器号。
1)加计数器 当计数器C0的复位输入端(R)电路断开,加计数脉冲输入(CU)I0.3的上升沿,计数器的当前值加1,直至计数最大值32767。当前值大于等于设定值(PV)4时,计数器的常开触点C0变为ON。当复位输入(R)I0.4为ON或执行复位指令时,计数器被复位,计数器变为OFF,当前值被清零。
图15 加计数器指令
2)减计数器
在减计数器C1脉冲输入(CD)I0.3的上升沿,从设定值开始,计数器C1的当前值减1,减至0时,计数器C1的常开触点变为ON。装载输入(LD)I0.4为ON时,计数器C1被复位,并把设定值装入当前值。
图16 减计数器指令
3)加减计数器
在加计数器脉冲输入(CU)I2.1的上升沿,计数器C2的当前值加1,在减计数器脉冲输入(CD)I2.2上升沿,计数器C2的当前值减1,计数器C2的当前值大于等于设定置(PV)3时,计数器C2的常开触点变为ON。当复位输入(R)I2.3为ON时,计数器C2被复位,当前值被清零。
图17 加减计数器指令
4.功能指令
1)程序控制指令
①跳转指令
跳转指令的功能是使程序可以根据条件转到同一程序中的具体标号处,该指令包括两个指令:跳转指令(JMP)和标号指令(LBL)。标号指令是跳转指令的目标标号。如图18所示,当I0.0为ON时,程序跳离对Q0.2的控制,转而去控制Q0.3。
图18 跳转指令
②子程序指令
S7-200的控制程序由主程序、子程序和中断程序组成。使用子程序可以将程序分成若干个功能的小块,便于程序的查错和维护。
子程序指令包括3个指令:建立子程序、子程序调用和子程序返回。有条件返回是指在子程序中用触点控制CRET指令,触点电路接通时,子程序被终止。如图19所示,当I0.0闭合时,主程序调用子程序SBR_0,当I0.1闭合时子程序有条件返回。
图19 子程序指令
③中断指令
中断程序不是由主程序调用,而是在中断事件发生时由操作系统调用。在执行主程序的时候,如果有中断信号进来,则停止执行主程序,转而去执行中断程序,执行完中断程序之后,再返回执行主程序。中断技术主要应用于信号采集、实时处理和通信等方面。
在S7-200系列中,最多可以有34个中断源,每个中断源都分配了一个中断号加以识别。这些中断源大致可以分成三种类型:通信中断、输入/输出中断和时基中断。通信中断是指PLC的通信工作在自由通信口模式,在这种模式下可以通过程序来控制通信口;输入/输出中断包括外部输入中断、高速计数器中断和脉冲输出中断。时基中断包括定时中断和定时器中断。
如图20所示,这是一个采样模拟输入信号的程序。当I0.0为ON时,首先给SMB34写入定时间隔为100ms,连接10号定时中断执行10号中断程序,并允许全局中断。中断程序10执行的功能是将AIW0中的内容存放在VW20中。EN为使能输入端,ENO为使能输出端,当EN有效时,指令才被执行,当指令执行后ENO为1,“->|”表示一个可使用的能流,可用可不用。
图20中断指令
2)数据处理指令
①比较指令
用来比较两个数IN1与IN2的大小。在梯形图中,满足比较关系式给出的条件时,触点接通。比较关系
有等于(=)、大于等于(>=)、小于等于(<=)、大于(>)、小于(<)、不等于(<>)。触点中间的B、I、D、R、S分别表示字节比较、整数比较、双整数比较、实数比较和字符串比较。如图21所示,在整数比较指令中,当VW0>=VW2并且VW6<1000时,Q0.0为1;在实数比较指令中,当VD0=VD4或VD8<9.6时,Q0.1为1。
图21比较指令
②传送指令
传送指令用于在各个编程元件之间进行数据传送。根据每次传送数据的数量,可分为数据传送指令和数据块传送指令。
数据传送指令每次传送一个数据,MOVB、BIR、BIW、MOVW、MOVD、MOVR分别表示字节传送、立即读字节、立即写字节、字传送、双字传送和实数传送。数据块传送指令的功能是完成多个数据的传送,BMB、BMW、BMD分别表示字节块传送、字块传送、双字传送。如图22所示,当I0.0为ON,执行字传送指令,将VW10中的数据传送到VW20中,同时利用ENO使Q0.0为ON;接着执行立即读指令,将I1口的状态读入VB30中;当I0.1为ON时,执行字节块的传送指令,将VB40开始的5个连续的字节数据传送到VB50开始的5个字节存储单元中去,并且使Q0.1为ON。
图22 传送指令
③移位指令与循环指令
移位指令将输入IN中的数的各位向右或向左移动N位后送给输出OUT。移位指令对移出的位自动补0,如果移动的位数N大于允许值(字节操作数为8,字操作为16,双字操作为32),实际移位的位数为最大允许值,N为字节变量。当移位操作结果为0时,SM1.0被置1;当移位次数大于0时,SM1.1存放最后一次被移出的位的值。SLB、SLW、SLD分别表示字节左移、字左移、双字左移;SRB、SRW、SRD分别表示字节右移、字右移、双字右移。
循环移位指令将输入IN中的各位向右或向左移动N位后,送给OUT。循环移位是环形的,即被移出来的位将返回到另一端空出来的位置。如果移动的位数N大于允许值(字节操作数为8,字操作为16,双字操作为32),则执行移位的次数为N除以实际数据长度的余数,N为字节变量。SM1.0被置1;当移位次数大于
0时,SM1.1存放最后一次被移出的位的值。RLB、RLW、RLD分别表示字节循环左移、字循环左移、双字循环左移;RRB、RRW、RRD分别表示字节循环右移、字循环右移、双字循环右移。
如图23所示,I0.0为ON时,依次执行左移位和循环右移指令。
图23移位指令和循环指令
4)数学运算指令 ①加减乘除指令
该指令的功能是对有符号整数或实数进行加减乘除运算。加减乘除运算指令包括整数、双整数和实数运算,运算结果分别是整数、双整数和实数。如图24所示,当I0.0为 ON时,进行VW10和VW11整数相加,结果送入VW11中,当I0.1为ON时,进行VD20和VD22实数相乘,结果送入VD22中。
图24加减乘除指令
②加1减1指令
加1减1指令就是对有符号数或无符号数加1或减1的操作。包括字节增INCB,字增INCW,双字增INCD。如图25所示,当I0.2为ON时,VB10中的数据进行自增1,结果放回VB10中;VW0中的数据进行自减1,结果放回VW0中。
图25 加1减1指令
例题1:分析执行图26程序后的运行结果。
分析: VB200中被赋值16#03,传送到VW200的高8位,所以(VW200)=16#0300,如果连接在输入端I0.2的开关开合了一次,则通过执行ROL_W指令后,(VW200)=16#0C00;如果连接在输入端I0.2的开关开合了两次,则(VW200)=16#3000。
图26 循环移位练习
例题2:闪烁电路在监控系统中的应用
1.控制要求
某车间排风系统,由三台风机组成,采用S7-200 PLC控制。其中风机工作状态需要进行监控,并通过指示灯进行显示,具体控制要求如下:
1)当系统中没有风机工作时,指示灯以2Hz频率闪烁; 2)当系统中只有1台风机工作时,指示灯以0.5Hz频率闪烁; 3)当系统中有2台以上风机工作时,指示灯常亮。 现根据以上控制要求编写风机状态监控程序。 2.PLC I/O点的分配
表1 PLC的I/O地址分配表 PLC的 I/O地址 I0.0 I0.1 I0.2 Q0.0 连接的外部设备 1号风机运行信号 2号风机运行信号 3号风机运行信号 指示灯显示
3.程序设计
1)风机工作状态检测程序的实现
风机工作的监视状态分为没有风机运行、只有一台风机运行和两台以上风机运行三种情况,可以通过三个辅助继电器分别保存这三种状态,实现的程序如下:
图27 风机工作状态检测程序
2)闪烁功能的实现
根据控制要求,需要产生2Hz和0.5Hz两种频率的闪烁信号,实现的程序如下:
图28 闪烁功能的实现
3)指示灯输出程序的实现
图28指示灯输出程序
为满足整个控制要求,需将以上三部分程序合并即可构成整个监控系统的程序。
因篇幅问题不能全部显示,请点此查看更多更全内容