第6章特殊功能指令.ppt

上传人:sccc 文档编号:4749515 上传时间:2023-05-13 格式:PPT 页数:70 大小:360.02KB
返回 下载 相关 举报
第6章特殊功能指令.ppt_第1页
第1页 / 共70页
第6章特殊功能指令.ppt_第2页
第2页 / 共70页
第6章特殊功能指令.ppt_第3页
第3页 / 共70页
第6章特殊功能指令.ppt_第4页
第4页 / 共70页
第6章特殊功能指令.ppt_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《第6章特殊功能指令.ppt》由会员分享,可在线阅读,更多相关《第6章特殊功能指令.ppt(70页珍藏版)》请在三一办公上搜索。

1、第6章 特殊功能指令,6.1 立即类指令,立即读 立即输出,立即读指令用于输入I接点,立即读指令读取实际输入点的状态时,并不更新该输入点对应的输入映像寄存器的值。如:当实际输入点(位)是1时,其对应的立即触点立即接通;当实际输入点(位)是0时,其对应的立即触点立即断开。立即输出指令用于输出Q线圈,执行指令时,立即将新值写入实际输出点和对应的输出映像寄存器。立即类指令与非立即类指令不同,非立即指令仅将新值读或写入输入/输出映像寄存器。,表6-1 立即类指令的格式及说明,6.2 中断指令,6.2.1 中断源,1.中断源的类型,中断源即发出中断请求的事件,又叫中断事件。为了便于识别,系统给每个中断源

2、都分配一个编号,称为中断事件号。S7-200系列可编程控制器最多有34个中断源,分为三大类:通信中断、输入/输出中断和时基中断。,(1)通信中断,在自由口通信模式下,用户可通过编程来设置波特率、奇偶校验和通信协议等参数。用户通过编程控制通讯端口的事件为通信中断。,(2)I/O中断,I/O中断包括外部输入上升下降沿中断、高速计数器中断和高速脉冲输出中断。S7-200用输入(I0.0、I0.1、I0.2或I0.3)上升下降沿产生中断。这些输入点用于捕获在发生时必须立即处理的事件。高速计数器中断指对高速计数器运行时产生的事件实时响应,包括当前值等于预设值时产生的中断,计数方向的改变时产生的中断或计数

3、器外部复位产生的中断。脉冲输出中断是指预定数目脉冲输出完成而产生的中断。,(3)时基中断,定时中断用于支持一个周期性的活动。周期时间从1毫秒至255毫秒,时基是1毫秒。使用定时中断0,必须在SMB34中写入周期时间;使用定时中断1,必须在SMB35中写入周期时间。定时中断可以用来对模拟量输入进行采样或定期执行PID回路。定时器T32/T96中断指允许对定时间间隔产生中断。这类中断只能用时基为1ms的定时器T32/T96构成。当中断被启用后,当前值等于预置值时,在S7-200执行的正常1毫秒定时器更新的过程中,执行连接的中断程序。,2.中断优先级和排对等候,优先级是指多个中断事件同时发出中断请求

4、时,CPU对中断事件响应的优先次序。S7-200规定的中断优先由高到低依次是:通信中断、I/O中断和定时中断。每类中断中不同的中断事件又有不同的优先权,如表6-2所示。一个程序中总共可有128个中断。S7-200在中断各自的优先级组内按照先来先服务的原则为中断提供服务。在任何时刻,只能执行一个中断程序。一旦一个中断程序开始执行,则一直执行至完成。不能被另一个中断程序打断,即使是更高优先级的中断程序。中断程序执行中,新的中断请求按优先级排队等候。中断队列能保存的中断个数有限,若超出,则会产生溢出。中断队列的最多中断个数和溢出标志位如表6-3所示。,6.2.2 中断指令,中断指令有4条,包括开、关

