2020/1/28第五章S7-200的功能指令PLC应用技术2020/1/28本章主要内容5.1程序控制类指令5.2中断指令5.3高速计数器5.4高速脉冲输出2020/1/28本章学习要求重点内容:S7-200功能指令的作用及使用方法了解内容:系统控制类指令的应用难点内容:高速计数器指令2020/1/285.1程序控制类指令一、系统控制类指令二、跳转、循环指令三、子程序调用指令四、顺序控制指令2020/1/28一、系统控制类指令1.结束指令结束指令有两条:END和MEND。两条指令在梯形图中以线圈形式编程。END,条件结束指令。使能输入有效时,终止用户主程序。MEND无条件结束指令。无条件终止用户程序的执行,返回主程序的第一条指令。指令格式:END(无操作数)5.1程序控制类指令2020/1/282.停止指令STOP,暂停指令。使能输入有效时,该指令使主机CPU的工作方式由RUN切换到STOP方式,从而立即终止用户程序的执行。STOP指令在梯形图中以线圈形式编程。指令不含操作数。指令格式:STOP(无操作数)5.1程序控制类指令2020/1/283.看门狗复位指令WDR,看门狗复位指令。当使能输入有效时,执行WDR指令,每执行一次,看门狗定时器就被复位一次。用本指令可用以延长扫描周期,从而可以有效避免看门狗超时错误。指令格式:WDR(无操作数)LDSM5.0//检查I/O错误OSM4.3//运行时刻检查编程OI0.3//外部切换开关STOP//条件满足,由RUN//切换到STOP方式////LDI0.5//外部停止控制END//停止程序执行////LDM0.4//用触点重新触发WDR//看门狗定时器AI0.2//5.1程序控制类指令2020/1/28LDSM5.0//检查I/O错误OSM4.3//运行时刻检查编程OI0.3//外部切换开关STOP//条件满足,由RUN//切换到STOP方式////LDI0.5//外部停止控制END//停止程序执行////LDM0.4//用触点重新触发WDR//看门狗定时器AI0.2//5.1程序控制类指令2020/1/28二、跳转、循环指令1.跳转指令(1)跳转指令JMP,跳转指令。使能输入有效时,使程序流程跳到同一程序中的指定标号n处执行。(2)标号指令LBL,标号指令。标记程序段,作为跳转指令执行时跳转到的目的位置。操作数n为0~255的字型数据。5.1程序控制类指令2020/1/285.1程序控制类指令2020/1/282、循环指令由FOR和NEXT指令构成程序的循环体。FOR指令标记循环的开始,NEXT指令为循环体的结束指令。5.1程序控制类指令2020/1/28工作原理:使能输入EN有效,循环体开始执行,执行到NEXT指令时返回,每执行一次循环体,当前值计数器INDX增1,达到终止值FINAL时,循环结束。使能输入无效时,循环体程序不执行。每次使能输入有效,指令自动将各参数复位。5.1程序控制类指令2020/1/28三、子程序调用指令1.建立子程序2.子程序调用3.带参数的子程序调用5.1程序控制类指令2020/1/281.建立子程序(1)从“编辑”菜单,选择插入→子程序;(2)从“指令树”,用鼠标右键单击“程序块”图标,并从弹出菜单选择插入→子程序;(3)从“程序编辑器”窗口,用鼠标右键单击,并从弹出菜单选择插入→子程序。5.1程序控制类指令2020/1/282.子程序调用(1)子程序调用和返回指令子程序调用SBR子程序条件返回CRET5.1程序控制类指令2020/1/28(1)子程序参数(2)局部变量的类型(3)数据类型(4)建立带参数子程序的局部变量表(5)带参数子程序调用指令3.带参数的子程序调用5.1程序控制类指令2020/1/28四、顺序控制指令5.1程序控制类指令1.功能流程图2020/1/28(1)顺序步开始指令(LSCR)(2)顺序步结束指令(SCRE)(3)顺序步转移指令(SCRT)5.1程序控制类指令2.顺序控制指令2020/1/28例5-1使用顺序控制结构,编写出实现红、绿灯循环显示的程序(要求循环间隔时间为1s)。5.1程序控制类指令2020/1/285.1程序控制类指令2020/1/285.2中断指令一、中断源二、中断指令三、中断程序2020/1/285.2中断指令概念:中段就是终止当前正在运行的程序,去执行为立即响应的信号而编制的中断服务程序,执行完毕再返回原先终止的程序并继续执行。一、中断源中断源是指发出中断请求的事件,又叫中断事件。2020/1/281、中断源分类S7-200系列可编程控制器最多有34个中断源,分为三大类:通信中断输入/输出(I/O)中断时基中断5.2中断指令2020/1/282、中断优先级中断优先级由高到低依次是:通信中断、输入输出中断、时基中断。每种中断中的不同中断事件又有不同的优先权。主机中的所有中断事件及优先级如下表。5.2中断指令2020/1/28•表5.4中断事件及优先级2020/1/28215.2中断指令2020/1/283、CPU响应中断的原则一个程序中总共可有128个中断。S7-200在任何时刻,只能执行一个中断程序;在中断各自的优先级组内按照先来先服务的原则为中断提供服务,一旦一个中断程序开始执行,则一直执行至完成,不能被另一个中断程序打断,即使是更高优先级的中断程序;中断程序执行中,新的中断请求按优先级排队等候,中断队列能保存的中断个数有限,若超出,则会产生溢出。5.2中断指令2020/1/28二、中断指令5.2中断指令2020/1/28三、中断程序(中断服务程序)中段程序是为处理中断事件而事先编好的程序。中断程序不是由程序调用,而是在中断事件发生时由操作系统调用。注意:(1)在中断程序中禁止使用DISI、ENI、HDEF、LSCR、END指令。(2)中断程序最后一条指令一定是无条件返回指令RETI(省略),也可以是有条件返回指令CRETI结束中断程序。5.2中断指令2020/1/28例5-2编写由I0.1的上升沿产生的中断事件的初始化程序。例5-3编程完成采样工作,要求每10ms采样一次。5.2中断指令2020/1/285.3高速计数器一.高速计数器介绍二.高速计数指令及应用2020/1/28一.高速计数器介绍高速计数器在程序中使用时的地址编号用HCn来表示(在非程序中有时用HSCn),HC表编程元件名称为高速计数器,n为编号。5.3高速计数器2020/1/281.高速计数器输入端的连接高速计数器中断事件大致分为3类:当前值等于预设值中断、输入方向改变中断和外部复位中断。所有高速计数器都支持当前值等于预设值中断。31225.3高速计数器2020/1/282.高速计数器的工作模式5.3高速计数器2020/1/28高速计数器有6种编号,12种工作模式.HSC0和HSC4有模式0、1、3、4、6、7、8、9、10;HSC1和HSC2有模式0、1、2、3、4、5、6、7、8、9、10、11;HSC3和HSC5只有模式0。5.3高速计数器2020/1/283.高速计数器的控制字和状态字5.3高速计数器2020/1/285.3高速计数器2020/1/28每个高速计数器都有固定的特殊功能存储器与之相配合,完成高速计数功能。高速计数器的使用5.3高速计数器2020/1/28二、高速计数指令(1)HDEF指令HDEF,定义高速计数器指令。使能输入有效时,为指定的高速计数器分配一种工作模式,即用来建立高速计数器与工作模式之间的联系。梯形图指令盒中有两个数据输入端:HSC,高速计数器编号,为0~5的常数,字节型;MODE,工作模式,为0~11的常数,字节型。5.3高速计数器2020/1/28(2)HSC指令HSC,使用高速计数器指令。使能输入有效时,根据高速计数器特殊存储器位的状态,并按照HDEF指令指定的工作模式,设置高速计数器并控制其工作。梯形图指令盒数据输入端N:高速计数器编号,为0~5的常数,字型。5.3高速计数器2020/1/28原理:每个高速计数器都有一个32位当前值和一个32位预置值,当前值和预设值均为带符号的整数值。要设置高速计数器的新当前值和新预置值,必须设置控制字节令其第五位和第六位为1,允许更新预置值和当前值,新当前值和新预置值写入特殊内部标志位存储区。然后执行HSC指令,将新数值传输到高速计数器。高速计数器使用原理5.3高速计数器2020/1/28(1)用首次扫描时接通一个扫描周期的特殊内部存储器SM0.1去调用一个子程序,完成初始化操作。(2)在初始化的子程序中,根据希望的控制设置控制字(SMB37、SMB47、SMB137、SMB147、SMB157)(3)执行HDEF指令,设置HSC的编号(0-5),设置工作模式(0-11)。(4)用新的当前值写入32位当前值寄存器(SMD38,SMD48,SMD58,SMD138,SMD148,SMD158)。(5)用新的预置值写入32位预置值寄存器(SMD42,SMD52,SMD62,SMD142,SMD152,SMD162)(6)、(7)、(8)中断事件(事件13、14、15)与一个中断程序相联系。(9)执行全局中断允许指令(ENI)允许HSC中断(10)执行HSC指令使S7-200对高速计数器进行编程。(11)结束子程序。三、高速计数器指令初始化5.3高速计数器2020/1/28例5-4高速计数器的应用举例(1)主程序5.3高速计数器2020/1/28(2)初始化的子程序2020/1/28(3)中断程序INT_05.3高速计数器2020/1/28一、高速脉冲输出介绍5.4高速脉冲输出2020/1/28二、高速脉冲串输出PTO5.4高速脉冲输出(1)周期和脉冲数(2)PTO的种类(3)中断事件类型(4)PTO的使用2020/1/28三、应用实例5.4高速脉冲输出(1)控制要求步进电机转动过程中,要从A点加速到B点后恒速运行,又从C点开始减速到D点,完成这一过程时用指示灯显示。电机的转动受脉冲控制,A点和D点的脉冲频率为2kHz,B点和C点的频率为10kHz,加速过程的脉冲数为400个,恒速转动的脉冲数为4000个,减速过程脉冲数为200个。2020/1/285.4高速脉冲输出(3)分析本控制系统主程序、初始化子程序SBR_1、包络表子程序、中断程序组成。(演示)2020/1/285.4高速脉冲输出(2)程序实现确定脉冲发生器及工作模式设置控制字节写入周期值、周期增量值和脉冲数装入包络表首地址中断调用执行PLS指令2020/1/28小结:通过本章的学习,重点掌握S7-200功能指令的作用及使用方法;了解系统控制类指令的应用。本章学习要求