第六章 特殊功能指令
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. 状态字节
每个高速计数器都有一个状态字节,状态位表示 当前计数方向以及当前值是否大于或等于预置值。 每个高速计数器状态字节的状态位如表6-8连接 文件夹\10.doc。
6.3.4 高速计数器指令及举例
1. 高速计数器指令
高速计数器指令有两条:高速计数器定义指令HDEF如 表6-9连接文件夹\表63.doc(1)高速计数器定义指令 HDEF。指令指定高速计数器(HSCx)的工作模式。工 作模式的选择即选择了高速计数器的输入脉冲、计数方 向、复位和起动功能。每个高速计数器只能用一条“高 速计数器定义”指令。 (2)高速计数器指令HSC。根据高速计数器控制位的 状态和按照HDEF指令指定的工作模式,控制高速计数 器。参数N指定高速计数器的号码。
2. 中断连接、分离指令
中 断 连 接 指 令 ( ATCH) 指 令 将 中 断 事 件 (EVNT)与中断程序号码(INT)相连接,并 启用中断事件。 分 离 中 断 ( DTCH) 指 令 取 消 某 中 断 事 件 (EVNT)与所有中断程序之间的连接,并禁用 该中断事件。 注意:一个中断事件只能连接一个中断程序,但 多个中断事件可以调用一个中断程序。
2. 中断优先级和排对等候
优先级是指多个中断事件同时发出中断请求时,CPU对 中断事件响应的优先次序。S7-200规定的中断优先由高 到低依次是:通信中断、I/O中断和定时中断。每类中断 中不同的中断事件又有不同的优先权,如表6-2所示。 一个程序中总共可有128个中断。S7-200在中断各自的优 先级组内按照先来先服务的原则为中断提供服务。在任 何时刻,只能执行一个中断程序。一旦一个中断程序开 始执行,则一直执行至完成。不能被另一个中断程序打 断,即使是更高优先级的中断程序。中断程序执行中, 新的中断请求按优先级排队等候。中断队列能保存的中 断个数有限,若超出,则会产生溢出。中断队列的最多 中断个数和溢出标志位如表6-3所示。
(1)通信中断
在自由口通信模式下,用户可通过编程来设置波 特率、奇偶校验和通信协议等参数。用户通过编 程控制通讯端口的事件为通信中断。
(2)I/O中断
I/O中断包括外部输入上升/下降沿中断、高速 计数器中断和高速脉冲输出中断。S7-200用输 入(I0.0、I0.1、I0.2或I0.3)上升/下降沿产生 中断。这些输入点用于捕获在发生时必须立即处 理的事件。高速计数器中断指对高速计数器运行 时产生的事件实时响应,包括当前值等于预设值 时产生的中断,计数方向的改变时产生的中断或 计数器外部复位产生的中断。脉冲输出中断是指 预定数目脉冲输出完成而产生的中断。
立即类指令与非立即类指令不同,非立即指令仅将新 值读或写入输入/输出映像寄存器。
表6-1 立即类指令的格式及说明
6.2 中断指令
6.2.1 中断源
1. 中断源的类型
中断源即发出中断请求的事件,又叫中断事件。 为了便于识别,系统给每个中断源都分配一个编号, 称为中断事件号。S7-200系列可编程控制器最多有 34个中断源,分为三大类:通信中断、输入/输出 中断和时基中断。
2. 高速计数器指令的使用
1)每个高速计数器都有一个32位当前值和一个32位预置值,当前值和预 设值均为带符号的整数值。要设置高速计数器的新当前值和新预置值,必 须设置控制字节(表6-7)连接文件夹\表64.doc,令其第五位和第六位为1, 允许更新预置值和当前值,新当前值和新预置值写入特殊内部标志位存储 区。然后执行HSC指令,将新数值传输到高速计数器。当前值和预置值占 用的特殊内部标志位存储区如表6-10所示。除控制字节以及新预设值和当 前值保持字节外,还可以使用数据类型HC。 (2)执行HDEF指令之前,必须将高速计数器控制字节的位设置成需要的 状态,否则将采用默认设置。默认设置为:复位和起动输入高电平有效, 正交计数速率选择4×模式。执行HDEF指令后,就不能再改变计数器的设 置,除非CPU进入停止模式。 (3)执行HSC指令时,CPU检查控制字节和有关的当前值和预置值。
(3)时基中断
来自百度文库
定时中断用于支持一个周期性的活动。周期时间从1毫 秒至255毫秒,时基是1毫秒。使用定时中断0,必须在 SMB34中写入周期时间;使用定时中断1,必须在 SMB35中写入周期时间。 定时中断可以用来对模拟量输入进行采样或定期执行 PID回路。定时器T32/T96中断指允许对定时间间隔产生 中断。这类中断只能用时基为1ms的定时器T32/T96构 成。当中断被启用后,当前值等于预置值时,在S7-200 执行的正常1毫秒定时器更新的过程中,执行连接的中 断程序。
6.2.5 中断程序编程实训
1. 实训目的
(1)熟悉中断指令的使用方法。 (2)掌握定时中断设计程序的方法。
2. 实训内容
(1)利用T32定时中断编写程序,要求产生占 空比为50%,周期为4s的的方波信号。 (2)用定时中断实现喷泉的模拟控制,控制要 求。
3. 参考程序
产生占空比为50%,周期为4s的的方波信号, 主程序和中断程序如 连接文件夹\参考程序1.doc
2. 高速脉冲输出占用的输出端子
S7-200有PTO、PWM两台高速脉冲发生器。 PTO脉冲 串功能可输出指定个数、指定周期的方波脉冲(占空比 50%);PWM功能可输出脉宽变化的脉冲信号,用户可 以指定脉冲的周期和脉冲的宽度。若一台发生器指定给 数字输出点Q0.0,另一台发生器则指定给数字输出点 Q0.1。当PTO、PWM发生器控制输出时,将禁止输出 点Q0.0、Q0.1的正常使用;当不使用PTO、PWM高速 脉冲发生器时,输出点Q0.0、Q0.1恢复正常的使用,即 由输出映像寄存器决定其输出状态。
2. 高速计数器的工作模式
高速计数器有12种工作模式,模式0~模式2采用单路脉 冲输入的内部方向控制加/减计数;模式3~模式5采用单 路脉冲输入的外部方向控制加/减计数;模式6~模式8采 用两路脉冲输入的加/减计数;模式9~模式11采用两路 脉冲输入的双相正交计数。 S7-200 CPU224有 HSC0-HSC5六个高速计数器,每个 高速计数器有多种不同的工作模式。连接文件夹\表 61.docHSC0选用某个高速计数器在某种工作方式下工 作后,高速计数器所使用的输入不是任意选择的,必须 按系统指定的输入点输入信号。如HSC1。
2. 建立中断程序的方法
方法一:从“编辑”菜单→选择插入(Insert)→ 中断 (Interrupt)。 方法二:从指令树,用鼠标右键单击“程序块”图标并 从弹出菜单→选择插入(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由OFF→ON,Q0.0亮1s, 灭1s,如此循环反复直至I0.0由ON→OFF, Q0.0变为OFF。连接文件夹\练习题6-3.doc
3. 高速计数器指令的初始化
高速计数器指令的初始化的步骤如下: 连接文 件夹\表格65.doc
2. 用于脉冲输出(Q0.0或Q0.1)的特 殊存储器
(1)控制字节和参数的特殊存储器
每个PTO/PWM发生器都有连接文件夹\66.doc
(2)状态字节的特殊存储器
除了控制信息外,还有用于PTO功能的状态位, 如表6-12所示。程序运行时,根据运行状态使某 些位自动置位。可以通过程序来读取相关位的状 态,用此状态作为判断条件,实现相应的操作。
4. 输入并调试程序
用状态图监视程序的运行,并记录观察到的现象。
6.3 高速计数器与高速脉冲输出
前面讲的计数器指令的计数速度受扫描周期的影响,对比CPU扫描 频率高的脉冲输入,就不能满足控制要求了。为此,SIMATIC S7200系列PLC设计了高速计数功能(HSC),其计数自动进行不受 扫描周期的影响,最高计数频率取决于CPU的类型,CPU22x系列 最高计数频率为30KHz,用于捕捉比CPU扫描速更快的事件,并产生 中断,执行中断程序,完成预定的操作。高速计数器最多可设置12 种不同的操作模式。用高速计数器可实现高速运动的精确控制。 SIMATIC S7-200 CPU22x系列PLC还设有高速脉冲输出,输出频率 可达20KHz,用于PTO(输出一个频率可调,占空比为50%的脉冲) 和PWM(输出占空比可调的脉冲),高速脉冲输出的功能可用于对 电动机进行速度控制及位置控制和控制变频器使电机调速。
第6章 特殊功能指令
6.1 立即类指令
立即读 \立即输出
立即读指令用于输入I接点,立即读指令读取实际输入点 的状态时,并不更新该输入点对应的输入映像寄存器的 值。如:当实际输入点(位)是1时,其对应的立即触点 立即接通;当实际输入点(位)是0时,其对应的立即触 点立即断开。
立即输出指令用于输出Q线圈,执行指令时,立即将新 值写入实际输出点和对应的输出映像寄存器。
6.3.3 高速计数器的控制字和状态字
1. 控制字节
定义了计数器和工作模式之后,还要设置高速计 数器的有关控制字节。每个高速计数器均有一个 控制字节,它决定了计数器的计数允许或禁用, 方向控制(仅限模式0、1和2)或对所有其他模 式的初始化计数方向,装入当前值和预置值。控 制字节每个控制位的说明如表6-7所示。
6.2.3 中断程序
1. 中断程序的概念
中断程序是为处理中断事件而事先编好的程序。 中断程序不是由程序调用,而是在中断事件发生 时由操作系统调用。在中断程序中不能改写其他 程序使用的存储器,最好使用局部变量。中断程 序应实现特定的任务,应“越短越好”,中断程 序由中断程序号开始,以无条件返回指令 (CRETI)结束。在中断程序中禁止使用DISI、 ENI、HDEF、LSCR和END指令。
6.3.2 高速计数器的工作模式
1. 高速计数器的计数方式
(1)单路脉冲输入的内部方向控制加/减计数。即只有 一个脉冲输入端,通过高速计数器的控制字节的第3位 来控制作加计数或者减计数。该位=1,加计数;该位=0, 减计数。如图6-6所示内部方向控制的单路加/减计数 。 (2)单路脉冲输入的外部方向控制加/减计数。即有一 个脉冲输入端,有一个方向控制端,方向输入信号等于 1时,加计数;方向输入信号等于0时,减计数。如图67所示外部方向控制的单路加/减计数。连接文件夹\高速 计数器的技术.doc
6.3.1 占用输入/输出端子
1. 高速计数器占用输入端子
CPU224有六个高速计数器,其占用的输入端子如表6-5 所示。 连接文件夹\表6-5.doc 各高速计数器不同的输入端有专用的功能,如:时钟脉 冲端、方向控制端、复位端、起动端。 注意:同一个输入端不能用于两种不同的功能。但是高 速计数器当前模式未使用的输入端均可用于其他用途, 如作为中断输入端或作为数字量输入端。例如,如果在 模式2中使用高速计数器HSC0,模式2使用I0.0和I0.2, 则I0.1可用于边缘中断或用于HSC3。
6.2.2 中断指令
中断指令有4条,包括开、关中断指令,中断连接、 分离指令。指令格式如表6-4所示连接文件夹\表 60.doc。
1. 开、关中断指令
开中断(ENI)指令全局性允许所有中断事件。 关中断(DISI)指令全局性禁止所有中断事件, 中断事件的每次出现均被排队等候,直至使用全 局开中断指令重新启用中断。 PLC转换到RUN(运行)模式时,中断开始时 被禁用,可以通过执行开中断指令,允许所有中 断事件。执行关中断指令会禁止处理中断,但是 现用中断事件将继续排队等候。