5、中断指令,中断连接、分离指令。指令格式如表6-4所示连接文件夹表60.doc。,1.开、关中断指令,开中断(ENI)指令全局性允许所有中断事件。关中断(DISI)指令全局性禁止所有中断事件,中断事件的每次出现均被排队等候,直至使用全局开中断指令重新启用中断。PLC转换到RUN(运行)模式时,中断开始时被禁用,可以通过执行开中断指令,允许所有中断事件。执行关中断指令会禁止处理中断,但是现用中断事件将继续排队等候。,2.中断连接、分离指令,中断连接指令(ATCH)指令将中断事件(EVNT)与中断程序号码(INT)相连接,并启用中断事件。分离中断(DTCH)指令取消某中断事件(EVNT)与所有中断程

6、序之间的连接,并禁用该中断事件。注意:一个中断事件只能连接一个中断程序,但多个中断事件可以调用一个中断程序。,6.2.3 中断程序,1.中断程序的概念,中断程序是为处理中断事件而事先编好的程序。中断程序不是由程序调用,而是在中断事件发生时由操作系统调用。在中断程序中不能改写其他程序使用的存储器,最好使用局部变量。中断程序应实现特定的任务,应“越短越好”,中断程序由中断程序号开始,以无条件返回指令(CRETI)结束。在中断程序中禁止使用DISI、ENI、HDEF、LSCR和END指令。,2.建立中断程序的方法,方法一:从“编辑”菜单选择插入(Insert)中断(Interrupt)。方法二:从指

7、令树,用鼠标右键单击“程序块”图标并从弹出菜单选择插入(Insert)中断(Interrupt)。方法三:从“程序编辑器”窗口,从弹出菜单用鼠标右键单击插入(Insert)中断(Interrupt)。程序编辑器从先前的POU显示更改为新中断程序,在程序编辑器的底部会出现一个新标记,代表新的中断程序。,6.2.4 程序举例,【例6-1】编写由I0.1的上升沿产生的中断事件的初始化程序。连接文件夹练习题6-1.doc【例6-2】编程完成采样工作,要求每10ms采样一次。连接文件夹练习题6-2.doc【例6-3】利用定时中断功能编制一个程序,实现如下功能:当I0.0由OFFON,Q0.0亮1s,灭1

8、s,如此循环反复直至I0.0由ONOFF,Q0.0变为OFF。连接文件夹练习题6-3.doc,6.2.5 中断程序编程实训,1.实训目的,(1)熟悉中断指令的使用方法。(2)掌握定时中断设计程序的方法。,2.实训内容,(1)利用T32定时中断编写程序,要求产生占空比为50%,周期为4s的的方波信号。(2)用定时中断实现喷泉的模拟控制,控制要求。,3.参考程序,产生占空比为50%,周期为4s的的方波信号,主程序和中断程序如 连接文件夹参考程序1.doc,4.输入并调试程序,用状态图监视程序的运行,并记录观察到的现象。,6.3 高速计数器与高速脉冲输出,前面讲的计数器指令的计数速度受扫描周期的影响

9、,对比CPU扫描频率高的脉冲输入,就不能满足控制要求了。为此,SIMATIC S7-200系列PLC设计了高速计数功能(HSC),其计数自动进行不受扫描周期的影响,最高计数频率取决于CPU的类型,CPU22x系列最高计数频率为30KHz,用于捕捉比CPU扫描速更快的事件,并产生中断,执行中断程序,完成预定的操作。高速计数器最多可设置12种不同的操作模式。用高速计数器可实现高速运动的精确控制。SIMATIC S7-200 CPU22x系列PLC还设有高速脉冲输出,输出频率可达20KHz,用于PTO(输出一个频率可调,占空比为50%的脉冲)和PWM(输出占空比可调的脉冲),高速脉冲输出的功能可用于

10、对电动机进行速度控制及位置控制和控制变频器使电机调速。,6.3.1 占用输入/输出端子,1.高速计数器占用输入端子,CPU224有六个高速计数器,其占用的输入端子如表6-5所示。连接文件夹表6-5.doc各高速计数器不同的输入端有专用的功能,如:时钟脉冲端、方向控制端、复位端、起动端。注意:同一个输入端不能用于两种不同的功能。但是高速计数器当前模式未使用的输入端均可用于其他用途,如作为中断输入端或作为数字量输入端。例如,如果在模式2中使用高速计数器HSC0,模式2使用I0.0和I0.2,则I0.1可用于边缘中断或用于HSC3。,2.高速脉冲输出占用的输出端子,S7-200有PTO、PWM两台高

