登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:怎样给OB86编程?——DP网络故障诊断之六

点击:4685 回复:3


   下面是与网络通信故障有关的中断组织块:
   1.诊断中断组织块OB82
   具有诊断功能并启用了诊断中断的模块检测到错误,以及错误消失时,产生诊断中断,CPU的操作系统自动调用诊断中断组织块OB82。
   2.优先级错误中断组织块OB85
   由于通信或组态的原因,模块不存在或有故障,刷新过程映像表时I/O访问出错,CPU将会调用OB85。S7-300和S7-400默认的设置分别是发生I/O访问错误时不调用OB85和每个扫描循环周期都要调用一次OB85。另一种可选的设置是错误刚发生和刚消失时分别调用一次OB85。
   3.机架故障或分布式I/O的站故障中断(OB86)
   如果扩展机架、DP主站系统或分布式I/O出现故障,CPU将在故障出现和消失时分别调用一次OB86。
   4.I/O访问错误中断(OB122)
   CPU如果用PI/PQ区的地址访问有故障的I/O模块、不存在的或有故障的DP从站,CPU将在每个扫描循环周期调用一次OB122。
   出现硬件和网络故障时,如果没有生成和下载对应的组织块,CPU将切换到STOP状态。如果采用默认的设置,S7-300应生成和下载OB82、OB86和OB122;S7-400还应增加OB85。
   即使没有在这些OB中编写任何程序,出现上述故障时,CPU也不会进入STOP模式。但是可能不易察觉到故障的出现和发生的频率,反而会给系统的安全带来威胁。
   可以在上述OB中,用下面的程序记录故障出现的次数,并用人机界面显示。应设置一个将故障计数值清零的按钮。
     L     MW    10
     +     1
     T     MW    10
   可以用下面的程序调用SFC 20,将OB86的局部变量保存到某个数据块的数组中。
     CALL  "BLKMOV"    
      SRCBLK  :=P#L 0.0 BYTE 20
      RET_VAL :=MW54
      DSTBLK  :=DB86.ARY
   下图是DP从站出现故障时保存的OB86的局部数据。OB86的在线帮助给出了局部数据意义的详细解释。DBB0的16#39、16#38分别表示故障出现和消失。DBB1为#C3~C5时分别表示DP网络故障、DP从站故障和DP从站内部的故障。
http://blog.gkong.com/uploadfile4/20113288650397.jpg
   在DP从站故障时,DBW10中的16#0103表示DP网络编号为1,从站的站地址为3。DBD12和DBD16是调用OB的日期和时间。
   可以编写程序来分析局部数据,并用人机界面显示分析的结果。例如在某个DP从站出现故障时将画面上对应的指示灯点亮,在故障消失时将对应的指示灯关掉。
   可以用类似的方法编写OB82中的程序。但是遗憾的是OB82的局部数据并不包含与诊断故障有关的全部信息,例如并不包含AO模块输出电路开路和短路的故障信息。
 
11-03-28 08:08
其他:1.用模块上的LED诊断DP网络的故障——DP网络故障诊断之二
     http://m.gkong.com/bbs/278485.ashx
     2.使用FB 13诊断故障——DP网络故障诊断之三
     http://blog.gkong.com/more.asp?name=liaochangchu&id=134807
     3.使用FB 125诊断故障——DP网络故障诊断之四
     http://m.gkong.com/bbs/278715.ashx
     4.用报告系统错误功能诊断和显示故障——DP网络故障诊断之五
     http://m.gkong.com/bbs/278932.ashx
     5.怎样给OB86编程?——DP网络故障诊断之六
     http://m.gkong.com/bbs/278954.ashx
11-03-28 09:38
谢谢了!
11-03-29 15:56
该用户被锁定!
11-03-29 22:56

工控新闻

更多新闻资讯