S7-200PLC的外形结构
.状态指示灯(LED)显示CPU所处的工作状态。
SF——System Fault(系统错误)
RUN——运行
STOP——停止
2.存储卡接口可以插入存储卡
3.通信接口可以连接RS-485总线的通信电缆
_ EMBED PBrush ___
4.顶部端子盖下边为输出端子和PLC供电电源端子。输出端子的运行状态可以由顶部端子盖下方一排指示灯显示,ON状态对应指示灯亮。
_ EMBED PBrush ___
5.底部端子盖下边为输入端子和传感器电源端子。输入端子的运行状态可以由底部端子盖上方一排指示灯显示,ON状态对应指示灯亮。
6.前盖下面有运行、停止开关和接口模块插座。将开关拨向停止位置时,PLC处于停止状态,此时可以对其编写程序。将开关拨向运行位置时,PLC处于运行状态,此时不能对其编写程序。将开关拨向监控(Term)状态,可以运行程序,同时还可以监视程序运行的状态。接口插座用于连接扩展模块,实现I/O扩展。
1.程序家族有哪些成员?
PLC的控制程序一般由主程序、子程序和中断程序组成。西门子的S7-300/400将子程序分为功能(Function,或称为函数)和功能块(Function Block)。
在每一个扫描循环周期,CPU都要调用一次主程序,用户程序必须有一个并且只能有一个主程序。小型控制系统可以只有主程序。
中断程序用于快速响应中断事件。在中断事件发生时,CPU将停止执行当时正在处理的程序或任务,去执行用户编写的中断程序。执行完中断程序后,继续执行被暂停执行的程序或任务。
2.哪些情况需要使用子程序?
当系统规模很大、控制要求复杂时,如果将全部控制任务放在主程序中,主程序将会非常复杂,既难以调试,也难以阅读。使用子程序可以将程序分成容易管理的小块,使程序结构简单清晰,易于调试、查错和维护。
子程序也可以用于需要多次反复执行相同任务的地方,只需要编写一次子程序,别的程序在需要的时候多次调用它,而无需重写该程序。
3.怎样调用子程序?
主程序可以调用子程序,子程序也可以嵌套调用别的子程序。嵌套调用的层数是有限制的,例如S7-200的最大嵌套深度为8级。
执行完子程序后,返回调用它的程序中的调用指令的下一条指令。
4.每个扫描周期都会执行子程序吗?
子程序的调用可以是有条件的,在被调用期间,每个扫描周期都要执行一次被调用的子程序。调用条件不满足时不会执行子程序中的指令,因此使用子程序可以减少扫描循环时间。
5.停止调用子程序后,子程序中的线圈处于什么状态?
停止调用子程序后,不再执行子程序中的指令。子程序中线圈对应的编程元件如果没有受到别的程序的控制,将保持子程序最后一次执行后的状态不变。即使控制这些线圈的触点的状态变化,该线圈对应的元件的状态也不会变化,因为这时根本就没有执行子程序中的指令。
6.怎样实现子程序的无条件调用?
有的PLC的子程序调用指令不能直接接到左侧的垂直“电源”线上,需要通过触点电路来控制是否调用子程序,即子程序的调用是有条件的。可以用一直为ON的特殊位元件(例如S7-200的SM0.0或FX系列的M8000)的常开触点来实现子程序的无条件调用。
不同品牌的PLC的子程序大致可以分为两种,一种子程序没有输入、输出参数和局部变量,另一种则有。
1.什么是全局变量和局部变量?
以西门子的S7-200为例,输入I、输出Q、变量存储器V、内部存储器位M、定时器T、计数器C等属于全局变量,可以在符号表中为全局变量定义符号名。
程序组织单元(Program Organizational Unit)简称为POU,包括主程序、子程序和中断程序。每个POU均有自己的64字节局部变量,局部变量用L(Local)来表示,局部变量只能在它所在的POU中使用。与此相反,全局变量可以在各POU中使用。
2.局部变量有哪些类型?
子程序可以使用下列局部变量:
1) TEMP (临时变量)是暂时保存在局部数据区中的变量。只有在执行该POU时,定义的临时变量才被使用,POU执行完后,不再保存临时变量的数值。主程序和中断程序的局部变量表中只有TEMP变量。
2) IN(输入参数)由调用它的POU提供的传入子程序的输入参数。
3) OUT(输出参数)是子程序的执行结果,它被返回给调用它的POU。
4) IN_OUT(输入_输出参数)的初始值由调用它的POU传送给子程序,并用同一变量将子程序的执行结果返回给调用它的POU。
主程序和中断程序的局部变量表中只有临时变量TEMP。
3.子程序的输入、输出参数有什么作用?
具有输入、输出参数和局部变量的子程序易于实现结构化编程,对于长期生产同类设备或生产线的厂家尤为有用。编程人员为设备的各部件或工艺功能编写了大量的通用的子程序。即使不知道子程序的内部代码,只要知道子程序的功能和输入、输出参数的意义,就可以用它们快速“组装”出满足不同的用户要求的控制程序。就好像可以用数字集成电路芯片组成复杂的数字电路一样。
如果子程序没有输入、输出参数,这种子程序没有明确的软件接口,使用起来很不方便。
4.局部变量有什么优点?
1) 子程序如果没有局部变量,它和调用它的程序之间只能通过全局变量来交换数据,子程序内部也只能使用全局变量。将它移植到别的项目时,需要对各POU使用的全局变量作统一安排,以保证不会出现地址冲突。当程序很复杂,子程序很多时,这种地址分配是很花时间的。
如果子程序有局部变量,并且在子程序中只使用局部变量,不使用全局变量,因为与其他POU没有地址冲突,不作任何改动,就可以将子程序移植到别的项目中去。
为了减少移植子程序的工作量,在子程序中应尽量避免使用全局变量和全局符号。
2) 如果使用局部变量表中的临时变量(TEMP),同一片物理存储器可以在不同的程序中重复使用。
下面以S7-200为例,介绍子程序的编程和调用的过程。
1.创建子程序
生成项目时,自动生成一个子程序。打开程序编辑器,执行“编辑”菜单中的命令“插入”→“子程序”,将自动生成和打开新的子程序。
2.生成局部变量
名为“模拟量计算”的子程序如下图所示,在该子程序的局部变量表中,定义了3个输入(IN)参数,一个输出(OUT)参数,和名为“暂存1”的临时(TEMP)变量。局部变量表最左边的一列是自动分配的每个变量在局部存储器(L)中的地址。
3.编写子程序的梯形图
局部变量表的下面是程序区(见上图),输入参数“转换值”是来自模拟量输入模块的与模拟量成正比的转换值,输出参数“模拟值”是计算出的对应的模拟量(例如压力、温度等)的工程值。子程序中变量名称前的“#”表示该变量是局部变量,它是编程软件自动添加的,输入局部变量时不用输入“#”号。特殊存储器位SM0.0的常开触点总是闭合。
4.子程序的调用
可以在主程序、其他子程序或中断程序中调用子程序,调用子程序时将执行子程序中的指令,直至子程序结束,然后返回调用它的程序中该子程序调用指令的下一条指令之处。
创建子程序后,在上图左边指令树最下面的“调用子程序”文件夹中自动生成刚创建的子程序“模拟量计算”对应的图标。
在梯形图程序中插入子程序调用指令时,首先打开主程序,显示出需要调用子程序的网络。打开指令树最下面的“调用子程序”文件夹,用鼠标左键按住需要调用的子程序图标,将它“拖”到程序编辑器中需要的位置。放开左键,子程序块便被放置在该位置。
子程序方框中左边的“转换值”等是在子程序“模拟量计算”的变量声明表中定义的输入参数,右边的“模拟值”是输出参数。它们被称为子程序的形式参数,简称为形参,形参在子程序内部的程序中使用。调用子程序时,需要为每个形参指定实际的参数(简称为实参),例如为形参“转换值”指定的实参为模拟量输入字AIW2(见上图)。
子程序调用指令中的实参的有效操作数为存储器地址、常量、全局符号和调用指令所在的POU中的局部变量,不能指定被调用子程序中的局部变量。
CPU调用子程序时,输入参数被复制到子程序的局部存储器,子程序执行完后,从局部存储器复制输出参数到指定的输出参数地址。
西门子S7系列PLC的主要种类及应用软件
德国西门子(SIEMENS)公司生产的可编程序控制器在我国的应用也相当广泛,在冶金、化工、印刷生产线等领域都有应用。西门子(SIEMENS)公司的PLC产品包括LOGO,S7-200,S7-300,S7-400,工业网络,HMI人机界面,工业软件等。
西门子S7系列PLC体积小、速度快、标准化,具有网络通信能力,功能更强,可靠性更高。S7系列PLC产品可分为微型PLC(如S7-200),小规模性能要求的PLC(如S7-300)和中、高性能要求的PLC(如S7-400)等。
1.SIMATIC S7-200 PLC
S7-200 PLC是超小型化的PLC,它适用于各行各业,各种场合中的自动检测、监测及控制等。S7-200 PLC的强大功能使其无论单机运行,或连成网络都能实现复杂的控制功能。
S7-200PLC可提供4个不同的基本型号与8种CPU可供选择使用。
2.SIMATIC S7-300 PLC
S7-300是模块化小型PLC系统,能满足中等性能要求的应用。各种单独的模块之间可进行广泛组合构成不同要求的系统。与S7-200 PLC比较,S7-300 PLC采用模块化结构,具备高速(0.6~0.1μs)的指令运算速度;用浮点数运算比较有效地实现了更为复杂的算术运算;一个带标准用户接口的软件工具方便用户给所有模块进行参数赋值;方便的人机界面服务已经集成在S7-300操作系统内,人机对话的编程要求大大减少。SIMATIC人机界面(HMI)从S7-300中取得数据,S7-300按用户指定的刷新速度传送这些数据。S7-300操作系统自动地处理数据的传送;CPU的智能化的诊断系统连续监控系统的功能是否正常、记录错误和特殊系统事件(例如:超时,模块更换,等等);多级口令保护可以使用户高度、有效地保护其技术机密,防止未经允许的复制和修改;S7-300 PLC设有操作方式选择开关,操作方式选择开关像钥匙一样可以拔出,当钥匙拔出时,就不能改变操作方式,这样就可防止非法删除或改写用户程序。具备强大的通信功能,S7-300 PLC可通过编程软件Step 7的用户界面提供通信组态功能,这使得组态非常容易、简单。S7-300 PLC具有多种不同的通信接口,并通过多种通信处理器来连接AS-I总线接口和工业以太网总线系统;串行通信处理器用来连接点到点的通信系统;多点接口(MPI)集成在CPU中,用于同时连接编程器、PC机、人机界面系统及其他SIMATIC S7/M7/C7等自动化控制系统。
3. SIMATIC S7-400 PLC
S7-400 PLC是用于中、高档性能范围的可编程序控制器。
S7-400 PLC采用模块化无风扇的设计,可靠耐用,同时可以选用多种级别(功能逐步升级)的CPU,并配有多种通用功能的模板,这使用户能根据需要组合成不同的专用系统。当控制系统规模扩大或升级时,只要适当地增加一些模板,便能使系统升级和充分满足需要。
4. 工业通讯网络
通讯网络是自动化系统的支柱,西门子的全集成自动化网络平台提供了从控制级一直到现场级的一致性通讯,“SIMATIC NET”是全部网络系列产品的总称,他们能在工厂的不同部门,在不同的自动化站以及通过不同的级交换数据,有标准的接口并且相互之间完全兼容。
5. 人机界面(HMI)硬件
HMI硬件配合PLC使用,为用户提供数据、图形和事件显示,主要有文本操作面板TD200(可显示中文),OP3,OP7,OP17等;图形/文本操作面板OP27,OP37等,触摸屏操作面板TP7,TP27/37,TP170A/B等;SIMATIC面板型PC670等。个人计算机(PC)也可以作为HMI硬件使用。HMI硬件需要经过软件(如ProTool)组态才能配合PLC使用。
6. SIMATIC S7工业软件
西门子的工业软件分为三个不同的种类:
(1)编程和工程工具 编程和工程工具包括所有基于PLC或PC用于编程、组态、模拟和维护等控制所需的工具。STEP 7标准软件包SIMATIC S7是用于S7-300/400,C7 PLC和SIMATIC WinAC基于PC控制产品的组态编程和维护的项目管理工具,STEP 7-Micro/WIN是在Windows平台上运行的S7-200系列PLC的编程、在线仿真软件。
(2)基于PC的控制软件 基于PC的控制系统WinAC允许使用个人计算机作为可编程序控制器(PLC)运行用户的程序,运行在安装了Windows NT4.0操作系统的SIMATIC工控机或其它任何商用机。WinAC提供两种PLC,一种是软件PLC,在用户计算机上作为视窗任务运行。另一种是插槽PLC(在用户计算机上安装一个PC卡),它具有硬件PLC的全部功能。WinAC与SIMATIC S7系列处理器完全兼容,其编程采用统一的SIMATIC编程工具(如STEP 7),编制的程序既可运行在WinAC上,也可运行在S7系列处理器上。
(3)人机界面软件 人机界面软件为用户自动化项目提供人机界面(HMI)或SCADA系统,支持大范围的平台。人机界面软件有两种,一种是应用于机器级的ProTool,另一种是应用于监控级的WinCC。
ProTool适用于大部分HMI硬件的组态,从操作员面板到标准PC都可以用集成在STEP 7中的ProTool有效地完成组态。ProTool/lite用于文本显示的组态,如:OP3,OP7,OP17,TD17等。ProTool/Pro用于组态标准PC和所有西门子HMI产品,ProTool/Pro不只是组态软件,其运行版也用于Windows平台的监控系统。
WinCC是一个真正开放的,面向监控与数据采集的SCADA(Supervisory Control and Data Acquisition)软件,可在任何标准PC上运行。WinCC操作简单,系统可靠性高,与STEP 7功能集成,可直接进入PLC的硬件故障系统,节省项目开发时间。它的设计适合于广泛的应用,可以连接到已存在的自动化环境中,有大量的通信接口和全面的过程信息和数据处理能力,其最新的WinCC5.0支持在办公室通过IE浏览器动态监控生产过程。
S7-200系列PLC其它常用指令
1.脉冲产生指令EU/ED的应用
EU指令在EU指令前的逻辑运算结果由OFF到ON时就产生一个宽度为一个扫描周期的脉冲,驱动其后面的输出线圈。
2.逻辑堆栈的操作
LPS为进栈操作,LRD为读栈操作,LPP为出栈操作。
S7-200系列PLC中有一个9层堆栈,用于处理逻辑运算结果,称为逻辑堆栈。
3.NOT、NOP和MEND指令
NOT、NOP及MEND指令的形式及功能如表4-19所示。
表4-19 NOT、NOP及MEND指令的形式及功能
STL |
功能 |
操作数 |
NOT |
逻辑结果取反 |
— |
NOP |
空操作 |
— |
MEND |
无条件结束 |
— |
NOT为逻辑结果取反指令,在复杂逻辑结果取反时为用户提供方便。NOP为空操作,对程序没有实质影响。MEND为无条件结束指令,在编程结束时一定要写上该指令,否则会出现编译错误。调试程序时,在程序的适当位置插入MEND指令可以实现程序的分段调试。
4.比较指令
比较指令是将两个操作数按规定的条件作比较,条件成立时,触点就闭合。比较运算符有:=、>=、<=、>、<和<>。
(1)字节比较 字节比较用于比较两个字节型整数值INl和IN2的大小,字节比较是无符号的。比较式可以是LDB、AB或OB后直接加比较运算符构成。如:LDB=、AB<>、OB>=等。
整数INl和IN2的寻址范围:VB、IB、QB、MB、SB、SMB、LB、*VD、*AC、*LD和常数。
指令格式例如: LDB= VBl0,VBl2
(2)整数比较 整数比较用于比较两个一字长整数值INl和IN2的大小,整数比较是有符号的(整数范围为16#8000和16#7FFF之间)。比较式可以是LDW、AW或OW后直接加比较运算符构成。如:LDW=、AW<>。OW>=等。
整数INl和IN2的寻址范围:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常数。
指令格式例如: LDW= VWl0,VWl2
(3)双字整数比较 双字整数比较用于比较两个双字长整数值INl和IN2的大小,双字整数比较是有符号的(双字整数范围为16#80000000和16#7FFFFFFF之间)。比较式可以是LDD、AD或OD后直接加比较运算符构成。如:LDD=、AD<>、OD>=等。
双字整数INl和IN2的寻址范围:VD、ID、QD、MD、SD、SMD、LD、HC、AC、*VD、*AC、*LD和常数。
指令格式例如: LDD= VDl0,VDl2
(4)实数比较 实数比较用于比较两个双字长实数值INl和IN2的大小,实数比较是有符号的(负实数范围为-1.175495E-38和-3.402823E+38,正实数范围为+1.175495E-38和+3.402823E+38)。比较式可以是LDR、AR或OR后直接加比较运算符构成。如:LDR=、AR<>、OR>=等。
实数INl和IN2的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD和常数。
指令格式例如: LDR= VDl0,VDl2
供应西门子中央处理单元6ES7312-5BE03-0AB0
与,或,非,与非,或非,异或,上升沿/下降沿触发。
接通延时,锁存接通延时,断开延时,脉冲延时,锁定延时,计数器(加计数/减计数),时间开关,间隔延时继电器,运行小时数计数器,触发器,异步脉冲发生器,年时间开关,舒适照明开关功能,随机发生器,楼梯照明开关功能(符合 DIN 18015-2),边沿触发间隔延时继电器,组合接通/断开延时,模拟值比较器,模拟触发器,模拟值变化触发器,模拟看门狗,模拟放大器,移位寄存器,软键功能,PI 控制器,斜坡功能,模拟复用器,PWM 功能,模拟算术运算功能,模拟算术运算功能错误检测功能。
作为选项可提供的功能
用于 LOGO! 的其它功能8