1 直接监控存在的问题程序中常常会多次调用 FB 块,比如相同的阀,操作都是一样,可以编写一个 FB 块,然后对管脚填写阀对应的信息,如下所示新建阀的功能 FB1
图 1 图 2 有两个阀需要控制,则调用两次即可
在实际运行中,想监控每个块内条件执行的情况,假如打开相应的 FB1,发现和实际执行的情况不同,块内执行的情况无法用来推断实际工作情况,如下所示监控阀 2 的执行
图 3 如上图,监控阀 2 执行情况,实际输入/输出为 TRUE,但是在 FB1 中监控看到执行条件未满足,和实际执行不符合,这是由于FB 块多次调用,相互之间影响导致,不处理无法监控到实际的执行情况
2 处理的方法关于上述程序监控和实际不一致有几种处理方法: 2
1 方法一可以在功能块调用前增加条件,假如需要监控哪个块,使能调用条件,其他的不使能,执行情况如下图 4 所示,对阀 2 的监控
图 4 如上图,需要监控阀 2 执行,使阀 1 的调用条件 M2
0 不满足,阀 2 的 M2
1 条件满足,可以监控 FB1,看到的是阀 2 的执行情况和实际的输入/输出一致
2 方法二功能块结合相应背景数据块,对比查看执行情况,以阀 2,背景数据块 DB2 对比监控,如下图 5 所示
图 5 如上图,FB1 中监控的输入(aa)和输出(bb)都是 FALSE,未执行,可以根据阀 2 的背景 DB2 看到,实际都是 TRUE,条件满足,执行输出
3 方法三使用“Call Environment”的功能,选择相应的背景 DB 块,在 FB 中监控,具体操作如下
首先模式选择,打开相应的功能 FB1,点击菜单中“Debug”,选择 “Operation”,进行操作模式选择
图 6 进入“Operation”窗口,默认的是“Process”模式,进行监控需要选择“Test”模式
图 7 选择“T