资源预览内容
第1页 / 共59页
第2页 / 共59页
第3页 / 共59页
第4页 / 共59页
第5页 / 共59页
第6页 / 共59页
第7页 / 共59页
第8页 / 共59页
第9页 / 共59页
第10页 / 共59页
亲,该文档总共59页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
模块七 PLC控制系统特殊功能指令的编程和应用,【知识目标】 1理解中断、中断事件、中断优先级等概念,了解各类中断事件及中断优先级。 2掌握中断指令的格式和功能,掌握中断程序的建立方法。 3了解高速计数器的计数方式、工作模式、控制字节、初始值和预置值寄存器以及状态字节等含义。 4掌握高速计数器指令的格式和功能,学会使用高速计数器。 5了解PWM和PTO的含义,了解PTO/PWM寄存器的各位的含义,掌握高速脉冲输出指令的格式和功能。 6掌握PID指令的格式和功能和PID各参数的含义及设置。 7掌握A/D、D/A模块的功能、设置和应用。 8掌握特殊功能指令在程序设计中的灵活应用。,【能力目标】 1进一步掌握程序控制指令的格式和功能,学会用程序控制指令来编写程序。 2了解子程序的概念,掌握子程序的建立和调用的方法。 3能够使用PTO/PWM发生器产生需要的控制脉冲。 4能够使用中断指令,掌握中断程序的建立方法。 5能够应用PLC模拟量扩展模块、和变频器。 6能够理解PID工作原理、PID各参数的含义,能够使用PID指令编程。 7能根据PLC的编程手册的功能指令的说明来应用功能指令编程。,学习目标,掌握程序控制指令的格式和功能,学会用程序控制指令来编写程序; 了解子程序的概念,掌握子程序的建立和调用的方法; 理解中断、中断事件、中断优先级等概念,了解各类中断事件及中断优先级,掌握中断指令的格式和功能,掌握中断程序的建立方法; 了解高速计数器的计数方式、工作模式、控制字节、初始值和预置值寄存器以及状态字节等含义,掌握高速计数器指令的格式和功能,学会使用高速计数器; 了解PWM和PTO的含义,了解PTO/PWM寄存器的各位的含义,掌握高速脉冲输出指令的格式和功能,能够使用PTO/PWM发生器产生需要的控制脉冲。,任务一:程序控制指令,程序控制指令的作用是控制程序的运行方向,如程序的跳转、程序的循环等。在工程实践中常用来解决一些生产流程的选择性分支控制、并行分支控制等。 1任务提出 设定I0.0为电动机点动连续运行控制选择开关,当I0.0得电时,选择点动控制;当I0.0不得电时,选择连续运行控制。,表6-1 跳转与标号指令 说明:N的取值范围是0255,可以在主程序、子程序或者中断服务程序中使用跳转指令,跳转指令及跳转标号指令只能用于同一程序段中。,表6-2 跳转与标号编程举例。,2任务解决方案 设定I0.0为电动机点动连续运行控制选择开关,当I0.0得电时,选择点动控制;当I0.0不得电时,选择连续运行控制,3其他的程序控制指令 (1)条件结束指令与停止指令 说明: 1)条件结束指令只能用在主程序,不能用在子程序和中断程序。 2)如果 STOP 指令在中断程序中执行,那么该中断立即终止并且忽略所有挂起的中断,继续扫描程序的剩余部分在本次扫描的最后完成 CPU 从 RUN 到 STOP 的转变。,(2)看门狗复位指令 看门狗复位指令(WDR)允许S7-200 CPU的系统看门狗定时器被重新触发,这样可以在不引起看门狗错误的情况下,增加此扫描所允许的时间。,(3)循环控制指令 程序循环控制结构用于描述一段程序的重复循环执行。指令格式和功能如表6-5所示。 由FOR和NEXT指令构成程序的循环体,表6-6 程序控制指令编程举例,5应用实例 例1 有三台电动机,设置2种起停方式:手动操作方式:用每个电动机各自的起停按钮控制M1M3的起停状态;自动操作方式:按下起动按钮,M1M3每隔5s依次起运;按下停止按钮,M1M3同时停止。 I/0分配如表6-7所示。,动动脑吧:程序是如何实现所要求的控制功能的?,例2 使用I0.1由OFF到ON的上升沿,将10,15,20,25,30,35分别送到VW10,VW12,VW20。 分析:此程序可以由循环程序来实现,程序如图6-3所示。,调用子程序优点: - 用子程序可以减小程序的长度 - S7-200在每个扫描周期中处理主程序中的代码,不管代码是否执行。而子程序只有在被调用时,S7-200才会处理其代码,因而用子程序可以缩短程序扫描周期。 -用子程序创建的程序代码是可传递的。具有某种独立功能的子程序,可以复制到另一个应用程序中。 子程序有子程序调用和子程序返回两大类指令,子程序可以被多次调用,也可以嵌套(最多8层),还可以递归调用自己(自己调自己),使用递归的时候要慎重。,任务二:子程序的使用,1任务提出 建立模拟量计算子程序: 在实际的控制项目中,从模拟量输入模块中得到模块量,需要经过一定的数学运算,来得到我们实际需要的模拟值。对这种需要重复进行的数学运算,可以通过建立子程序来实现,在需要的时候调用。 (1)建立子程序的方法 从“编辑”菜单选择插入(Insert) 子程序; 从指令树,用鼠标右键单击“程序块”图标并从弹出菜单选择插入(Insert) 子程序 从“程序编辑器”窗口,鼠标右键单击,从弹出快捷菜单中选择插入(Insert) 子程序; 选择插入子程序之后,在程序编辑器的底部会出现一个新标记,代表新的子程序,子程序的编号n从0开始自动向上生成。,任务二:子程序的使用,表6-8 子程序指令 说明: 1)子程序调用指令编写在主程序中,子程序返回指令编写在子程序中; 2)子程序标号n的范围是063; 3)子程序可以不带参数调用,也可以带参数调用。带参数调用的子程序必须事先在局部变量表里对参数进行定义。,局部变量表中的变量有IN、IN_OUT、OUT和TEMP四类。 IN(输入):是传入子程序的输入参数; IN_OUT(输入/输出):将参数的初始值传给子程序,并将子程序的执行结果返回给同一地址; OUT(输出):子程序的执行结果,它被返回给调用它的程序。被传递参数的数据类型有BOOL、BYTE、WORD、INT、DWORD、DINT、REAL、STRINGL八种。 TEMP:局部存储器只能用作子程序内部的暂时存储器,不能用来传递参数。 局部变量表最左边的一列是每个参数在局部存储器(L)中的地址。,表6-9 子程序编程举例,3任务解决方案 在上述任务中,需要用到带参数的子程序调用,在子程序的局部变量表中定义“转换值”、“系数1”和“系数2”的输入变量(IN),“模拟值”的输出变量(OUT),“暂存1”的临时变量(TEMP),任务通过设置如图6-9所示主程序和图6-10所示子程序实现。,4应用实例 例1 编写子程序,将在主程序读取的系统时间的分钟数从BCD码格式转换成十进制整数格式。,图6-11 例1的主程序,图6-12 例1的子程序,例2将上题中的系统时间的秒、分钟、小时均从BCD格式转换成十进制整数格式。,图6-13 例2的主程序,图6-14 例2的子程序,例3 设计子程序,用来记录设备运行时间。 用设备启动时的I0.0调用子程序。主程序如图6-15所示(该程序只能在STL编程器中输入)。,局部变量表,中断是计算机在实时处理和实时控制中不可缺少的一项技术。当控制系统执行正常程序时,系统中出现了某些急需处理的异常情况或特殊请求时,系统暂时中断现行程序,转去处理紧急事件(即中断服务程序),中断服务程序处理完毕,系统自动回到原来的程序继续执行。 1中断事件 中断事件向CPU发出中断请求,S7-200有34个中断事件,每一个中断事件都分配一个编号用于识别,叫做中断事件号。中断事件大致可以分为三大类:通信中断输入、输出中断时间中断。,任务三:PLC中断处理功能,(1)通信中断 PLC的自由通信模式下,通信口的状态可由程序来控制。用户可以通过编程来设置通信协议、波特率和奇偶校验。S7-200系列PLC有6种通讯口中断事件。 (2)I/O中断 S7-200对I/O点状态的各种变化产生中断事件。包括外部输入中断、高速计数器中断和脉冲串输出中断。这些事件可以对高速计数器、脉冲输出或输入的上升或下降状态做出响应。 (3)时基中断 时间中断包括定时中断和定时器T32/T96中断。定时中断可用来支持一个周期性的活动。周期时间以1ms为单位,周期设定时间1255ms。对于定时中断0,把周期时间值写入SMB34;对定时中断1,把周期时间值写入SMB35。,2中断优先级 在PLC应用系统中通常有多个中断事件,当多个中断事件同时向CPU申请中断时,要求CPU能够将全部中断事件按中断性质和处理的轻重缓急进行排队,并给予优先权。 S7-200CPU规定的中断优先级由高到低依次是:通信中断;输入、输出中断;定时中断。每类中断的不同中断事件又有不同的优先级。 CPU响应中断的原则是: (1)当不同的优先级的中断源同时申请中断时,先响应优先级高的中断事件。 (2)在相同优先级的中断事件中,CPU按先来先服务的原则处理中断。 (3)当CPU正在处理某中断,它要一直执行到结束。不会被别的中断程序,甚至是更高优先级的中断程序所打断,新出现的中断事件需要排队,等待处理。CPU任何时刻只执行一个中断程序。,中断事件及优先级,3任务提出 使用定时中断,编程完成采样工作,要求每10ms采样一次。 (1)建立中断程序的方法 同建立子程序的方法完全一样。 表6-11 中断指令,5任务解决方案 分析:可以使用定时中断完成每10ms采样一次,通过查表6-10可知,定时中断0的中断事件号为10。在主程序中将采样周期(10ms)即定时中断的时间间隔写入定时中断0的特殊存储器SMB34,中断事件10和INT0相连。在中断程序中,将模拟量输入信号读入。主程序如图6-18所示,中断程序如图6-19所示。,6应用实例 例1 在I0.0的上升沿通过中断使Q0.0立即复位。在I0.1的下降沿通过中断使Q0.0立即复位。 通过查表6-10得知,I0.0的上升沿中断事件号是0,I0.1的下降沿中断事件号是3。,例2 定时中断的定时时间最长为255ms,用定时中断0实现周期为2s的高精度定时。 查表6-10可知,定时中断0的中断号为10。为了实现2s的定时,可以将定时时间间隔设为250ms,在定时中断0的中断程序中,将VB0加1,当VB0达到8的时候(即中断了8次),对应的时间间隔为2s。,例2的主程序,例2的中断程序0(INT_0),例3 使用定时中断实现对100ms定时周期进行计数。,PLC的普通计数器的计数过程与扫描工作方式有关,CPU通过每一扫描周期读取一次被测信号的方法来捕捉被测信号的上升沿,被测信号的频率较高时,会丢失计数脉冲,因此普通计数器的工作频率很低,一般仅有几十赫兹。高速计数器可以对普通计数器无能为力的事件进行计数,计数频率取决于CPU的类型,CPU22x系列最高计数频率为30KHz,用于捕捉比CPU扫描速更快的事件,并产生中断,执行中断程序,完成预定的操作。 高速计数器在现代自动控制的精确定位控制领域有重要的应用价值。高速计数器可连接增量旋转编码器等脉冲产生装置,用于检测位置和速度。,任务四: 高速计数指令的使用,S7-200系列PLC中有六个高速计数器,它们分别是HSC0、HSC1、HSC2 、HSC3、HSC4、和HSC5。这些高速计数器可用于处理比PLC扫描周期还要短的高速事件。当高速计数器的当前值等于预置值时产生中断;外部复位信号有效(HSC0不支持)时产生外部复位中断;计数方向改变(HSC0不支持)时产生中断。通过中断服务程序实现对控制目标的控制。,1高速计数器的工作模式 S7-200 CPU高速计数器可以分别定义为4种计数方式: (1)单相计数器,内部方向控制 (2)单相计数器,外部方向控制 (3)双相增/减计数器,双脉冲输入 (4)A/B相正交脉冲输入计数器 每种高速计数方式的计数脉冲、复位脉冲、起动脉冲端子的不同接法可以设定3种工作模式。 无复位,无启动输入 有复位,无启动输入 有复位,有启动输入 所以高速计数器可组成12种工作模式。,表6-13 高速计数器指令。 说明:操作数HSC指定高速计数器号(05),MODE指定高速计数器的工作模式(011
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号