电工学习网

 找回密码
 立即注册
查看: 12552|回复: 0
打印 上一主题 下一主题

西门子plc编程各OB/FB/FC/DB/SFC功能块应用案例分析

[复制链接]
跳转到指定楼层
楼主
发表于 2019-4-28 11:21:34 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
1.OB块案例
西门子plc编程各OB/FB/FC/DB/SFC功能块应用案例分析
组织块代号
1.1组织循环(OB1)块 程序循环 OB 在 CPU 处于 RUN 模式时,周期性地循环执行。可在程序循环 OB 中放置控制程序的指令或调用其它功能块(FC 或 FB)。主程序(Main)为程序循环 OB ,要启动程序执行,项目中至少有一个程序循环 OB 。操作系统每个周期调用该程序循环 OB 一次,从而启动用户程序的执行。
1.2延时中断( OB20)块
西门子plc编程各OB/FB/FC/DB/SFC功能块应用案例分析
延时中断块
1、调用“SRT_DINT”指令启动延时中断;
2、当到达设定的延时时间,操作系统将启动相应的延时中断 OB ;
3、图例中,延时中断 OB20 中断程序循环 OB1 优先执行;
4、当启动延时中断后,在延时时间到达之前,调用“CAN_DINT”指令可取消已启动的延时中断。
1.3 循环中断 (OB30)块
循环中断 OB 在经过一段固定的时间间隔后执行相应的中断 OB 中的程序。
西门子plc编程各OB/FB/FC/DB/SFC功能块应用案例分析
循环中断块
1、plc 启动后开始计时;
2、当到达固定的时间间隔后,操作系统将启动相应的循环中断 OB ;
3、图例中,到达固定的时间间隔后,循环中断 OB30 中断程序循环 OB1 优先执行。
1.4硬件中断 (OB 40)块
硬件中断 OB 在发生相关硬件事件时执行,可以快速的响应并执行硬件中断 OB 中的程序(例如立即停止某些关键设备)。
西门子plc编程各OB/FB/FC/DB/SFC功能块应用案例分析
硬件中断块
使用硬件中断需要注意什么?
1、一个硬件中断事件只能分配给一个硬件中断 OB ,而一个硬件中断 OB 可以分配给多个硬件中断事件;
2、用户程序中最多可使用50个互相独立的硬件中断 OB ;数字量输入和高速计数器均可触发硬件中断;
3、中断 OB 和中断事件在硬件组态中定义;在 CPU 运行时可通过“ATTACH”和“DETACH”指令进行中断事件重新分配;
4、如果“ATTACH”指令的使能端 EN 为脉冲信号触发,在使用“ATTACH”指令进行中断事件重新分配后;若 CPU 的操作模式从 STOP 切换到 RUN 时执行一次,包括启动模式处于 RUN 模式时上电和执行 STOP 到 RUN 命令切换,则硬件中断 OB 和硬件中断事件将恢复为在硬件组态中定义的分配关系;
5、如果一个中断事件发生,在该中断 OB 执行期间,同一个中断事件再次发生,则新发生的中断事件丢失;
6、如果一个中断事件发生,在该中断 OB 执行期间,又发生多个不同的中断事件中,则新发生的中断事件进入排队,等待第一个中断 OB 执行完毕后依次执行。
1.5时间错误( OB80 )块
当 CPU 中的程序执行时间超过最大循环时间或者发生时间错误事件(例如,循环中断 OB 仍在执行前一次调用时,该循环中断 OB 的启动事件再次发生)时,将触发时间错误中断优先执行 OB80 。由于 OB80 的优先级最高,它将中断所有正常循环程序或其它所有 OB 事件的执行而优先执行。
西门子plc编程各OB/FB/FC/DB/SFC功能块应用案例分析
时间错误块
1.6诊断错误 (OB82)
可以为具有诊断功能的模块启用诊断错误中断功能来检测模块状态。
西门子plc编程各OB/FB/FC/DB/SFC功能块应用案例分析
诊断错误块
触发诊断错误中断时,CPU 如何响应?
1、启用诊断错误中断且 CPU 中创建了 OB82 ;
2、OB82 是唯一支持诊断错误事件的 OB ;一次只能报告一个通道的诊断错误;
3、如果多通道设备的两个通道出现错误,则第二个错误只会在以下情况触发 OB82 :第一个通道错误已清除,由第一个错误触发的 OB82 已执行完毕,并且第二个错误仍然存在;
4、事件的进入或离开都会触发一次 OB82 ;
5、触发 OB82 ,CPU 不会进入 STOP 模式。
2.FB块案例
【FB块】有时候也叫函数块是一种代码块,它将输入、输出和输入/输出参数永久地存储在背景数据块中,从而在执行块之后,这些值依然有效、。 所以函数块也称为“有存储器”的块。函数块也可以使用临时变量。 临时变量并不存储在背景数据块中,而用于一个循环。

单背景数据块
3.FC块案例
【FC块】函数可以使用全局数据块 (数据块用于存储用户数据。 数据块分为可由所有代码块访问的全局数据块,以及分配给特定功能块调用的背景数据块。) 永久性存储数据。
西门子plc编程各OB/FB/FC/DB/SFC功能块应用案例分析
功能块参数传递
4.DB块案例
【DB块】数据块用于存储程序数据。 因此,数据块包含由用户程序使用的变量数据。 全局数据块存储所有其它块都可使用的数据。数据块的最大大小因 CPU 的不同而各异。 可以以自己喜欢的方式定义全局数据块的结构。还可以选择使用 PLC 数据类型 (UDT) 作为创建全局数据块的模板。
西门子plc编程各OB/FB/FC/DB/SFC功能块应用案例分析
DB数据块
5.SFC&SFB块案例
【SFB】系统功能块是集成在 S7 CPU 中的功能块。SFB 是操作系统的一部分,不作为程序的一部分而被加载。同 FB 一样,SFB 也是“具有内存”的块。必须给 SFB 创建实例数据块,然后将它们作为程序的一部分下载到 CPU 中。
S7 CPU 给 SFB 提供下列功能:
• 通过已组态的连接进行通讯
• 集成的特殊功能 SFB29 "HS_COUNT"
【SFC】作系统,不能作为程序的一部分而被加载。同 FC 一样,SFC 也是“具有内存”的
块。
西门子plc编程各OB/FB/FC/DB/SFC功能块应用案例分析
S7 CPU 给 SFC 提供下列功能:
• 复制功能和块功能 • 检查程序 • 处理时钟和运行仪表 • 传送数据集 • 在多值计算模式中将事件从一个 CPU 传送到其它 CPU 中
• 处理日历和延时中断 • 处理同步错误、中断和异步错误 • 关于静态和动态系统数据的信息,例如,诊断
• 过程映像更新以及位域处理 • 寻址模块 • 分布式 I/O • 全局数据通讯
• 通过未组态的连接进行通讯

回复

使用道具 举报

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

本版积分规则

电工学习网 ( )

GMT+8, 2024-4-24 17:55

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

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