用SFC13诊断DP从站的实例程序 点击:1585 | 回复:2



hxinstar

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 1回
  • 年度积分:0
  • 历史总积分:59
  • 注册:2010年3月01日
发表于:2010-12-30 13:14:54
楼主
一般的系统都会有一个300或400PLC主站挂一个甚至多个DP从站,如ET200M,ET200S,ET200B等等,西门子的这些分布式IO从站性能优良,可靠耐用
而且具有强大的自诊断能力,但我们有很多应用他们时并没有完美的利用他们这
一点功能,一般他们在出现故障时我们都是通过PLC的状态灯LED来初步判断,更具体
的会通过读故障诊断缓冲信息来诊断,但这样需要借用编程PC,这对快速诊断和处理
显然不利,所以今天介绍一下用SFC13来读DP从站的诊断信息:
SFC13可以读取DP从站的诊断信息,诊断信息的结构可以在所用DP从站使用手册上获得
一般从站的前3字节数据信息结构是相同的,今天发个例子重点在于初识SFC13的用法
具体可以参照附件1《用于S7的系统软件和标准功能参考手册.rar》
一般最简单有效的方法是通过诊断诊断字节1是否为0来判断DP从站是否有错误,然后
可以在人机界面如西门子触摸屏上来显示出来,这样在发生故障时就能马上定位是哪个模块,当然还可以写程序进一步来分析SFC13读取的数据来判断出具体是哪个槽哪个模块发生了什么故障

注:

本程序来自于廖常初老师的《西门工业通信网络组态编程与故障诊断》
SFC13的LADDR为硬件组态时的诊断地址(点击DP总线,在下方的列表时出现的各从站的诊断地址,如2021,2022,此参数必须为十六进制,如2022对应16#3FE)
本程序是用STL编写,程序在OB86和OB82里编写着,比较简单
SFC13是异步执行的,也就是说要调用多次,直到执行完毕为止,可以通过查询BUSY参数位来判断是否执行完毕。程序里的MW 84为调用OB块的次数。#OB86_EV_CLASS=39时为故障发生,等于38时为故障处理OK,可以从STEP7帮助里获得OB里的局域变量的信息
欢迎大家加群交流:点击此处加入群
附件程序点击下载



jiushiaini19808

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 12回
  • 年度积分:0
  • 历史总积分:21
  • 注册:2015年9月20日
发表于:2015-09-24 20:06:35
1楼

下载下来,学习借鉴一下楼主的资料。

chxkdy001

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 87回
  • 年度积分:18
  • 历史总积分:898
  • 注册:2013年1月17日
发表于:2020-10-16 01:10:32
2楼

                           

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


热门招聘
相关主题

官方公众号

智造工程师