根据OB86的局部变量诊断和显示有故障的PROFIBUS-DP从站(转)

已锁定

留恋你的气息

  • 帖子

    70
  • 精华

    0
  • 被关注

    4

论坛等级:游士

注册时间:2009-06-15

普通 普通 如何晋级?

根据OB86的局部变量诊断和显示有故障的PROFIBUS-DP从站(转)

987

0

2011-05-03 09:45:04

本文转自廖老师的博客
一直想编这样一个程序,用仿真调试完后,发现程序很短,功能很强,有较大的实用价值。
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
下图是5号和13号从站有故障时指示灯的状态。
----------------原图请看上面链接,权限不够不能贴图,呵呵。
使用16个字节(例如MB10~MB25),最多可以用画面上的指示灯显示120多个从站的状态。
根据OB86的局部变量诊断和显示有故障的PROFIBUS-DP从站(转) 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54615条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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