11、速脉冲发生器。PTO脉冲串功能可输出指定个数、指定周期的方波脉冲(占空比50%);PWM功能可输出脉宽变化的脉冲信号,用户可以指定脉冲的周期和脉冲的宽度。若一台发生器指定给数字输出点Q0.0,另一台发生器则指定给数字输出点Q0.1。当PTO、PWM发生器控制输出时,将禁止输出点Q0.0、Q0.1的正常使用;当不使用PTO、PWM高速脉冲发生器时,输出点Q0.0、Q0.1恢复正常的使用,即由输出映像寄存器决定其输出状态。,6.3.2 高速计数器的工作模式,1.高速计数器的计数方式,(1)单路脉冲输入的内部方向控制加/减计数。即只有一个脉冲输入端,通过高速计数器的控制字节的第3位来控制作加计数或者

12、减计数。该位=1,加计数;该位=0,减计数。如图6-6所示内部方向控制的单路加/减计数。(2)单路脉冲输入的外部方向控制加/减计数。即有一个脉冲输入端,有一个方向控制端,方向输入信号等于1时,加计数;方向输入信号等于0时,减计数。如图6-7所示外部方向控制的单路加/减计数。连接文件夹高速计数器的技术.doc,2.高速计数器的工作模式,高速计数器有12种工作模式,模式0模式2采用单路脉冲输入的内部方向控制加/减计数;模式3模式5采用单路脉冲输入的外部方向控制加/减计数;模式6模式8采用两路脉冲输入的加/减计数;模式9模式11采用两路脉冲输入的双相正交计数。S7-200 CPU224有 HSC0-

13、HSC5六个高速计数器,每个高速计数器有多种不同的工作模式。连接文件夹表61.docHSC0选用某个高速计数器在某种工作方式下工作后,高速计数器所使用的输入不是任意选择的,必须按系统指定的输入点输入信号。如HSC1。,6.3.3 高速计数器的控制字和状态字,1.控制字节,定义了计数器和工作模式之后,还要设置高速计数器的有关控制字节。每个高速计数器均有一个控制字节,它决定了计数器的计数允许或禁用,方向控制(仅限模式0、1和2)或对所有其他模式的初始化计数方向,装入当前值和预置值。控制字节每个控制位的说明如表6-7所示。,2.状态字节,每个高速计数器都有一个状态字节,状态位表示当前计数方向以及当前

14、值是否大于或等于预置值。每个高速计数器状态字节的状态位如表6-8连接文件夹10.doc。,6.3.4 高速计数器指令及举例,1.高速计数器指令,高速计数器指令有两条:高速计数器定义指令HDEF如表6-9连接文件夹表63.doc(1)高速计数器定义指令HDEF。指令指定高速计数器(HSCx)的工作模式。工作模式的选择即选择了高速计数器的输入脉冲、计数方向、复位和起动功能。每个高速计数器只能用一条“高速计数器定义”指令。(2)高速计数器指令HSC。根据高速计数器控制位的状态和按照HDEF指令指定的工作模式,控制高速计数器。参数N指定高速计数器的号码。,2.高速计数器指令的使用,1)每个高速计数器都

15、有一个32位当前值和一个32位预置值,当前值和预设值均为带符号的整数值。要设置高速计数器的新当前值和新预置值,必须设置控制字节(表6-7)连接文件夹表64.doc,令其第五位和第六位为1,允许更新预置值和当前值,新当前值和新预置值写入特殊内部标志位存储区。然后执行HSC指令,将新数值传输到高速计数器。当前值和预置值占用的特殊内部标志位存储区如表6-10所示。除控制字节以及新预设值和当前值保持字节外,还可以使用数据类型HC。(2)执行HDEF指令之前,必须将高速计数器控制字节的位设置成需要的状态,否则将采用默认设置。默认设置为:复位和起动输入高电平有效,正交计数速率选择4模式。执行HDEF指令后

