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

中断处理用来实现对特殊内部事件或外部事件的快速响应。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.延时中断定时器中置位输出

时间: 2024-10-05 23:02:31

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

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

1.循环中断 循环中断组织块用于按一定时间间隔循环执行中断程序,例如周期性地定时执行某一段程序,间隔时间从STOP切换到RUN模式时开始计算. 循环中断组织块OB30~OB38默认的时间间隔和中断优先级如表所示.CPU318只能使用OB32和OB35,其余的S7-300CPU只能使用OB35.S7-400CPU可以使用的循环中断OB的个数与CPU型号有关. 循环中断组织块的时间间隔.优先级.OB号表如下: 示例:在I0.0的上升沿时启动OB35对应的循环中断,在I0.1的上升沿禁止OB35对应的

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

今天师傅给讲了讲做自己主动化控制的总体的思路,特进行一下记录,做个备忘. 1.需求分析 本次的项目是对楼宇循环供水的控制,整个项目须要完毕压力.压差.温度等的获取及显示.同一时候完毕电机的控制. 2.设计 使用西门子的Step7工具进行梯形图编程,完毕自己主动化控制. 使用西门子的WinCC5.5进行自己主动化人机界面的设计实现. 3.Step7进行编程的步骤 1)进行硬件组态 因为西门子的设备型号已经选定好,故依据实物的型号,先进行硬件组态,组态结果图例如以下: 注: 1.本图需和现场的实物连

西门子PLC学习笔记二十-(多重背景数据块的使用)

设某发动机组由1台汽油发动机和1台柴油机发动机组成,现要求用PLC控制发动机组,使各台发动机的转速稳定在设定的速度上,并控制散热风扇的起动和延时关闭.每台发动机均设置一个起动按钮和一个停止按钮. 程序设计如下: 1.程序模块 2.符号表 3.风扇控制程序 4.启动机控制 5.启动机组 注:1)在变量声明表内完成FB1类型的局部实例,"gasline_engine"."diesel_engine"的声明. 2)调用FB1局部实例时,不需要设置背景数据块,FB1的实例数

西门子PLC学习笔记十五-(数据块及数据访问方式)

一.数据块 数据块是在S7 CPU的存储器中定义的,用户可以定义多了数据块,但是CPU对数据块数量及数据总量是有限制的. 数据块与临时数据不同,当逻辑块执行结束或数据块关闭,数据块中的数据是会保留住的. 数据块分共享数据块.背景数据块.用户自定义数据块,下面分别介绍. 1.共享数据块(全局数据块) 其用于存储全局数据,所有逻辑块(OB.FC.FB)都可以访问共享数据块中的数据. 2.背景数据块(私有存储区) 其用做功能块(FB)的"存储器".FB的参数和静态变量安排在它的背景数据块中.

马哥学习笔记二十一——LVS DR模型

kernel parameter: arp_ignore: 定义接收到ARP请求时的响应级别: 0:只要本地配置的有相应地址,就给予响应: 1:仅在请求的目标地址配置请求到达的接口上的时候,才给予响应: arp_announce:定义将自己地址向外通告时的通告级别: 0:将本地任何接口上的任何地址向外通告: 1:试图仅向目标网络通告与其网络匹配的地址: 2:仅向与本地接口上地址匹配的网络进行通告: curl命令选项: --cacert <file> CA证书 (SSL) --capath &l

(转)【D3D11游戏编程】学习笔记二十一:Cube Mapping及其应用之一:天空盒的实现

(注:[D3D11游戏编程]学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 这一节讨论有关纹理映射的进阶内容:Cube Mapping. 1. 简介 单从名字上,就大概可以看出点端倪了,翻译成中文为立方体映射,因此肯定跟立方体有关系.确实,Cube Mapping就是使用六张正方形的图片来进行纹理映射的.这六张图片分别对应了一个立方体中的六个面.由于这个立方体是轴对齐的,因此每个面可以用坐标系中的六个轴方向来惟

西门子PLC学习笔记十三-(算术运算指令与控制指令)

今天在写一篇PLC的学习笔记,本篇将介绍PLC最基本的运算指令与控制指令,本篇将直接上截图. 1.基本算数运算指令 1)整数运算 2)长整数运算 3)实数运算 . STL编程示例(16位整数的算术运算) L IW10 //将输入字IW10装入累加器1的低字 L MW12 //将累加器1低字中的内容装入到累加器2的低字 //将存储字MW12装入累加器1的低字 +I //将累加器2低字和累加器1低字相加,结果保存到累加器1的低字中 +68 //将累加器1的低字中的内容加上常数68,结果保存到累加器1

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

本学习笔记系列都是采用CentOS6.x操作系统,KVM虚拟机的管理也是采用virsh方式,网上的很多的文章都基于ubuntu高版本内核下,KVM的一些新的特性支持更好,本文只是记录了CentOS6.x系列操作系统下KVM优化的点,有很多都是默认支持开启了的,除了采用virtio方式的磁盘IO,与网络IO接口优化之外,其它真是无需太多优化. 1. CPU性能优化 (1) 服务器或宿主机主板BIOS中开启Intel Virtualization Technology(简称VT), 如果主板支持In

西门子PLC学习笔记三(S7-300信号模块)

本篇为阳胜峰老师第二讲视频学习笔记 1.数字量模块 1)数字量输入模块 数字量输入模块将现场过程送来的数字信号电平转换成S7-300内部信号电平. A.数字量输入模块SM321(需要外接24V电源供电) SM321有四种类型的模块:直流16点输入.直流32点输入.交流16点输入.交流8点输入,其中常用的是直流的输入. 附图: B.数字量输出模块SM322(需要外接24V电源供电) 数字量输出模块SM322将S7-300内部信号电平转换成国产所要求的外表信号电平,可直接用于驱动电磁阀.接触器.小型