回复:应用探讨——与网络故障诊断有关的OB的应用与编程

Automann

  • 帖子

    6168
  • 精华

    138
  • 被关注

    308

论坛等级:至圣

注册时间:2004-12-23

普通 普通 如何晋级?

发布于 2012-11-01 18:40:59

52楼

转发一个2011年在我的博客发的帖子:
根据OB86的局部变量诊断和显示有故障的PROFIBUS-DP从站
一直想编这样一个程序,用仿真调试完后,发现程序很短,有一定的实用价值。
S7-300/400的OB86的局部变量OB86_EV_CLASS(LB0)为16#39和16#38分别表示故障出现和故障消失。OB86_FLT_ID(LB1)为16#C3和16#C4分别表示DP主站系统(DP网络)故障和DP从站故障。LB10是DP主站系统的ID(网络的编号),LB11是有故障的DP从站的编号。
假设项目中只有一个DP网络,12个DP从站的编号分别为3~14,它们分别对应于M10.3~M11.6。
出现DP主站系统故障时(LW0为W#16#39C3),将M10.3~M11.6全部置为1(将W#16#F87F送MW10)。
某个DP从站出现故障时(LW0为W#16#39C4),将故障从站编号和M10.0的地址相加,计算出故障从站对应的地址,然后用间接寻址点亮故障从站对应的指示灯。
某个DP从站故障消失时(LW0为W#16#38C4),将故障从站编号和M10.0的地址相加,计算出故障从站对应的地址,然后用间接寻址熄灭故障从站对应的指示灯。
在SIMATIC管理器中生成一个人机界面的站点,双击站点中的画面1,打开WinCC flexible的项目,在画面中生成12个指示灯。它们分别通过M10.3~M11.6来显示3~14号从站的状态。
下面是OB86中的程序。
L W#16#39C3
L LW 0
==I
JCN m001 //不是主站系统故障则跳转
L W#16#F87F
T MW 10 //点亮3~14号从站的指示灯
m001: L W#16#39C4
L LW 0
==I
JCN m002 //不是从站故障出现则跳转
L LB 11 //故障从站编号送累加器1
L P#10.0 //起始地址送累加器1
+D
T LD 20 //故障从站地址送地址指针
S M [LD 20] //点亮故障从站对应的指示灯
m002: L W#16#38C4
L LW 0
==I
JCN m003 //不是从站故障消失则跳转
L LB 11 //故障从站编号送累加器1
L P#10.0 //起始地址送累加器1
+D
T LD 20 //故障从站地址送地址指针
R M [LD 20] //熄灭故障从站对应的指示灯
m003: NOP 0
使用16个字节(例如MB10~MB25),最多可以用画面上的指示灯显示120多个从站的状态。



追求完美
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。