,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,S7-1500PLC,项目设计与实践,S7-1500PLC项目设计与实践,目录,第,1,章,S7-1500PLC,系统概述,第,2,章,S7-1500,硬件及软件平台,第,3,章,S7-1500PLC,项目设计,第,4,章,S7-1500PLC,硬件系统设计,第,5,章,S7-1500 PLC,软件程序设计,第,6,章 上位监控系统设计,第,7,章,网络通信,第,8,章,工艺功能,第,9,章 系统诊断,第,10,章,S7-1500,的其他功能,目录第1章 S7-1500PLC系统概述,第,5,章,S7-1500 PLC,软件程序设计,5.1 S7-1500PLC,编程基础,5.2,变量表与符号寻址,5.3,监控表与设备测试,5.4,程序块及程序结构,5.5,程序块的创建、编辑及调试,5.6,位逻辑运算指令与开关量控制,5.7,定时器操作指令与时间控制,5.8,计数操作指令与计数统计,5.9,移动操作指令,5.10,比较器操作指令,5.11,数学函数指令,5.12,转换操作指令,5.13,其他指令,5.14,用户数据块,5.15 FC/FB,与参数化编程,5.16,组织块,5.17,模拟量处理,第5章 S7-1500 PLC软件程序设计5.1 S7-15,5.1 S7-1500PLC,编程基础,5.1.1,数制及编码,5.1.2,基本数据类型,5.1.3,复合数据类型,5.1.4,其他数据类型,5.1.5 S7-1500PLC,存储区,5.1.6,寻址方式,5.1.7,编程语言,5.1 S7-1500PLC编程基础5.1.1 数制及编码,5.1.1,数制及编码,1.,数制,(,1,)十进制,(,2,)二进制,(,3,)十六进制,2.,编码,(,1,)补码,(,2,),BCD,码,(,3,),ASCII,码,5.1.1 数制及编码1. 数制,数制,(,1,)十进制(,Decimal,),数码:,0 1 2 3 4 5 6 7 8 9,共,10,个,基数:,10,计数规则:逢十进一,(,2,)二进制(,Binary,),数码:,0 1,共,2,个,基数:,2,计数规则:逢二进一,(,3,)十六进制(,Hexadecimal,),数码:,0 1 2 3 4 5 6 7 8 9 A B C D E F,共,16,个,基数:,16,计数规则:逢十六进一,数制(1)十进制(Decimal),编码,(,1,)补码,该二进制数的最高有效位是符号位,正整数的补码同该二进制数,负整数的补码是该二进制数除了符号位外按位取反后加,1,。,(,2,),BCD,码,BCD,码是用四位二进制数表示一位十进制数。,(,3,),ASCII,码,全称:,American Standard Coded for Information Interchange,,即美国信息交换标准代码。,ASCII,码由,8,位二进制数组成,最高位一般用于奇偶校验,其余,7,位代表,128,个字符编码。其中图形字符,96,个(,10,个数字、,52,个字母、,34,个其它字符),控制字符,32,个(回车、换行、空格、设备控制等)。,编码(1)补码,5.1.2 基本数据类型,1.,位数据类型,2.,数学数据类型,3.,字符类型,4.,定时器类型,5.,日期和时间类型,5.1.2 基本数据类型1. 位数据类型,一,.,位数据类型,一. 位数据类型,二,.,数学数据类型,二. 数学数据类型,三,.,字符类型,Char,数据类型,WChar,数据类型,三. 字符类型Char数据类型WChar数据类型,四,.,定时器类型,(,1,)时间(,Time,)类型,(,2,),S5,时间(,S5Time,)类型,(,3,)长时间(,LTime,)类型,四. 定时器类型(1)时间(Time)类型,(,1,)时间(,Time,)类型,(1)时间(Time)类型,(,2,),S5,时间(,S5Time,)类型,(2)S5时间(S5Time)类型,(,3,)长时间(,LTime,)类型,(3)长时间(LTime)类型,五,.,日期和时间类型,(,1,)日期,Date,类型,(,2,)日时间,TOD,(,Time_Of_Day,)类型,(,3,)长日时间,LTOD (LTime_Of_Day),类型,(,4,)日期时间,DT (Date_And_Time),类型,(,5,)日期长时间,LDT (DATE_AND_LTIME),类型,(,6,)长日期时间,DTL,类型,五. 日期和时间类型(1)日期Date类型,(,1,)日期,Date,类型,(1)日期Date类型,(,2,)日时间,TOD,(,Time_Of_Day,)类型,(2)日时间TOD(Time_Of_Day)类型,(,3,)长日时间,LTOD (LTime_Of_Day),类型,(3)长日时间LTOD (LTime_Of_Day) 类型,(,4,)日期时间,DT (Date_And_Time),类型,(4)日期时间DT (Date_And_Time) 类型,(,5,)日期长时间,LDT (DATE_AND_LTIME),类型,(5)日期长时间LDT (DATE_AND_LTIME) 类,(,6,)长日期时间,DTL,类型,(6)长日期时间DTL类型,5.1.3复合数据类型,(,1,)字符串,String,类型,(,2,)宽字符串,WString,类型,(,3,)数组,Array,类型,(,4,)结构,Struct,类型,(,5,),PLC,数据类型(,UDT,),5.1.3复合数据类型(1)字符串String类型,(,1,)字符串,String,类型,(1)字符串String类型,(,2,)宽字符串,WString,类型,(2)宽字符串WString类型,(,3,)数组,Array,类型,(3)数组Array类型,(,4,)结构,Struct,类型,结构(,Struct,)数据类型表示由固定数目的多种数据类型的元素组成的数据结构。,数据类型,Struct,和,Array,的元素还可以在结构中嵌套, 嵌套深度限制为,8,级。,结构可用于根据过程控制系统分组数据以及作为一个数据单元来传送参数。,对于,S7-1200,或,S7-1500,系列,CPU,,可最多创建,65534,个结构,其中每个结构可最多包括,252,个元素。,(4)结构Struct类型结构(Struct)数据类型表示由,(,5,),PLC,数据类型,UDT,PLC,数据类型是可在程序中多次使用的数据结构模板,该结构由几个部分组成,每部分可包含不同的数据类型。,PLC,数据类型不能被直接使用,但可以通过创建基于,PLC,数据类型的数据块或定义基于,PLC,数据类型的变量来进行使用。,对于,S7-1200,或,S7-1500,系列,CPU,,可最多创建,65534,个,PLC,数据类型。 其中每个,PLC,数据类型可最多包括,252,个元素。,(5)PLC数据类型UDTPLC 数据类型是可在程序中多次使,5.1.4 其他数据类型,1.,指针类型,2.,参数类型,3.,系统数据类型,4.,硬件数据类型,5.1.4 其他数据类型1. 指针类型,一,.,指针类型,(,1,),Pointer,类型,(,2,),Any,类型,(,3,),Variant,类型,一. 指针类型(1)Pointer类型,(,1,),Pointer,类型,Pointer,类型的参数是一个可指向特定变量的指针。,Pointer,类型在存储器中占用,6,个字节(,48,位)。,(1)Pointer类型Pointer 类型的参数是一个可指,(,2,),Any,类型,Any,类型的参数指向数据区的起始位置,并指定其长度。,Any,指针使用存储器中的,10,个字节。,(2)Any类型Any类型的参数指向数据区的起始位置,并指定,(,3,),Variant,类型,Variant,类型的参数是一个可以指向不同数据类型变量(而不是实例)的指针。,Variant,数据类型的操作数在背景,DB,或,L,堆栈中不占用任何空间,但是将占用,CPU,上的存储空间。,Variant,类型的变量不是一个对象,而是对另一个对象的引用。,Variant,类型的各元素只能在函数的块接口中声明; 不能在数据块或函数块的块接口静态部分中声明。,Variant,类型所引用对象的大小可以更改。,(3)Variant类型Variant类型的参数是一个可以指,二,.,参数类型,参数类型是传递给被调用块的形参的数据类型。,二. 参数类型参数类型是传递给被调用块的形参的数据类型。,三,.,系统数据类型,SDT,系统数据类型,SDT,由系统提供并具有预定义的结构。,三. 系统数据类型SDT系统数据类型 SDT 由系统提供并,四,.,硬件数据类型,硬件数据类型由,CPU,提供。 可用硬件数据类型的数目取决于,CPU,。,由于硬件数据类型比较多,使用时可查手册。,四. 硬件数据类型硬件数据类型由 CPU 提供。 可用硬件,5.1.5 S7-1500PLC,存储区,(,1,)装载存储器,(,2,)工作存储器,(,3,)系统存储器,(,4,)保持存储器,5.1.5 S7-1500PLC存储区(1)装载存储器,(,1,)装载存储器,用户项目中的程序块、数据块以及系统数据下载到装载存储器中。,对于,S7-300/400PLC,,装载存储器不包含项目中的符号和注释等信息,但,S7-1500 PLC,的装载存储器还包含了符号和注释信息。,对于,S7-1500CPU,的装载存储器,只能是通过外插存储器卡扩展装载存储器区的容量,容量大小取决于存储器卡的容量大小。,(1)装载存储器用户项目中的程序块、数据块以及系统数据下载到,(,2,)工作存储器,工作存储器是集成在,CPU,内部的,RAM,存储器,容量不能扩展。,工作存储器被分成程序工作存储器和数据工作存储器,分别用来保存与程序运行有关的程序块和数据块。,用户在向,CPU,装载存储器下载程序块和数据块时,与程序执行有关的块被自动装入工作存储器。,工作存储器区内的数据在掉电时丢失,在恢复供电时由,CPU,恢复。,(2)工作存储器工作存储器是集成在CPU内部的RAM存储器,,(,3,)系统存储器,系统存储器是集成在,CPU,内部的,RAM,存储器,数据掉电丢失,容量不能扩展。,系统存储器区主要包括:,(,1,)输入过程映象(,I,)区,(,2,)输出过程映象(,Q,)区,(,3,)位存储器(,M,)区,(,4,)定时器(,T,)区,(,5,)计数器(,C,)区,(,6,)局部数据(,L,)区,(,7,),I/O,外设存储器区。,(3)系统存储器系统存储器是集成在CPU内部的RAM存储器,,(,4,)保持存储器,保持存储器是集成在,CPU,内部的非易失存储器,保存有限数量的数据,使之掉电不丢失。,可以通过参数设置,指定相应的存储器单元为可保持性,则该存储器单元内的数据在掉电时将被保存在保持存储器中。,设置为可保持性的数据可以是,M,、,T,、,C,和数据块内的数据。,(4)保持存储器保持存储器是集成在CPU内部的非易失存储器,,5.1.6寻址方式,1.,直接寻址,2.,间接寻址,5.1.6寻址方式1. 直接寻址,一、直接寻址,对于系统存储器中的,I,、,Q,、,M,、,L,存储区,是按字节进行排列的,对其中的存储单元进行的直接寻址方式包括位寻址、字节寻址、字寻址和双字寻址。,I3.4,I,存储区,一、直接寻址对于系统存储器中的I、Q、M、L存储区,是按字节,S71500PLC项目设计与实践第5章课件,二、间接寻址,(,1,)通过指针间接寻址,(,2,),Array,元素的间接索引,(,3,)间接寻址,String,的各字符,(,4,),STL,编程语言中的间接寻址,二、间接寻址(1)通过指针间接寻址,(,1,)通过指针间接寻址,对于间接寻址,可以使用以下类型的指针:,Pointer,、,Any,(,S7-1500,,仅适用于可标准访问的块)和,Variant,。,声明各种,Pointer,指针类型的格式,(1)通过指针间接寻址对于间接寻址,可以使用以下类型的指针:,声明各种,Any,指针类型的格式,声明各种Any指针类型的格式,声明,Variant,指针类型的格式,声明Variant指针类型的格式,(,2,),Array,元素的间接索引,要寻址,Array,元素,可以指定整型数据类型的变量并指定常量作为下标。,在此,只能使用长度最长为,32,位的整数。 使用变量时,则可在运行过程对索引进行计算。 例如,在程序循环中,每次循环都使用不同的下标。,用于一维数组,Array,的间接索引格式为:,.i,;用于二维数组,Array,的间接索引格式为:,.i,,,j,。其中,为数据块名称,,为数组变量名称,,i,和,j,为用作指针的整型变量。,(2)Array元素的间接索引要寻址 Array元素,可以指,(,3,)间接寻址,String,的各字符,要寻址,String,或,WString,的各字符,可以将常量和变量指定为下标。,下标必须为整型数据类型。,使用变量时,则可在运行过程对索引进行计算。 例如,在程序循环中,每次循环都使用不同的下标。,用于,STRING,的间接索引的格式为:,.i,;用于,WSTRING,的间接索引的格式为:,.i,。,(3)间接寻址 String的各字符要寻址 String或,(,4,),STL,编程语言中的间接寻址,在,STL,编程语言中,可以使用存储器间接寻址、寄存器间接内部区域寻址和寄存器间接跨区域寻址。,对于存储器间接寻址,可以在变量中存储地址。 变量可以是,WORD,或,DWORD,数据类型。变量可以位于存储器区域“数据”(,DB,或,DI,)、“位存储器”,(M),或“临时本地数据”,(L),中。,地址寄存器有地址寄存器,1 (AR1),和地址寄存器,2 (AR2),,长度相等,有,32,位,可以在地址寄存器中存储内部区域指针和跨区域指针,实现寄存器间接内部区域寻址和寄存器间接跨区域寻址。,(4)STL编程语言中的间接寻址在 STL编程语言中,可以使,5.1.7编程语言,(,1,)梯形图,LAD,(,Ladder Diagram,),(,2,)功能块图,FBD,(,Function Block Diagram,),(,3,)语句表,STL,(,Statement List,),(,4,)结构化控制语言,SCL,(,Structured Control Language,),(,5,),GRAPH,编程语言,5.1.7编程语言(1)梯形图LAD(Ladder Diag,(,1,)梯形图,LAD,(,Ladder Diagram,),梯形图,LAD,是一种图形编程语言,采用基于电路图的表示法,在形式上与继电接触器控制系统中的电气原理图相类似,简单、直观、易读、好懂。因此所有,PLC,生产厂家均支持梯形图编程语言。,(1)梯形图LAD(Ladder Diagram)梯形图LA,(,2,)功能块图,FBD,(,Function Block Diagram,),功能块图,FBD,的程序外观与数字电路中的逻辑门电路结构比较相似,所有的逻辑运算、算术运算和数据处理指令均用一个功能方块图表示,通过一定的逻辑关系将它们连接起来。,(2)功能块图FBD(Function Block Diag,(,3,)语句表,STL,(,Statement List,),语句表类似于计算机中的汇编语言,使用指令的助记符进行文本编程。对于有计算机编程基础的用户来说,使用语句表编程比较方便,且功能强大,使用灵活。但是不同,PLC,生产厂家所用的,CPU,芯片不同,语句表指令的助记符和操作数的表示方法也不相同。,A%I0.0,O%Q8.5,AN%I0.1,=%Q8.5,(3)语句表STL(Statement List)语句表类似,(,4,)结构化控制语言,SCL,(,Structured Control Language,),结构化控制语言,SCL,是一种类似于,PASCAL,的高级编程语言,符合国际标准,IEC61131-3,。,SCL,编程语言对工程设计人员要求较高,需要其具有一定的计算机高级语言的知识和编程技巧。,(4)结构化控制语言SCL(Structured Contr,(,5,),GRAPH,编程语言,GRAPH,是创建顺序控制系统的图形编程语言。,使用,GRAPH,编程语言,可以更为快速便捷和直观地对顺序控制进行编程。,GRAPH,通过将过程分解为多个步,步与步之间存在转换条件,每个步都有明确的功能范围,然后再将这些步组织到顺控程序中。,TIA Portal,软件允许对功能块程序使用,GRAPH,编程语言进行编程。,(5)GRAPH编程语言GRAPH 是创建顺序控制系统的图形,5.2,变量表与符号寻址,5.2.1,变量表(,Tag table,),5.2.2,定义全局符号,5.2变量表与符号寻址5.2.1变量表(Tag table),5.2.1,变量表(,Tag table,),PLC,变量表包含在整个,CPU,范围有效的变量和符号常量的定义。,系统会为项目中使用每个,CPU,自动创建一个,PLC,变量表,用户也可以创建其它变量表用于对变量和常量进行归类与分组。,5.2.1变量表(Tag table)PLC 变量表包含在整,5.2.2定义全局符号,在变量表中定义变量和常量,所定义的符号名称允许使用字母、数字、特殊字符,但不能使用引号。,变量表中的变量均为全局变量,在编程时可以使用全局变量的符号进行寻址,从而提高程序的可读性。,5.2.2定义全局符号在变量表中定义变量和常量,所定义的符号,S71500PLC项目设计与实践第5章课件,任务,4,定义全局符号,新建变量表,根据硬件设计的,I/O,地址分配和数据处理占用的内存单元,分别在不同的变量表中定义符号名称。,任务4 定义全局符号新建变量表,根据硬件设计的I/O地址分,5.3,监控表与设备测试,5.3.1,监控表(,Watch table,),5.3.2 I/O,设备测试,5.3监控表与设备测试5.3.1监控表(Watch tabl,5.3.1,监控表(,Watch table,),监控表也称监视表,可以在,PG/PC,上显示,CPU,中或用户程序中的各个变量的当前值,也可以将特定值分配给用户程序中或,CPU,中的各个变量。,使用这两项功能可以检查,I/O,设备接线情况。,监视表有基本模式和扩展模式两种显示模式,默认显示基本模式。扩展模式中显示的列比基本模式多两项:“使用触发器监视”和“使用触发器修改”。,5.3.1监控表(Watch table)监控表也称监视表,,S71500PLC项目设计与实践第5章课件,5.3.2 I/O设备测试,改变现场输入设备的状态,通过监控表监视输入变量,从而实现输入设备的测试。,在输出变量的,“,修改值,”,列输入待修改值,然后点击监控表工具条中“立即修改”命令,,可以实现对输出变量值的修改。,5.3.2 I/O设备测试改变现场输入设备的状态,通过监控表,任务,5 I/O,设备测试,使用,PLC,变量表对自动灌装生产线控制系统中,PLC,所连接的,I/O,设备进行测试,依据,I/O,地址分配检测所有的输入设备信号是否能正确输入给,PLC,,检测所有输出设备是否可根据,PLC,输出信号进行正确动作。,任务5 I/O设备测试使用PLC变量表对自动灌装生产线控制,5.4,程序块及程序结构,5.4.1,程序块类型,5.4.2,程序结构形式,5.4.3,自动灌装生产线项目程序结构,5.4 程序块及程序结构5.4.1 程序块类型,5.4.1,程序块类型,(,1,)组织块,OB,组织块,OB,是操作系统与用户程序之间的接口,只有在,OB,中编写的指令或调用的程序块才能被,CPU,的操作系统执行。在不同的情况下操作系统执行不同的,OB,。,(,2,)功能,FC,和功能块,FB,FC,和,FB,是由用户自己编写的子程序块或带形参的函数,可以被其它程序块(,OB,、,FC,和,FB,)调用。,FB,与,FC,不同的是可以拥有自己的背景数据块。,(,3,)数据块,DB,广义数据块包括用户数据块,DB,和系统数据块,SDB,。其中,用户数据块,DB,用来保存程序数据。系统数据块,SDB,包含硬件组态及网络参数配置等信息。,(,4,)系统功能,SFC,和系统功能块,SFB,对于,S7-300/400PLC,,程序块还包括系统功能,SFC,和系统功能块,SFB,。而对于,S7-1500PLC,,这些程序块的功能已经以指令形式出现。,5.4.1 程序块类型(1)组织块OB,5.4.2,程序结构形式,1.,线性编程设计,将用户的所有指令均放在,OB1,中,从第一条到最后一条顺序执行。,2.,模块化编程设计,当工程项目比较大时,可以将大项目分解成多个子项目,由不同的人员编写相应的子程序块,在,OB1,中调用,最终多人合作完成项目的设计与调试。,3.,参数化编程设计,如果项目中多处使用的控制程序指令相同,只是程序中所用的地址不同,为了避免重复编写相同的指令,减少程序量,可以编写带形参的程序块,在每次调用时赋给程序块不同的实参。,5.4.2 程序结构形式1. 线性编程设计,程序块的嵌套调用,程序块的嵌套调用,5.4.3 自动灌装生产线项目程序结构,5.4.3 自动灌装生产线项目程序结构,5.5,程序块的创建、编辑及调试,5.5.1,新建用户程序块,5.5.2,程序块的属性,5.5.3,程序块的编辑,5.5.4,程序块的调用,5.5.5,编程语言的切换,5.5.6,程序块的编译,5.5.7,程序块的下载及监视,5.5 程序块的创建、编辑及调试5.5.1 新建用户程序块,5.5.1,新建用户程序块,5.5.1 新建用户程序块,5.5.2,程序块的属性,5.5.2 程序块的属性,5.5.3,程序块的编辑,5.5.3 程序块的编辑,5.5.4,程序块的调用,5.5.4 程序块的调用,5.5.5,编程语言的切换,5.5.5编程语言的切换,5.5.6程序块的编译,5.5.6程序块的编译,5.5.7程序块的下载及监视,鼠标激活程序编辑器,或选中项目树程序块文件夹或某个程序块,通过项目工具条的下载按钮或鼠标右键的快捷菜单执行下载操作。,在程序编辑器窗口中,打开已经下载的程序块,点击工具栏中的监视按钮,可以监视程序块的运行情况。,5.5.7程序块的下载及监视鼠标激活程序编辑器,或选中项目树,5.6,位逻辑运算指令与开关量控制,5.6.1,触点、取反,RLO,与输出指令,5.6.2,置位,/,复位指令,5.6.3,边沿检测指令,5.6 位逻辑运算指令与开关量控制5.6.1 触点、取反RL,S71500PLC项目设计与实践第5章课件,5.6.1,触点、取反,RLO,与输出指令,(,1,)触点指令,包括常开触点和常闭触点,也称“,1,”闭合触点和“,0,”闭合触点。,“,1,”闭合触点的值与操作数的值相等。,“,0,”闭合触点的值与操作数的值相反。,(,2,)“取反,RLO,”指令,对逻辑运算结果,(RLO),的信号状态进行取反。,(,3,)输出指令,包括线圈指令和取反线圈指令。,线圈,指令实现将该指令之前输入的逻辑运算结果的值赋值给指定的操作数。,取反线圈,指令是将RLO的值进行取反,然后将其赋值给指定操作数。,5.6.1 触点、取反RLO与输出指令(1)触点指令,5.6.2 置位/复位指令,(,1,)置位输出指令,指令之前输入的逻辑运算结果,(RLO),为“,1,”时,则将指定的操作数置位为“,1,”;如果输入的,RLO,为“,0,”,则指定操作数的值将保持不变。,(,2,)复位输出指令,指令之前输入的逻辑运算结果,(RLO),为“,1,”时,则将指定的操作数复位为“,0,”;如果输入的,RLO,为“,0,”,则指定操作数的值将保持不变。,5.6.2 置位/复位指令(1)置位输出指令,(,3,)置位位域指令,置位位域指令实现当输入条件为,1,时,将连续的多位置位,当输入条件为,0,时,保持这些位的状态不变。,(,4,)复位位域指令,复位位域指令实现当输入条件为,1,时,将连续的多位复位,当输入条件为,0,时,保持这些位的状态不变。,置位或复位的区域由指令上方和下方的操作数决定,指令上方的操作数为位变量,指出区域的起始位,指令下方的操作数为,UInt,类型常数,指出区域的长度(位的个数)。,(3)置位位域指令,(,5,)置位,/,复位触发器指令,置位,/,复位触发器指令将置位指令和复位指令合二为一,复位优先。,(,6,)复位,/,置位触发器指令,。,复位,/,置位触发器指令将复位指令和置位指令合二为一,置位优先。,(5)置位/复位触发器指令,5.6.3 边沿检测指令,1,、扫描操作数的信号边沿指令,(,1,)扫描操作数的信号上升沿指令,(,2,)扫描操作数的信号下降沿指令,2,、扫描,RLO,的信号边沿指令,(,1,)扫描,RLO,的信号上升沿指令,(,2,)扫描,RLO,的信号下降沿指令,(,3,)检测信号上升沿指令,(,4,)检测信号下降沿指令,(,5,)在信号上升沿置位操作数指令,(,6,)在信号下降沿置位擦作数指令,。,5.6.3 边沿检测指令1、扫描操作数的信号边沿指令,任务,6,点动控制程序设计,编写自动灌装生产线项目中手动运行程序,FC1,,控制传送带点动正向或反向运行,点动控制灌装阀门的开与关。按下操作面板上的正向点动按钮,传送带的电动机正向转动,松开按钮,停止转动;按下操作面板上的反向点动按钮,控制传送带的电动机反向转动,松开按钮,停止转动;如果两个按钮同时按下,电动机的正反转要实现互锁;按下操作面板上的灌装点动按钮,灌装阀门开,松开按钮,灌装阀门关。,任务6 点动控制程序设计编写自动灌装生产线项目中手动运行程,任务,7,模式选择、生产线运行和急停处理程序设计,(,1,)生产线运行控制(,FC2,),在,FC2,中编写程序,按下操作面板上的启动按钮,生产线进入运行状态,按下操作面板上的停止按钮,生产线退出运行状态。在运行状态下,可以按下暂停按钮,使生产线进入暂停状态,按下启动按钮或停止按钮,退出暂停状态。,注意:为保证按下停止按钮能够可靠停机,停止按钮使用的是常闭按钮。,(,2,)模式选择(,OB1,),在,OB1,中编写程序,实现生产线就地,/,远程模式和工作模式的选择。使用用就地,/,远程控制选择开关选择就地控制或远程控制,使用手动,/,自动模式选择开关确定工作模式:当就地,/,远程控制选择开关断开时,就地模式有效;当就地,/,远程控制选择开关接通时,远程模式有效;当生产线不运行、手动,/,自动模式选择开关断开并按下确认按钮时,手动模式有效;当生产线不运行、手动,/,自动模式选择开关接通时,自动模式有效。就地、远程、手动及自动模式均通过相应指示灯进行状态指示。另外,运行状态下,生产线运行指示灯常亮;暂停状态下,生产线运行指示灯闪烁。,只有在手动模式下且急停无效时才允许调用手动运行程序,FC1,。,只有在自动模式下且急停无效时才允许调用自动运行程序,FC2,。,(,3,)急停处理(,FC5,),当生产线在运行过程中出现问题时,按下急停按钮使各执行部件立即停止动作,保持在当前状态。除了在硬件接线上实现设备急停外,还需要通过软件编程实现急停功能。,在,OB1,主程序中,当急停时调用急停处理程序,FC5,。,任务7 模式选择、生产线运行和急停处理程序设计(1)生产线,5.7,定时器操作指令与时间控制,5.7.1 SIMATIC,定时器指令,5.7.2 IEC,定时器指令,5.7定时器操作指令与时间控制 5.7.1 SIMATIC定,5.7.1 SIMATIC,定时器指令,对于,SIMATIC,定时器而言,在,CPU,的系统存储器中有专门的存储区域,每个定时器均占用,1,个,16,位的字单元存储定时时间,还占用一个位单元存储定时器的状态。,SIMATIC,定时器开始定时时,定时器的当前值从预设时间值每隔一个时基减“,1,”,减至“,0,”则认为定时时间到。,1.,分配参数并启动脉冲定时器,S_PULSE,2.,分配参数并启动扩展脉冲定时器,S_PEXT,3.,分配时间作为接通延时定时器参数并启动,S_ODT,4.,分配参数并启动保持型接通延时定时器,S_ODTS,5.,分配参数并启动关断延时定时器,S_OFFDT,6. SIMATIC,定时器直接启动指令,5.7.1 SIMATIC定时器指令对于SIMATIC 定时,(,1,)分配参数并启动脉冲定时器,S_PULSE,(1)分配参数并启动脉冲定时器S_PULSE,(,2,)分配参数并启动扩展脉冲定时器,S_PEXT,(2)分配参数并启动扩展脉冲定时器S_PEXT,(,3,)分配时间作为接通延时定时器参数并启动,S_ODT,(3)分配时间作为接通延时定时器参数并启动S_ODT,(,4,)分配参数并启动保持型接通延时定时器,S_ODTS,(4)分配参数并启动保持型接通延时定时器S_ODTS,(,5,)分配参数并启动关断延时定时器,S_OFFDT,(5)分配参数并启动关断延时定时器S_OFFDT,(,6,),SIMATIC,定时器直接启动指令,(6)SIMATIC定时器直接启动指令,5.7.2 IEC,定时器指令,IEC,定时器是一个具有特殊数据类型的结构:,IEC_TIMER,、,IEC_LTIMER,、,TP_TIME,或,TP_LTIME,。,可声明为一个系统数据类型为,IEC_TIMER,或,IEC_LTIMER,的数据块或声明为块中“,Static,”部分的,TP_TIME,、,TP_LTIME,、,IEC_TIMER,或,IEC_LTIMER,类型的局部变量。,1.,生成脉冲定时器,TP,2.,接通延时定时器,TON,3.,生成关断延时定时器,TOF,4.,时间累加器,TONR,5.,定时器直接启动、复位和加载持续时间指令,5.7.2 IEC定时器指令IEC 定时器是一个具有特殊数据,在程序中插入,IEC,定时器指令时,将打开“调用选项”,(Call options),对话框,可以指定,IEC,定时器对应的数据块。,在程序中插入IEC 定时器指令时,将打开“调用选项”(Cal,(,1,)生成脉冲定时器,TP,(1)生成脉冲定时器TP,(,2,)接通延时定时器,TON,(2)接通延时定时器TON,(,3,)生成关断延时定时器,TOF,(3)生成关断延时定时器TOF,(,4,)时间累加器,TONR,(4)时间累加器TONR,(,5,),定时器直接启动、复位和加载持续时间指令,(5)定时器直接启动、复位和加载持续时间指令,任务,8,自动灌装程序设计,(,1,)自动循环灌装程序(,FC2,),生产线运行后,传送带电机正向运转,直到灌装位置接近开关检测到有瓶子,传送带停下来。到达灌装位置开始灌装,灌装阀门打开,灌装时间,5,秒。瓶子灌满后灌装阀门关闭,传送带继续向前运动。按下停止按钮,传送带停止运动。,(,2,)完善手动运行程序(,FC1,),为防止电动机正反转频繁切换造成负载变化太大,电动机正反向切换之间要有时间限制,切换时间间隔要在,2,秒钟以上。即:,点动电动机正转停下来,2,秒钟后点动反转才有效;,点动电动机反转停下来,2,秒钟后点动正转才有效。,任务8 自动灌装程序设计(1)自动循环灌装程序(FC2),5.8,计数操作指令与计数统计,5.8.1 SIMATIC,计数器指令,5.8.2 IEC,计数器指令,5.8计数操作指令与计数统计5.8.1 SIMATIC计数器,5.8.1 SIMATIC,计数器指令,对于,SIMATIC,计数器而言,在,CPU,的系统存储器中有专门的存储区域,每个计数器均占用,1,个,16,位的字单元存储计数器当前值,还占用一个位单元存储计数器的状态。,SIMATIC,计数器的计数范围为,0,+999,。,(,1,)分配参数并进行加计数,S_CU,(,2,),分配参数并进行减计数,S_CD,(,3,),分配参数并加,/,减计数,S_CUD,5.8.1 SIMATIC计数器指令对于SIMATIC 计数,SIMATIC,计数器时序图,SIMATIC计数器时序图,向上计数,CU,、向下计数,CD,和设置计数器值,SC,指令,(,a,)向上计数 (,b,)向下计数 (,c,)设置计数器值,向上计数CU、向下计数CD和设置计数器值SC指令,5.8.2 IEC,计数器指令,IEC,计数器指令是一种具有某种数据类型的结构,每次调用,IEC,计数器指令,都会为其分配一个,IEC,计数器用于存储指令数据。,IEC,计数器可以按两种方式进行声明,一种是声明为系统数据类型,IEC_,的数据块,一种是声明为块中“,Static,”部分的,CTU_,或,IEC_,类型的局部变量。,(,a,)加计数指令 (,b,)减计数指令 (,c,)加减计数指令,5.8.2 IEC计数器指令IEC计数器指令是一种具有某种数,IEC,计数器指令的“调用选项”,(Call options),对话框,IEC计数器指令的“调用选项”(Call options),任务,9,计数统计程序设计,物料灌装生产线运行后,利用空瓶位置接近开关和成品位置接近开关分别对空瓶数和成品数进行统计。,MW40,存储空瓶数量,,MW42,存储满瓶数量。将上述功能编制在计数统计,FC3,程序块中,该计数统计功能仅在自动模式下生产线运行时有效。,任务9 计数统计程序设计物料灌装生产线运行后,利用空瓶位置,