中断处理用来实现对特殊内部事件或外部事件的快速响应。CPU检测到中断请求时,立即响应中断,调用中断源对应的中断程序(OB)。执行完中断程序后,返回被中断的程序中。

中断源类型主要有:I/O模块的硬件中断,软件中断,例如日期时间中断、延时中断、循环中断和编程错误引起的中断等。

1.日期时间中断组织块

日期时间中断组织块有OB10~OB17.CPU318只能支持OB10和OB11,其余的S7-300CPU只支持OB10.S7-400支持的日期时间中断OB的个数与CPU的型号有关。

日期时间中断可以在某一特定的时间和日期执行一次,也可以从设定的日期时间开始,周期性地重复执行,例如每分钟、每小时、每天、甚至每年执行一次。

1)设置日期时间中断有两种方法

A.采用SFC28“SET_TINT”和SFC30“ACT_TINT”设置和激活日期时间中断。

B.在硬件组态界面,通过右击CPU模块,设置选项卡”Time-Of-Day Interrupts"进行设置。在“Time-Of-Day Interrupts”选项卡中设置好时间,同时选择“Active”激活多选框,将硬件下载到CPU中,即可实现日期时间中断的自动启动。

C.结合A、B两种方法,使用B中的方法,但是不勾选“Active”复选框,用来设置中断循环周期及相关中断参数;在代码中使用SFC30“ACT_TINT"来激活日期时间中断。

2)查询日期时间中断

使用SFC31”ORY_TINT“可以查询出程序中都设置了哪些日期时间中断,以及这些中断什么时候发生。SFC31输出的状态字节如下表所示:

3)禁止和激活日期时间中断

SFC28用于取消日期时间中断、SFC29用于重新设置时间中断、SFC30用于激活日期时间中断。

在调用SFC28设置循环周期”OB10_PERIOD_EXE"时,可以设置以下参数:

W#16#0000(仅执行一次)、W#16#0201(每分钟执行一次)、W#16#0401(每小时执行一次)、W#16#1001(每天执行一次)、W#16#1201(每周执行一次)、W#16#1401(每月执行一次)、W#16#1801(每年执行一次)和W#16#2001(月末执行一次)

4)下面通过一个示例来说明日期中断的使用

例:在I0.0的上升沿时启动日期时间中断OB10,在I0.1为1时禁止日期时间中断,每次中断使用MW2加1。从2015年2月19日8时开始,每分钟中断一次,每次中断MW2被加1.

本程序使用了SFC3“D_TOD_DT"用于将日期和时间整合成日期时间类型,程序编写如下:

a.日期时间中断设置及激活功能FC1

b.OB块调用功能FC1

c.OB10实现NW2增1功能

d.程序运行后效果图

2.延时中断

PLC中的普通定时器的工作与扫描工作方式有关,其定时精度受到不断变化的循环周期的影响。使用延时中断可以获得精度较高的延时,延时中断以ms为单位定时。

S7提供4个延时中断OB(OB20~OB23),CPU可以使用延时中断OB的个数与CPU的型号有关,S7-300(不含CPU318)只能使用OB20,。用SFC32”SRT_DINT"启动,经过设定的时间触发中断,调用SFC32指定的OB。延时中断可以用SFC33“CAN_DINT"取消。用SFC34”ORY_DINT"查询延时中断的状态,它输出的状态字节STATUS如表所示。

例:在I0.0的上升沿用SFC32启动延时中断OB20,10s后OB20被调用,在OB20中将Q4.0置位,并立即输出。在延时过程中如果I0.1由0变为1,在OB1中用SFC33取消延时中断,OB20不会再被调用。I0.2由0变为1时Q4.0被复位。

程序编写如下:

1)OB块设置延时中断定时器

2.延时中断定时器中置位输出

程序代码可以在此下载。

