第6章特殊功能指令
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.2.2 中断指令
中断指令有4条,包括开、关中断指令,中断 连接、分离指令。指令格式如下表所示。
LAD
STL
ENI
操作数及 数据类型
无
DISI 无
ATCH INT,EVNT
INT:常量 0-127 EVNT:常量,CPU
224: 0-23; 27-33 INT/EVNT数据类型
:字节
DTCH EVNT
2. 中断优先级和排对等候
优先级是指多个中断事件同时发出中断请求时, CPU对中断事件响应的优先次序。S7-200规定的 中断优先由高到低依次是:通信中断、I/O中断和 定时中断。每类中断中不同的中断事件又有不同 的优先权,如表6-2所示。
一个程序中总共可有128个中断。S7-200在中断各 自的优先级组内按照先来先服务的原则为中断提 供服务。在任何时刻,只能执行一个中断程序。 一旦一个中断程序开始执行,则一直执行至完成。 不能被另一个中断程序打断,即使是更高优先级 的中断程序。中断程序执行中,新的中断请求按 优先级排队等候。中断队列能保存的中断个数有 限,若超出,则会产生溢出。中断队列的最多中 断个数和溢出标志位如表6-3所示
(3)时基中断
定时中断用于支持一个周期性的活动。周期时间 从1毫秒至255毫秒,时基是1毫秒。使用定时中 断0,必须在SMB34中写入周期时间;使用定时 中断1,必须在SMB35中写入周期时间。
定时中断可以用来对模拟量输入进行采样或定期 执行PID回路。定时器T32/T96中断指允许对定时 间间隔产生中断。这类中断只能用时基为1ms的 定时器T32/T96构成。当中断被启用后,当前值 等于预置值时,在S7-200执行的正常1毫秒定时 器更新的过程中,执行连接的中断程序。
EVNT:常量, CPU 224: 023; 27-33
数据类型:字节
1. 开、关中断指令
开中断(ENI)指令全局性允许所有中断事 件。关中断(DISI)指令全局性禁止所有中 断事件,中断事件的每次出现均被排队等 候,直至使用全局开中断指令重新启用中 断。
PLC转换到RUN(运行)模式时,中断开 始时被禁用,可以通过执行开中断指令, 允许所有中断事件。执行关中断指令会禁 止处理中断,但是现用中断事件将继续排 队等候。
2. 建立中断程序的方法
方法一:从“编辑”菜单→选择插入(Insert)→ 中断(Interrupt)。
方法二:从指令树,用鼠标右键单击“程序块” 图标并从弹出菜单→选择插入(Insert)→ 中断 (Interrupt)。
方法三:从“程序编辑器”窗口,从弹出菜单用 鼠标右键单击插入(Insert)→ 中断(Interrupt)。
立即输出指令用于输出Q线圈,执行指令时,立即将 新值写入实际输出点和对应的输出映像寄存器。
立即类指令与非立即类指令不同,非立即指令仅将 新值读或写入输入/输出映像寄存器。
表6-1 立即类指令的格式及说明
6.2 中断指令
6.2.1 中断源
1. 中断源的类型
中断源即发出中断请求的事件,又叫中 断事件。为了便于识别,系统给每个中断源 都分配一个编号,称为中断事件号。S7-200 系列可编程控制器最多有34个中断源,分为 三大类:通信中断、输入/输出中断和时基中 断。
主程序
LD SM0.1
//首次扫描时,
Hale Waihona Puke Baidu
ATCH INT_0 2 //将INT_0 和EVNT2连接
ENI
//并全局启用中断
LD SM5.0 //如果检测到I/O错误,
DTCH 2
//禁用用于I0.1的上升沿中断
(本网络为选项)
LD M5.0
// 当M5.0=1时
DISI
//禁用所有的中断
【例6-2】编程完成采样工作,要求每10ms采样一 次。
2. 中断连接、分离指令
中断连接指令(ATCH)指令将中断事件 (EVNT)与中断程序号码(INT)相连接, 并启用中断事件。
分离中断(DTCH)指令取消某中断事件 (EVNT)与所有中断程序之间的连接,并 禁用该中断事件。
注意:一个中断事件只能连接一个中断程 序,但多个中断事件可以调用一个中断程 序。
程序编辑器从先前的POU显示更改为新中断程序, 在程序编辑器的底部会出现一个新标记,代表新 的中断程序。
6.2.4 程序举例
【例6-1】编写由I0.1的上升沿产生的中断事 件的初始化程序。
分析:查表6-2可知,I0.1上升沿产生的中断 事件号为2。所以在主程序中用ATCH指令 将事件号2和中断程序0连接起来,并全局 开中断。程序如下图所示
6.2.3 中断程序
1. 中断程序的概念
中断程序是为处理中断事件而事先编好的 程序。中断程序不是由程序调用,而是在 中断事件发生时由操作系统调用。在中断 程序中不能改写其他程序使用的存储器, 最好使用局部变量。中断程序应实现特定 的任务,应“越短越好”,中断程序由中 断程序号开始,以无条件返回指令 (CRETI)结束。在中断程序中禁止使用 DISI、ENI、HDEF、LSCR和END指令
(1)通信中断
在自由口通信模式下,用户可通过编程来 设置波特率、奇偶校验和通信协议等参数。 用户通过编程控制通讯端口的事件为通信 中断。
(2)I/O中断
I/O中断包括外部输入上升/下降沿中断、 高速计数器中断和高速脉冲输出中断。S7200用输入(I0.0、I0.1、I0.2或I0.3)上升 /下降沿产生中断。这些输入点用于捕获 在发生时必须立即处理的事件。高速计数 器中断指对高速计数器运行时产生的事件 实时响应,包括当前值等于预设值时产生 的中断,计数方向的改变时产生的中断或 计数器外部复位产生的中断。脉冲输出中 断是指预定数目脉冲输出完成而产生的中 断。
第6章 特殊功能指令
6.1 立即类指令 6.2 中断指令 6.3 高速计数器与高速脉冲输出 6.4 PID控制 6.5 时钟指令
6.1 立即类指令
立即读 \立即输出
立即读指令用于输入I接点,立即读指令读取实际输 入点的状态时,并不更新该输入点对应的输入映像 寄存器的值。如:当实际输入点(位)是1时,其对 应的立即触点立即接通;当实际输入点(位)是0时, 其对应的立即触点立即断开。