n
1 直接监控存在的问题
程序中经常会多次调用FB块,比如相同的阀,操作都是一样,可以编写一个FB块,然后对管脚填写阀对应的信息,如下所示新建阀的功能FB1。n
图1n
图2n
有两个阀需要控制,则调用两次即可。
在实际运行中,想监控每个块内条件执行的情况,如果打开相应的FB1,发现和实际执行的情况不同,块内执行的情况无法用来判断实际工作情况,如下所示监控阀2的执行。n
图3n
如上图,监控阀2执行情况,实际输入/输出为TRUE,但是在FB1中监控看到执行条件未满足,和实际执行不符合,这是由于FB块多次调用,相互之间影响导致,不处理无法监控到实际的执行情况。n
2 处理的方法
关于上述程序监控和实际不一致有几种处理方法:n
2.1 方法一
可以在功能块调用前增加条件,如果需要监控哪个块,使能调用条件,其他的不使能,执行情况如下图4所示,对阀2的监控。n
图4n
如上图,需要监控阀2执行,使阀1的调用条件M2.0不满足,阀2的M2.1条件满足,可以监控FB1,看到的是阀2的执行情况和实际的输入/输出一致。n
2.2 方法二
功能块结合相应背景数据块,对照查看执行情况,以阀2,背景数据块DB2对照监控,如下图5所示。n
图5n
如上图,FB1中监控的输入(aa)和输出(bb)都是FALSE,未执行,可以根据阀2的背景DB2看到,实际都是TRUE,条件满足,执行输出。n
2.3 方法三
使用“Call Environment”的功能,选择相应的背景DB块,在FB中监控,具体操作如下。
首先模式选择,打开相应的功能FB1,点击菜单中“Debug”,选择 “Operation”,进行操作模式选择。n
图6n
进入“Operation”窗口,默认的是“Process”模式,进行监控需要选择“Test”模式。n
图7n
选择“Test”模式后,“Debug”菜单下的“Call Environment”不是灰色,可以选择,如下所示。
图8
选择“Call Environment”进入设置“Call Environment of the Block”窗口。
图9
勾选调用路径,如例子中FB1在OB1中调用,勾选打开数据块,这里选择的是“Instance DB Number”,FB1的背景数据块,如下图,需要对阀2的执行监控,则将“Instance DB Number”为2(阀2对应的背景数据块号),然后点击OK,设置如下。
图10
点击“OK”后退回到FB1窗口,然后点击“ ”在线,则可以监控阀2的执行情况。
图11
如果要监控其他块的调用情况,像上面的操作修改“Instance DB Number ”号即可,注意修改前需要进入离线状态,否则无法操作。如需要监控阀1的执行,将“Instance DB Number”为1(阀对应的背景数据块号),如下图。
图12
注意:方法三的操作位置在功能内,如例子中的FB1中,操作模式需要改成“Test”。
2.4 方法四
直接用“Monitor with Call-Up Path”的快捷键进行监控,操作如下。
首先,进入功能FB的调用处,如例子FB1在OB1中调用,打开OB1,然后选择“Debug”菜单,进入“Operation”窗口,将操作模式改成“Test ”。
图13
操作模式选择“Test”后,打开调用FB的程序块,点击菜单栏上的下载按钮,下载程序。例如,在本例中FB1在OB1中被调用,需要打开OB1,点击下载按钮进行下载。这样点中FB1,右键“Called Block”下就会有“Monitor with Call-Up Path”快捷键,如图15,如果不重新下载,或在块外部下载,不会出现上述快捷键,如图14。
图15
点击快捷键就可以直接监控,如下监控阀2的情况。
图16
同样可以监控阀1的执行情况,如下操作。
图17
注意:1.需要在调用功能的块内将操作模式改成“Test”2.操作模式修改后,需要重新下载一次调用功能的块,如OB1,”Monitor with Call-Up path”才有效;3.如果调用功能的块关闭后,还要再进行监控,需要重新设置操作模式为“Test”,还要在调用功能的块内重新下载调用块,如例中,如果OB1已经关闭,则需要再打开,并在OB1中重新设置操作模式,然后再次下载OB1。
综合上面的几种处理方式,可以根据实际选择使用。
关键词
FB,多次调用,模式
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc329098.html