全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 工业控制 >

使用SFB54对OB82进行编程

时间:2023-01-29 14:17

人气:

作者:admin

标签: S7-1200  CPU  存储器  plc  FBD 

导读:S7-1200支持诊断错误中断,可以为具有诊断功能的模块启用诊断错误中断功能来检测模块状态。...

诊断错误 OB82

● 诊断错误 OB82 的功能

S7-1200支持诊断错误中断,可以为具有诊断功能的模块启用诊断错误中断功能来检测模块状态。

出现故障(进入事件),故障解除(离开事件)均会触发诊断中断 OB82 。当模块检测到故障并且在软件中使能了诊断错误中断时,操作系统将启动诊断错误中断,诊断错误中断 OB82 将中断正常的循环程序优先执行。

此时无论程序中有没有诊断中断 OB82,CPU 都会保持 RUN 模式,同时 CPU 的 ERROR 指示灯闪烁。

如果希望 CPU 在接收到该类型的错误时进入 STOP 模式,可以在 OB82 中加入 STP 指令使 CPU 进入 STOP 模式。

● 与诊断错误 OB82 相关的信息

当触发诊断错误中断时,通过 OB82 的接口变量可以读取相应的启动信息,可以帮助确定事件发生的设备、通道和错误原因。

OB82 的接口变量及启动信息参考下图1、2。

261fa2d6-9f30-11ed-bfe3-dac502259ad0.jpg

图1. OB82 接口变量

263acc5a-9f30-11ed-bfe3-dac502259ad0.jpg

图2. OB82 启动信息

● 诊断错误 OB 的使用示例:

例如:模拟量输出模块 SM1232 的电压输出通道,对于通道1使能短路诊断,当通道1出现短路错误时,随即触发诊断错误 OB82 ,此时可从 OB82 的启动参数中读取诊断信息。

1、按如下步骤创建诊断错误 OB82 。如图3。

26520dfc-9f30-11ed-bfe3-dac502259ad0.jpg

图3. 创建诊断错误 OB82

2、OB82 中编程如下图,创建地址为 MW100、MW102、MW104 的变量用于存储出现诊断错误时读取到的启动信息。如图4。

265eb07a-9f30-11ed-bfe3-dac502259ad0.jpg

图4. OB82 中编程

3、在硬件组态窗口中,选中模拟量输出模块,选择模拟量输出通道1的“启用短路诊断”功能。如图5。

266b9e34-9f30-11ed-bfe3-dac502259ad0.jpg

图5. 设置诊断功能

4、测试结果:程序下载后,在监控表中给“channel1”设置输出值5000,如果此时出现了短路故障,则将立即触发诊断错误功能。如图6。

26859a32-9f30-11ed-bfe3-dac502259ad0.jpg

图6. 测试结果

在 OB82 中使用 SFB 54 进行诊断

支持诊断的信号模块和功能模块将检测内部和外部错误,并生成诊断中断(可通过调用中断 OB 对其进行响应)。与错误事件有关的 OB 编码和开始信息提供有关错误原因和位置的初始信息。

然后可以通过在此错误 OB 中调用 SFB54(读取附加的中断信息)获得详细的错误事件信息。

SFB54 功能

SFB54“RALARM”将从支持诊断的所有模块读取中断数据,而不管这些模块是插入到中央机架中还是用在 PROFIBUS DP 或 PROFINET IO 中。

此信息将写入到输出参数 STATUS、ID、LEN、TINFO 和 AINFO。可以在 TINFO 目标区域中找到 OB 启动和管理信息。页眉信息和附加的中断信息(例如,发生短路)位于 AINFO 目标区域中。

通过在 OB82 中调用 SFB54 进行诊断

如果支持诊断的模块检测到错误,它将向 CPU 输出诊断中断请求(不管是进入事件还是离开事件)。这要求已对相关模块启用诊断中断。操作系统调用 OB82 以对诊断请求进行响应。

OB82 的局部变量包含逻辑基址和关于故障模块的四个字节的诊断数据。如果未对 OB82 进行编程,则 CPU 状态将更改为 STOP。

使用 SFB54 对 OB82 进行编程 :

要求:

1. 您已创建并命名了新的 STEP 7 项目。

2. 您已添加了带有 CPU 317-2 PN/DP 的 SIMATIC 300 站。

3. 您已在 CPU 317-2 PN/DP 的 PROFINET 子网上组态了 ET 200S。

执行以下步骤:

1. 生成可以存储中断数据的背景数据块(IDB)。为此 IDB 分配称“IDB_SFB54”。

2. 插入 OB82

– 在 STEP 7 中打开您的项目

– 选择 Insert(插入) -> S7 block(S7 块)-> Organization block(组织块),然后在对话框中输入块名称“OB82”。

3. 启动 LAD/STL/FBD 编辑器

– 双击“OB82”符号,打开 LAD/STL/FBD 编辑器。

4. 声明 SFB54 中的变量

– 在对话框中输入“CALL SFB54, DB54”以调用 SFB。

– 然后为 SFB54 的参数分配从下表中获取的值。

CALL SFB54, DB54 通过实例 DB54 调用 SFB54

MODE := 1 将设置所有输出参数(与中断触发组件无关)

F_ID := 不必进行设置,因为 F_ID 在模式 1 下不相关

MLEN := 1500 将要读取的记录信息的最大长度设置为 1500 字节

NEW := M1000.1 如果已接收新记录,则存储器位 1000.1 = 1

STATUS := MD10 MD10 包含错误代码

ID := MD16 存储器双字 16 包含模块或子模块的逻辑起始地址,该地址用于接收中断。

LEN := MW24 存储器字 24 返回读取的记录信息的长度

TINFO := P#M 500.0 BYTE 32 指向 MB500 的 ANY 指针,长度为 32 个字节

AINFO := P#M 1500.0 BYTE 1431 指向 MB1500 的 ANY 指针,长度为 1431 个字节

在标志字节 500 或 1500 处开始,输入 TINFO 和 AINFO 变量中返回信息,长度为 32 字节或 1431 字节。TINFO 和 AINFO 目标区域的数据存储器未完全分配,取决于哪个 OB 调用 SFB54。





审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信