找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5188|回复: 18

PLC编程,组织块与中断块的配置原理和编程方法

 火.. [复制链接]
  • 打卡等级:即来则安
  • 打卡总天数:28
  • 打卡月天数:7
  • 打卡总奖励:7961
  • 最近打卡:2025-12-22 17:16:30

3317

主题

285

回帖

2万

积分

管理员

积分
24106
发表于 2019-4-14 09:33:44 | 显示全部楼层 |阅读模式
组织块OB是操作系统与用户程序之间的接口,组织块由操作系统调用,组织块中的程序是用户编写的。S7 PLC的组织块用来创建在特定的时间执行的程序或相应特定事件的程序,例如延时中断OB、外部硬件中断OB和错误中断OB等。
一、中断的基本概念
1、中断过程
中断处理用来实现对特殊内部事件或外部事件的快速响应,如果没有中断,CPU循环执行组织块OB1,因为除了背景组织块OB90以外,OB1的中断优先级最低,CPU检测到中断源的中断请求,操作系统在执行完当前程序的当前指令(即断点处)后,立即响应中断。CPU暂停正在执行的程序,调用中断源的中断组织块OB来处理,执行完中断组织块后,返回被中断的程序断点处继续执行原来的程序。
有中断事件发生时,如果没有下载相应的组织块,CPU将会进入STOP模式,即使生成和下载一个空的组织块,出现相应的中断事件时,CPU也不会进入STOP模式。
PLC的中断源可能来自I/O模块的硬件中断,或者来自CPU模块内部的软件中断,例如时间中断、延时中断、循环中断和编程错误引起的中断。
一个OB的执行被另一个OB中断时,操作系统对现场进行保护,被中断的OB的局部数据压入L堆栈(局部数据堆栈),被中断的断点处的现场信息保存在I堆栈(中断堆栈)和B堆栈(块堆栈)中。中断程序不是由逻辑块调用,而是在中断事件发生时由操作系统调用,因为不能预知系统何时调用中断程序,中断程序不能改写其他程序中可能正在使用的存储器,中断程序应尽可能的使用局部变量。编写中断程序应越短越好,减少中断程序的执行时间,减少对其他事件处理的延迟,否则可能引起主程序控制的设备操作异常。
2、组织块的分类
组织块只能由操作系统启动,它由变量声明表和用户编写的控制程序组成。
(1)启动组织块:用于系统初始化,CPU上电或操作模式切换到RUN时,S7-300执行OB100,S7-400根据组态的启动方式执行OB100~OB102中的一个。
(2)循环执行OB1:需要连续执行的程序放在OB1中,循环执行。
(3)定期执行的组织块:包括时间中断组织块OB10~OB17,和循环中断组织块OB30~OB38,可以根据设定的日期时间或时间间隔执行中断程序。
(4)事件驱动的组织块:延时中断OB20~OB23在过程事件出现后延时一定时间再执行中断程序,硬件中断OB40~OB47用于需要快速响应的过程事件,时间出现时马上中止当前正在执行的程序,执行对应的中断程序。diangon.com版权所有!异步错误中断0B80~OB87和同步错误中断OB121、OB122用来决定出现错误时系统如何响应。
3、中断的优先级:也就是组织块的优先级,如果在执行中断程序(组织块)时,又检测到一个终端请求,CPU将比较两个中断源的中断优先级,如果优先级相同,按照产生中断请求的先后次序进行处理。如果后者的优先级比正在执行的OB的优先级高,将中止当前的正在处理的OB,
4、对终端的控制:时间中断和延时中断有专用的允许处理中断和禁止中断的系统功能SFC。
SFC39“DIS_INT”用来禁止中断和异步错误处理,可以禁止所有中断,有选择的禁用某些优先级范围的中断,或者只禁止指定的某个中断;
SFC40“EN_INT”用来激活新的中断和异步错误处理,激活中断是指允许处理中断,做好了在中断事件出现时执行对应的组织块的准备。可以全部允许或有选择的允许。
SFC41“DIS_AIRT”延迟处理比当前优先级更高的中断和异步错误,直到用SFC42允许处理中断或当前OB执行完毕,SFC42“EN_AIRT”用来允许立即处理被SFC41暂时禁止的中断和异步错误,SFC41和SFC42配对使用。