16、,就不能再改变计数器的设置,除非CPU进入停止模式。(3)执行HSC指令时,CPU检查控制字节和有关的当前值和预置值。,3.高速计数器指令的初始化,高速计数器指令的初始化的步骤如下:连接文件夹表格65.doc,2.用于脉冲输出(Q0.0或Q0.1)的特殊存储器,()控制字节和参数的特殊存储器,每个PTO/PWM发生器都有连接文件夹66.doc,(2)状态字节的特殊存储器,除了控制信息外,还有用于PTO功能的状态位,如表6-12所示。程序运行时,根据运行状态使某些位自动置位。可以通过程序来读取相关位的状态,用此状态作为判断条件,实现相应的操作。,3.对输出的影响,PTO/PWM生成器和输出映像寄

17、存器共用Q0.0和Q0.1。在Q0.0或Q0.1使用PTO或PWM功能时,PTO/PWM发生器控制输出,并禁止输出点的正常使用,输出波形不受输出映像寄存器状态、输出强制、执行立即输出指令的影响;在Q0.0或Q0.1位置没有使用PTO或PWM功能时,输出映像寄存器控制输出,所以输出映像寄存器决定输出波形的初始和结束状态,即决定脉冲输出波形从高电平或低电平开始和结束,使输出波形有短暂的不连续,为了减小这种不连续有害影响,应注意:(1)可在起用PTO或PWM操作之前,将用于Q0.0和Q0.1的输出映像寄存器设为0。(2)PTO/PWM输出必须至少有10%的额定负载,才能完成从关闭至打开以及从打开至关

18、闭的顺利转换,即提供陡直的上升沿和下降沿。,4.PTO的使用,PTO是可以指定脉冲数和周期的占空比为50%的高速脉冲串的输出。状态字节中的最高位(空闲位)用来指示脉冲串输出是否完成。可在脉冲串完成时起动中断程序,若使用多段操作,则在包络表完成时起动中断程序。,(1)周期和脉冲数,周期范围从50微秒至65,535微秒或从2毫秒至65,535毫秒,为16位无符号数,时基有s和ms两种,通过控制字节的第三位选择。注意:如果周期 2个时间单位,则周期的默认值为2个时间单位。周期设定奇数微秒或毫秒(例如75毫秒),会引起波形失真。脉冲计数范围从1至4,294,967,295,为32位无符号数,如设定脉冲

19、计数为0,则系统默认脉冲计数值为1。,(2)PTO的种类及特点,PTO功能可输出多个脉冲串,现用脉冲串输出完成时,新的脉冲串输出立即开始。这样就保证了输出脉冲串的连续性。PTO功能允许多个脉冲串排队,从而形成流水线。流水线分为两种:单段流水线和多段流水线。连接文件夹67.doc,(3)多段流水线PTO初始化和操作步骤,用一个子程序实现PTO初始化,首次扫描(SM0.1)时从主程序调用初始化子程序,执行初始化操作。以后的扫描不再调用该子程序,这样减少扫描时间,程序结构更好。初始化操作步骤如下:连接文件夹68.doc,5.PWM的使用,PWM是脉宽可调的高速脉冲,通过控制脉宽和脉冲的周期,实现控制

20、任务。,(1)周期和脉宽,周期和脉宽时基为:微秒或毫秒,均为16位无符号数。周期的范围从50微秒至65,535微秒,或从2毫秒至65,535毫秒。若周期=周期,占空比=100%,输出连续接通。若脉宽=0,占空比为0%,则输出断开。,(2)更新方式,有两种改变PWM波形的方法:同步更新和异步更新。同步更新:不需改变时基时,可以用同步更新。执行同步更新时,波形的变化发生在周期的边缘,形成平滑转换。异步更新:需要改变PWM的时基时,则应使用异步更新。异步更新使高速脉冲输出功能被瞬时禁用,与PWM波形不同步。这样可能造成控制设备震动。常见的PWM操作是脉冲宽度不同,但周期保持不变,即不要求时基改变。因