西门子PLC学习笔记二十一-(中断处理一)相关推荐

  1. 西门子PLC学习笔记二-(工作记录)

    今天师傅给讲了讲做自己主动化控制的总体的思路,特进行一下记录,做个备忘. 1.需求分析 本次的项目是对楼宇循环供水的控制,整个项目须要完毕压力.压差.温度等的获取及显示.同一时候完毕电机的控制. 2. ...

  2. python3.4学习笔记(二十一) python实现指定字符串补全空格、前面填充0的方法

    python3.4学习笔记(二十一) python实现指定字符串补全空格.前面填充0的方法 Python zfill()方法返回指定长度的字符串,原字符串右对齐,前面填充0. zfill()方法语法: ...

  3. Mr.J-- jQuery学习笔记(二十一)--模拟微博页面

    先看之前的节点操作方法:Mr.J-- jQuery学习笔记(二十)--节点操作方法 Mr.J-- jQuery学习笔记(五)--属性及属性节点 Mr.J-- jQuery学习笔记(十一)--事件委托  ...

  4. kvm虚拟化学习笔记(二十一)之KVM性能优化学习笔记

    本学习笔记系列都是采用CentOS6.x操作系统,KVM虚拟机的管理也是采用virsh方式,网上的很多的文章都基于ubuntu高版本内核下,KVM的一些新的特性支持更好,本文只是记录了CentOS6. ...

  5. 西门子PLC学习笔记十一-(装入与传送指令)

    S7-300/400指令有:装入与传送指令.比较指令.算术运算指令.字逻辑运算指令.移位指令.逻辑控制指令.程序控制指令.主控指令等. 1.装入与传送指令(不能用于梯形图编程) 装入传送指令实现了各种 ...

  6. 西门子PLC学习笔记四-(控制三项异步电动机的启动停止)

    本篇是学习S7-300的一个小程序,用于对PLC开发简单直观的认识. 1.三项异步电动机电路图 2.PLC控制接线图 从图中可以看出控制按钮接PLC 信号模块SM的I0.0.I0.1端口,输出信号从Q ...

  7. linux驱动开发学习笔记二十一:异步通知

    一.异步通知简介 我们首先来回顾一下"中断",中断是处理器提供的一种异步机制,我们配置好中断以后就可以让处理器去处理其他的事情了,当中断发生以后会触发我们事先设置好的中断服务函数, ...

  8. 西门子逻辑运算指令_西门子PLC学习笔记七-(位逻辑指令)

    位逻辑指令处理的对象为二进制位信号.存储在状态字"RLO"中. 1.触点与线圈指令 1)常开触点 在PLC中规定:操作数为1,则常开触点"动作(闭合)":操作数 ...

  9. opencv学习笔记二十一:使用HSV颜色空间实现颜色识别

    一.颜色空间介绍        RGB 颜色空间是大家最熟悉的颜色空间,即三基色空间,任何一种颜色都可以由该三种 颜色混合而成.然而一般对颜色空间的图像进行有效处理都是在 HSV 空间进行的,HSV( ...

最新文章

  1. 文本挖掘之文本相似度判定
  2. css3轮播不用jpuery_15款效果很酷的最新jQuery/CSS3特效
  3. 2018春节前新马泰游
  4. 解决VMware虚拟机网络时长中断的问题
  5. 《企业迁云实战》——2.4 云端实践
  6. 2018-2019-1 20189204《Linux内核原理与分析》第一周作业
  7. arcgis pro利用python进行空间插值
  8. mybatis order by concat用法
  9. 华硕天选2 安装3060显卡驱动方法
  10. 关于TikTok环境伪装度检测,whoer和上网大师app的对比
  11. excel行列互换_excel行列互换方法流程
  12. Thematic与Continuous区别
  13. 魔术表演的核心秘密(一)——开篇简介
  14. 昨天学会2件事,一件是multisim 添加自定义模型或导入模型文件,包括opa695和9013等三极管
  15. Android 长度单位(dp、sp、px、in、pt、mm)详解
  16. Linux中set -x 与 set +x命令的使用
  17. 如何搭建一个机器人控制系统
  18. html表白程序源码 html生日快乐网站制作 HTML生日快乐代码 表白程序源码html 程序员表白代码html
  19. 用python代码做个圣诞树,送给心爱的她
  20. Latex 各种bib style列举

热门文章

  1. h5向app传递参数
  2. 突发!Facebook一员工在公司总部跳楼身亡,传是程序员;微软开源新字体Cascadia Code;华为下一个研究前沿是AI...
  3. 详解SQL的四种连接-左外连接、右外连接、内连接、全连接
  4. Android 手机运行 传奇4 (MIR4)
  5. JDK、Tomcat安装步骤
  6. 动态设置View的宽高、宽高比例(设置ViewPager的高度,宽高比例为2:1)
  7. 千江有水千江月,万里无云万里天
  8. 三十多岁女计算机考研,三十岁考研女
  9. kotlin和java和hashmap转换
  10. Windows 10 远程桌面记住密码 (mstsc 怎么记住密码)