二、启动组织块
1、CPU的启动模式和启动组织块
400的CPU有3中启动方式,暖启动、热启动和冷启动,300CPU只能暖启动,参见下图:
用户可以通过在启动组织块中编写程序,用来设置CPU的初始化操作,例如设置开始运行时的某些变量的初始值和输出模块的初始值等。
1)暖启动过程映像数据以及非保持的存储器位、定时器和计数器被复位。具有保持功能的存储器位、定时器、计数器和所有的数据块将保留原数值,执行一个OB100后,循环执行OB1,将模式选择开关从STOP切换到RUN,执行一次暖启动。
2)热启动:400CPU在RUN模式下电源突然丢失,很快又重新上电,将执行OB101,自动完成热启动,从上次RUN模式结束时程序被中断之处继续执行,不对计数器等复位。
3)冷启动:所有系统存储区均被清除,即复位为零,包括有保持功能的存储区。调用OB102后循环执行OB1。
2、循环中断组织块
循环中断组织块用于按精确时间间隔循环执行中断程序,例如周期性执行闭环控制系统PID控制程序,间隔时间从cpu从STOP切换到RUN开始计算。S7-300大多数只能使用OB35,其余CPU可以实用的循环中断OB的个数和CPU型号有关。时间间隔不能小于5ms。时间间隔过短,还没有执行完循环中断程序又开始调用它,将会产生时间错误时间,调用OB80,如果没有调用OB80,CPU将进入STOP。
举例说明:
硬件组态如下:采用CPU315-2DP,双击硬件组态中的CPU,打开属性对话框,由【周期性中断】选项卡可知只能使用OB35。
默认的循环周期为100ms,改成1000ms。
OB100程序


3、时间中断组织块
300CPU只能使用OB10,400CPU可以使用OB10~17,可以设置在某一个特定的日期时间产生一次时间中断,也可以设置从设定日期时间开始,周期性的重复产生中断,可以用SFC28~SFC30设置、取消和激活时间中断。
1)、基于硬件组态的时间中断
要求在到达设置的日期和时间时,用Q4.0自动启动某台设备。具体如下:
硬件组态:打开CPU属性中的“时刻中断”选项卡,设置执行启动设备的日期和时间,执行方式为“一次”。
生成OB10

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
工控课堂 www.gkket.com

0

主题

160

回帖

339

积分

注册会员

积分
339
发表于 2019-4-14 09:37:40 | 显示全部楼层
楼主加油,我们都看好你哦。
工控课堂 www.gkket.com

0

主题

134

回帖

255

积分

注册会员

积分
255
发表于 2019-4-14 09:38:30 | 显示全部楼层
在遇到你之前我对人世间是否有技术大佬保有怀疑,现在我是彻底被你征服了
工控课堂 www.gkket.com

0

主题

137

回帖

350

积分

注册会员

积分
350
发表于 2019-4-14 09:40:31 | 显示全部楼层
论坛有你更精彩!
工控课堂 www.gkket.com

0

主题

116

回帖

366

积分

注册会员

积分
366
发表于 2019-4-14 09:42:51 | 显示全部楼层
加油,加油,不要沉下去,我是最热贴
工控课堂 www.gkket.com

0

主题

198

回帖

409

积分

注册会员

积分
409
发表于 2019-4-14 09:45:24 | 显示全部楼层
我顶,我顶,我顶顶顶
工控课堂 www.gkket.com

0

主题

62

回帖

295

积分

注册会员

积分
295
发表于 2019-8-18 02:30:39 | 显示全部楼层
加油,加油,不要沉下去,我是最热贴
工控课堂 www.gkket.com

0

主题

94

回帖

163

积分

新手上路

积分
163
发表于 2019-8-28 19:13:58 | 显示全部楼层
我偷偷来水一下,顺便看看IV能不能插入视频。
下面(可能会)是我这个非常菜的PV随便做的蝴蝶~
重庆时时彩幸运飞艇北京pk10视频床是我自建的,完善以后应该会对论坛里的小伙伴们开放~

工控课堂 www.gkket.com

0

主题

130

回帖

386

积分

注册会员

积分
386
发表于 2020-10-9 18:40:41 | 显示全部楼层
我顶,我顶,我顶顶顶
工控课堂 www.gkket.com

0

主题

113

回帖

268

积分

注册会员

积分
268
发表于 2025-11-13 03:11:55 | 显示全部楼层
来凑个热闹,增加点人气~
工控课堂 www.gkket.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-23 07:15 , Processed in 0.109003 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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