21、此先选择适合于所有周期的时基,尽量使用同步更新。,(3)PWM初始化和操作步骤6.3.6 高速输入、高速输出指令编程实训,1用首次扫描位(SM0.1)使输出位复位为0,并调用初始化子程序。这样可减少扫描时间,程序结构更合理。2在初始化子程序中设置控制字节。如将16#D3(时基微秒)或16#DB(时基毫秒)写入SMB67 或SMB77,控制功能为:允许PTO/PWM功能、选择PWM操作、设置更新脉冲宽度和周期数值、以及选择时基(微秒或毫秒)。3在SMW68或SMW78中写入一个字长的周期值。4在SMW70或SMW80中写入一个字长的脉宽值。5执行PLS指令,使S7-200为PWM发生器编程,并由

22、Q0.0或Q0.1输出。6可为下一输出脉冲预设控制字。在SMB67或SMB77中写入16#D2(微秒)或16#DA(毫秒)控制字节中将禁止改变周期值,允许改变脉宽。以后只要装入一个新的脉宽值,不用改变控制字节,直接执行PLS指令就可改变脉宽值。7退出子程序连接文件夹69.doc。,1.实训目的,(1)掌握高速处理类指令的组成、相关特殊存储器的设置、指令的输入及指令执行后的结果,进一步熟悉指令的作用和使用方法。(2)通过实训的编程、调试练习观察程序执行的过程,分析指令的工作原理,熟悉指令的具体应用,掌握编程技巧和能力。,2.实训内容,用脉冲输出指令PLS和高速输出端子Q0.0给高速计数器HSC提

23、供高速计数脉冲信号,因为要使用高速脉冲输出功能,必须选用直流电源型的CPU模块。输入侧的公共端与输出侧的公共端相连,高速输出端Q0.0接到高速输入端I0.0,24V电源正端与输出侧的1L+端子相连。有脉冲输出时Q0.0与I0.0对应的LED亮。在子程序0中,把中断程序0与中断事件12(CV=PV时产生中断)连接起来。外部接线图如图6-17连接文件夹70.doc。,3.读懂程序并输入程序,给程序加注释,给网络加注释,在注释中说明程序的功能和指令的功能。,4.编译运行和调试程序,观察Q0.1和Q0.2对应的LED的状态,并记录。用状态表监视HSC0的当前值变化情况。根据观察结果画出HSC0,Q0.

24、0,Q0.1之间对应的波形图。,6.4 PID控制,6.4.1 PID指令,1.PID算法,在工业生产过程控制中,模拟信号PID(由比例、积分、微分构成的闭合回路)调节是常见的一种控制方法。运行PID控制指令,S7-200将根据参数表中的输入测量值、控制设定值及PID参数,进行PID运算,求得输出控制值。参数表中有9个参数,全部为32位的实数,共占用36个字节。PID控制回路的参数表如表6-15所示。连接文件夹71.doc,2.PID控制回路选项,在很多控制系统中,有时只采用一种或两种控制回路。例如,可能只要求比例控制回路或比例和积分控制回路。通过设置常量参数值选择所需的控制回路。(1)如果不

25、需要积分回路(即在PID计算中无“I”),则应将积分时间Ti设为无限大。由于积分项Mx的初始值,虽然没有积分运算,积分项的数值也可能不为零。(2)如果不需要微分运算(即在PID计算中无“D”),则应将微分时间Td设定为0.0。(3)如果不需要比例运算(即在PID计算中无“P”),但需要I或ID控制,则应将增益值Kc指定为0.0。因为Kc是计算积分和微分项公式中的系数,将循环增益设为0.0会导致在积分和微分项计算中使用的循环增益值为1.0。连接文件夹71.doc,3.回路输入量的转换和标准化,每个回路的给定值和过程变量都是实际数值,其大小、范围和工程单位可能不同。在PLC进行PID控制之前,必须

