loveplc

 找回密码
 立即注册
搜索
热搜: 活动 交友
查看: 207|回复: 0

SMART200中断指令

[复制链接]

284

主题

317

帖子

986

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
986
发表于 2019-9-29 09:05:43 | 显示全部楼层 |阅读模式
S7-200 SMART设置了中断功能,用于实时控制、高速处理、通信和网络等复杂和特殊的控制任务。
S7-200 SMART 系列可编程控制器最多有38个中断源(9个预留),分为三大类:通信中断、输入/输出(I/O)中断和时基中断,S7-200 SMART规定的中断优先由高到低依次是:通信中断、I/O中断和时基中断。每类中断中不同的中断事件又有不同的优先权。
中断指令主要包括以下几种:
  • ATCH:中断连接,连接某中断事件所要调用的程序段。
  • ENI:全局允许中断,开放中断处理功能。
  • DISI:全局禁止中断,禁止处理中断服务程序,但中断事件仍然会排队等候。
  • DTCH:中断分离,将中断事件号与中断服务程序之间的关联切断,并禁止该中断事件。
  • RETI:条件中断返回,根据逻辑操作的条件,从中断服务程序中返回。
  • CLR_EVNT:清空中断队列。
与S7-200相比,下表所示中断事件号为S7-200 SMART 所特有的 :
表1.S7-200 SMART 特有中断事件号
事件号
说明
CR40
SR20/SR40/ST40/SR60/ST60
35
上升沿,信号板输入0
N
Y
36
下降沿,信号板输入0
N
Y
37
上升沿,信号板输入1
N
Y
38
下降沿,信号板输入1
N
Y
中断指令的有效操作数如下:
表2.中断指令的有效操作数
输入/输出
数据类型
操作数
INT
BYTE
常数: 中断例程编号(0 到 127)
EVNT
BYTE
常数: 中断事件编号(CPU CR40: 0-13、16-18、21-23、27、28 和 32CPU SR20、SR40、ST40、SR60、ST60: 0-13、16-18、21-28、32和 35-38)
中断程序实例
本例使用定时中断实现对100ms定时周期计数。我们使用特殊存储器定时中断0。由定时中断0的中断事件号为10,确定周期的特殊寄存器字节时SMB34。
该程序主要包括以下几部分:
  • SBR_0:中断初始化程序;
  • INT_0:中断服务程序;
在主程序中调用SBR_0,如下图所示:
图1.SBR_0的调用
其中,初始化中断程序秩序调用一次,因此用SM0.1作为条件。
SBR_0编程如下图所示:
图2.SBR_0编程
其中,写入定时周期数100ms,连接10号中断事件即定时中断0,指定中断服务程序名称为INT_0。
INT_0编程如下图所示:
图3.INT_0编程
其中,用双字长的整数加法对VD200自身加1。
注意:中断程序的初始化只需执行一次。也可根据需要重新定义中断事件。
使用状态表监视,VD200的内容就是100ms周期到达的次数,如下图所示:
图4.状态表监视

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

京ICP备17066637号-1|京公网安备|手机版|Archiver|小黑屋|loveplc

GMT+8, 2025-12-6 14:04 , Processed in 0.020857 second(s), 18 queries .

Powered by Discuz! Comsenz Inc.

© 2019 技高志远.

快速回复 返回顶部 返回列表