如果FB块被多次调用,如何监控单个块的执行情况?

B站影视 2024-11-28 08:26 3

摘要:1 直接监控存在的问题程序中经常会多次调用FB块,比如相同的阀,操作都是一样,可以编写一个FB块,然后对管脚填写阀对应的信息,如下所示新建阀的功能FB1。

本文介绍了FB块多次调用及如何监控单个块的执行情况。

1 直接监控存在的问题
程序中经常会多次调用FB块,比如相同的阀,操作都是一样,可以编写一个FB块,然后对管脚填写阀对应的信息,如下所示新建阀的功能FB1。

图1

有两个阀需要控制,则调用两次即可。
在实际运行中,想监控每个块内条件执行的情况,如果打开相应的FB1,发现和实际执行的情况不同,块内执行的情况无法用来判断实际工作情况,如下所示监控阀2的执行。

如上图,监控阀2执行情况,实际输入/输出为TRUE,但是在FB1中监控看到执行条件未满足,和实际执行不符合,这是由于FB块多次调用,相互之间影响导致,不处理无法监控到实际的执行情况。

2 处理的方法
关于上述程序监控和实际不一致有几种处理方法:

2.1 方法一
可以在功能块调用前增加条件,如果需要监控哪个块,使能调用条件,其他的不使能,执行情况如下图4所示,对阀2的监控。

如上图,需要监控阀2执行,使阀1的调用条件M2.0不满足,阀2的M2.1条件满足,可以监控FB1,看到的是阀2的执行情况和实际的输入/输出一致。

2.2 方法二
功能块结合相应背景数据块,对照查看执行情况,以阀2,背景数据块DB2对照监控,如下图5所示。

如上图,FB1中监控的输入(aa)和输出(bb)都是FALSE,未执行,可以根据阀2的背景DB2看到,实际都是TRUE,条件满足,执行输出。

2.3 方法三
使用“Call Environment”的功能,选择相应的背景DB块,在FB中监控,具体操作如下。
首先模式选择,打开相应的功能FB1,点击菜单中“Debug”,选择 “Operation”,进行操作模式选择。

进入“Operation”窗口,默认的是“Process”模式,进行监控需要选择“Test”模式。

选择“Test”模式后,“Debug”菜单下的“Call Environment”不是灰色,可以选择,如下所示。

选择“Call Environment”进入设置“Call Environment of the Block”窗口。

勾选调用路径,如例子中FB1在OB1中调用,勾选打开数据块,这里选择的是“Instance DB Number”,FB1的背景数据块,如下图,需要对阀2的执行监控,则将“Instance DB Number”为2(阀2对应的背景数据块号),然后点击OK,设置如下。

点击“OK”后退回到FB1窗口,然后点击“

”在线,则可以监控阀2的执行情况。

如果要监控其他块的调用情况,像上面的操作修改“Instance DB Number ”号即可,注意修改前需要进入离线状态,否则无法操作。如需要监控阀1的执行,将“Instance DB Number”为1(阀对应的背景数据块号),如下图。

注意:方法三的操作位置在功能内,如例子中的FB1中,操作模式需要改成“Test”。

2.4 方法四
直接用“Monitor with Call-Up Path”的快捷键进行监控,操作如下。
首先,进入功能FB的调用处,如例子FB1在OB1中调用,打开OB1,然后选择“Debug”菜单,进入“Operation”窗口,将操作模式改成“Test ”。

操作模式选择“Test”后,打开调用FB的程序块,点击菜单栏上的下载按钮,下载程序。例如,在本例中FB1在OB1中被调用,需要打开OB1,点击下载按钮进行下载。这样点中FB1,右键“Called Block”下就会有“Monitor with Call-Up Path”快捷键,如图15,如果不重新下载,或在块外部下载,不会出现上述快捷键,如图14。

点击快捷键就可以直接监控,如下监控阀2的情况。

同样可以监控阀1的执行情况,如下操作。

注意:1.需要在调用功能的块内将操作模式改成“Test”2.操作模式修改后,需要重新下载一次调用功能的块,如OB1,”Monitor with Call-Up path”才有效;3.如果调用功能的块关闭后,还要再进行监控,需要重新设置操作模式为“Test”,还要在调用功能的块内重新下载调用块,如例中,如果OB1已经关闭,则需要再打开,并在OB1中重新设置操作模式,然后再次下载OB1。

综合上面的几种处理方式,可以根据实际选择使用。

来源:巨控王工

相关推荐