26、将其转换成标准化浮点表示法。步骤如下:连接文件夹73.doc,4.PID回路输出转换为成比例的整数,程序执行后,PID回路输出0.0和1.0之间的标准化实数数值,必须被转换成16位成比例整数数值,才能驱动模拟输出。PID回路输出成比例实数数值=(PID回路输出标准化实数值-偏移量)*取值范围。程序如下:MOVRVD108,AC0/将PID回路输出送入AC0。-R0.5,AC0/双极数值减偏移量0.5R64000.0,AC0/AC0的值*取值范围,变为成比例实数数值ROUNDAC0,AC0/将实数四舍五入取整,变为32位整数DTI AC0,AC0/32位整数转换成16位整数MOVWAC0,AQW

27、0/16位整数写入AQW0,5.PID指令,PID指令:使能有效时,根据回路参数表(TBL)中的输入测量值、控制设定值及PID参数进行PID计算。格式如表6-16所示。说明:连接文件夹74.doc,2.PID控制回路选项,(2)如果不需要微分运算(即在PID计算中无“D”),则应将微分时间Td设定为0.0。(3)如果不需要比例运算(即在PID计算中无“P”),但需要I或ID控制,则应将增益值Kc指定为0.0。因为Kc是计算积分和微分项公式中的系数,将循环增益设为0.0会导致在积分和微分项计算中使用的循环增益值为1.0。(1)如果不需要积分回路(即在PID计算中无“I”),则应将积分时间Ti设为

28、无限大。由于积分项Mx的初始值,虽然没有积分运算,积分项的数值也可能不为零。在很多控制系统中,有时只采用一种或两种控制回路。例如,可能只要求比例控制回路或比例和积分控制回路。通过设置常量参数值选择所需的控制回路。,3.回路输入量的转换和标准化,每个回路的给定值和过程变量都是实际数值,其大小、范围和工程单位可能不同。在PLC连接文件夹75.doc,2.PID回路参数表,如表6-17连接文件夹78.doc,4.PID回路输出转换为成比例的整数,程序执行后,PID回路输出0.0和1.0之间的标准化实数数值,必须被转换成16位成比例整数数值,才能驱动模拟输出。PID回路输出成比例实数数值=(PID回路

29、输出标准化实数值-偏移量)*取值范围程序如下:连接文件夹76.doc,5.PID指令,PID指令:使能有效时,根据回路参数表(TBL)中的输入测量值、控制设定值及PID参数进行PID计算。格式如表6-16所示。说明:连接文件夹77.doc,6.4.2 PID控制功能的应用,1.控制任务,一恒压供水水箱,通过变频器驱动的水泵供水,维持水位在满水位的70%。过程变量PVn为水箱的水位(由水位检测计提供),设定值为70%,PID输出控制变频器,即控制水箱注水调速电机的转速。要求开机后,先手动控制电机,水位上升到70%时,转换到PID自动调节。,2.程序分析,(1)I/O分配手动/自动切换开关I0.0

30、 模拟量输入AIW0 模拟量输出AQW0(2)程序结构由主程序,子程序,中断程序构成。主程序用来调用初始化子程序,子程序用来建立PID回路初始参数表和设置中断,由于定时采样,所以采用定时中断(中断事件号为10),设置周期时间和采样时间相同(0.1s),并写入SMB34。中断程序用于执行PID运算,I0.0=1时,执行PID运算,本例标准化时采用单极性(取值范围32000)。,3.语句表程序,主程序 连接文件夹79.doc,4.梯形图程序,梯形图程序如图6-18。连接文件夹80.doc,6.5 时钟指令,利用时钟指令可以实现调用系统实时时钟或根据需要设定时钟,这对控制系统运行的监视、运行记录及和实时时间有关的控制等十分方便。时钟指令有两条:读实时时钟和设定实时时钟。指令格式如表6-18。连接文件夹81.doc指令使用说明:连接文件夹82.doc,6.6 习题,1.编写程序完成数据采集任务,要求每100ms采集一个数。2.编写一个输入/输出中断程序,要求实现:(1)从0到255的计数。(2)当输入端I0.0为上升沿时,执行中断程序0,程序采用加计数。(3)当输入端I0.0为下降沿时,执行中断程序1,程序采用减计数。(4)计数脉冲为SM0.5。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号