请教:OB86中SFC 13 "DPNRM_DG的使用问题

请教:
   CPU采用315-2DP,作为主站。采用DP通讯,从站为两个ET200。ET200—1地址设为3,诊断地址为1020,ET200-2地址为4,诊断地址为1022,在OB86中使用SFC13检测DP从站通讯状况。
现场遇到如下问题:当我把CPU处的DP头拔掉时,在线监控硬件组态,两个DP从站出现红色斜杠提示掉站,但是我右键CPU查看模块信息,缓冲区提示信息没有写入两个站都丢了,只是提示一个站丢了,不知道是否与我OB86中的程序有关,但是我监控故障时LW8的数值(通过MW52),每次都与其中一个DP诊断地址相同,搞不懂,我的本意是检测出当CPU处的DP头故障时,所有DP从站丢失的故障事件,不知道如何实现,请高手指点。
   另外,Step7 模拟软件中,模拟OB86时,有一项failure of Dp master system,是否为丢失所有从站呢?


缓冲区提示内容如下(两次拔掉DP头的故障信息)

模块 CPU 315-2 DP 的诊断缓冲区

订货号/描述                    组件                           版本                          
6ES7 315-2AH14-0AB0            硬件                           4                             
- - -                          固件                           V 3.3.2                       
Boot Loader                    固件扩展                       A 32.9.9                      

机架:                         0
插槽:                         2


序列号:S C-C2U355802012


事件 1 / 10:  事件 ID 16# 39C4
分布式 I/0:站 故障
受影响 DP 从站的地址:站编号:   4
DP 主站系统 ID:     1
DP 从站的逻辑基址:输入地址:  1022
DP 主站的逻辑基址:  2047
所需的 OB:机架故障 OB (OB86)
优先等级:26
外部错误, 进入的事件
12:44:12.877  2012-09-02


事件 2 / 10:  事件 ID 16# 39C4
分布式 I/0:站 故障
受影响 DP 从站的地址:站编号:   3
DP 主站系统 ID:     1
DP 从站的逻辑基址:输入地址:  1020
DP 主站的逻辑基址:  2047
所需的 OB:机架故障 OB (OB86)
优先等级:26
外部错误, 进入的事件
12:44:12.876  2012-09-02

ob86部分代码如下:
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\  
 L     LW     8
  T     MW    52
  NOP   0

  L     MW    52
  L     0
  ==I   
 JNB   m009
 S     M     70.2
 BEU   
m009: NOP   0
 R     M     70.2

   L     LW     8
      L     W#16#3FE                    //4#
      ==I   
      JC    m001
      L     LW     8
      L     W#16#3FC                    //3#
      ==I   
      JC    m011
m001: NOP   0
      L     #OB86_EV_CLASS
      L     B#16#39
      ==I   
      JC    m003
m002: NOP   0
      CALL  "DPNRM_DG"
       REQ    :=TRUE
       LADDR  :=LW8
       RET_VAL:=MW50
       RECORD :=P#DB1.DBX20.0 BYTE 29
       BUSY   :=M60.1
      A     M     60.1
      JC    m002
      R     "m70.0"
      BEU   
m003: NOP   0
      CALL  "DPNRM_DG"
       REQ    :=TRUE
       LADDR  :=LW8
       RET_VAL:=MW50
       RECORD :=P#DB1.DBX0.0 BYTE 29
       BUSY   :=M60.0
      A     M     60.0
      JC    m003
      S     "m70.0"
      BEU   
m011: NOP   0
      L     #OB86_EV_CLASS
      L     B#16#39
      ==I   
      JC    m013
m012: NOP   0
      CALL  "DPNRM_DG"
       REQ    :=TRUE
       LADDR  :=LW8
       RET_VAL:=MW50
       RECORD :=P#DB1.DBX20.0 BYTE 29
       BUSY   :=M60.3
      A     M     60.3
      JC    m012
      R     "m70.1"
      BEU   
m013: NOP   0
      CALL  "DPNRM_DG"
       REQ    :=TRUE
       LADDR  :=LW8
       RET_VAL:=MW50
       RECORD :=P#DB2.DBX0.0 BYTE 29
       BUSY   :=M60.2
      A     M     60.2
      JC    m003
      S     "m70.1"
      BEU

最佳答案

1、......缓冲区提示信息没有写入两个站都丢了,只是提示一个站丢了......?
从楼主给出缓冲区提示内容明确有:
、受影响 DP 从站的地址:站编号:   4
、受影响 DP 从站的地址:站编号:   3
2、参考相关文档:
《DP诊断功能块的使用》:
http://www.gongkong.com/Common/Details.aspx?c=1&m=4&l=6&Type=article&CompanyID=8-B9F2-1F2B4D8D438E&Id=9-AD59-3DB519CB0B83
《PROFIBUS-DP诊断完全解决方案》:
http://www.gongkong.com/common/Details.aspx?c=1&m=4&Type=datum&CompanyID=&Id=5-A925-308889FFFFFF
参见《使用OB8x诊断SIMATIC PLC》:
http://www2.ad.siemens.com.cn/download/Upload/AS/application/A0059.zip
STEP 7诊断硬件和网络故障的方法,参考:
http://blog.gkong.com/more.asp?name=liaochangchu&id=117288
http://falogix.com/?p=495

提问者对于答案的评价:
的确,如鸣侠所说,在同一秒触发了两次OB86,估计是我程序有问题,所以没有测试到

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc245034.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午11:43
下一篇 2018年12月1日 下午11:44

相关推荐