0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用SFB54对OB82进行编程

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-01-29 14:17 次阅读

诊断错误 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。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • plc
    plc
    +关注

    关注

    5008

    文章

    13167

    浏览量

    462169
  • 存储器
    +关注

    关注

    38

    文章

    7455

    浏览量

    163616
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10827

    浏览量

    211178
  • FBD
    FBD
    +关注

    关注

    0

    文章

    14

    浏览量

    7707
  • S7-1200
    +关注

    关注

    11

    文章

    331

    浏览量

    17921

原文标题:西门子PLC 在 OB82 中使用 SFB 54 进行诊断V1.23

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MPC82LE52-54 8-bit micro-controller

    ) 8通道8位ADC, MPC82x54是10位ADC 对于 PDIP 20(MPC82x5xAE),SOP 20(MPC82x5xAS),TSSOP 20(MPC82x5xAT),有
    发表于 03-07 16:29

    82c54的相关问题

    本帖最后由 07611128 于 2021-12-19 06:34 编辑 本人大二,只学习了数电模电,在做数字分频的过程中,在网上找到了这款芯片,可编程的计数器,不太懂程序怎样实现具体的分频,比如实现2分频的具体程序,求大神说一下Ps:有单片机基础,只需要82c54
    发表于 01-19 22:26

    关于51单片机中应用m82c54计数器的问题,

    本帖最后由 懒惰的魔方 于 2016-12-19 14:03 编辑 单片机晶振12MHz,因此下面函数中,没有做延时处理.m82c54WR的作用是写控制字,写初值. 82c54有三路16位
    发表于 12-19 13:46

    西门子PLC停机的原因有哪些?

    和四字节的故障模块的诊断数据。如果OB82尚未编程,则CPU转为STOP模式。可以使用SFC 39至42禁用或延迟,并重新启用诊断中断OB。  OB121
    发表于 12-21 17:06

    82C54 pdf datasheet (CMOS Prog

    The Intersil 82C54 is a high performance CMOSProgrammable Interval Timer manufactured using
    发表于 01-08 18:43 26次下载

    CHMOS可编程时间间隔定时器芯片82C54

    82C54是专为Intel系列微处理机而设计的一种可编程时间间隔定时器/计数器,它是一种通用芯片,在系统软件中可以把多级定时元素当成输入/输出端口中的一个阵列看待。1.  与
    发表于 06-12 22:13 84次下载

    如何检测S7-300 S7-400带断线诊断功能的模拟量模块

    通过诊断中断组织块OB82可以检测到有断线故障的模拟量模块的起始逻辑地址,得到此起始逻辑地址后,在OB82中调用SFC51可以判断出具体是哪一个通道断线。现以S7-300 PLC为例说明如下
    发表于 06-30 13:45 76次下载

    基于82C54的测时设备研制

    本文介绍了一种高精度、宽范围的测时设备的设计技术。运用82C54的工作方式2作高精度时间测试,每片82C54的三个计数器前后级连,组成48位的计数器。选用AT89S52单片机作为MCU进行管理,
    发表于 07-30 17:18 24次下载

    网络时段诊断及HMI应用

    。 检测到的错误包括: 部分PROFIBUS 上的节点故障、模块断线、IO通道短路、通道过载以及模拟量模块电源故障等。OB82 的局部变量中含有故障模板四个BYTE 的诊断数据,如果OB82编程,CPU 变为STOP 方式。
    发表于 10-17 11:40 0次下载
    网络时段诊断及HMI应用

    基于S7-300根据硬件指示灯排查故障

    CPU在运行模式,PROFIBUS-DP.上卸载或安装模块,但是没有调用OB86,或通过GSD文件集成没有调用OB82;具有诊断功能的模块报告诊断中断,没有调用OB82;在过程映像更新期间访问不存在的块或有故障的块,或连接器松动
    发表于 10-18 15:17 11次下载
    基于S7-300根据硬件指示灯排查故障

    如何应用优先级错误处理组织块(OB85)

    优先级错误组织块(OB85) 只要发生下列事件之一,CPU的操作系统即调用OB85: 1.尚未装载的OB (OB8、 OB81、
    的头像 发表于 10-14 16:18 3972次阅读

    PROFINET IO中的诊断机制

    当检测到通道故障(例如,模拟输入处短路)时,IO 设备将向 CPU 输出诊断中断。操作系统通过调用诊断 DB(例如,OB82进行响应。此 OB 的局部变量包含故障设备的逻辑基址,并包含长度为四个字节的诊断数据。
    的头像 发表于 01-18 11:18 2638次阅读
    PROFINET IO中的诊断机制

    如何编程使用OB组织块

    如何编程使用OB组织块.
    发表于 04-25 10:20 9次下载

    西门子PLC在OB82中使用SFB54进行诊断

    S7-1200支持诊断错误中断,可以为具有诊断功能的模块启用诊断错误中断功能来检测模块状态。
    发表于 03-02 09:29 1584次阅读

    浅谈西门子暖启动、热启动、冷启动

    类似的中断组织块还有OB80;处理时间故障 OB82;诊断中断OB83 、OB84 、OB85 、OB
    发表于 07-10 10:15 702次阅读