FB块多次调用如何监控单个块的执行情况.docx
《FB块多次调用如何监控单个块的执行情况.docx》由会员分享,可在线阅读,更多相关《FB块多次调用如何监控单个块的执行情况.docx(11页珍藏版)》请在冰豆网上搜索。
FB块多次调用如何监控单个块的执行情况
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方法二
功能块结合相应背景数据块,对照查看执行情况,以阀2,背景数据块DB2对照监控,如下图5所示。
图5
如上图,FB1中监控的输入(aa)和输出(bb)都是FALSE,未执行,可以根据阀2的背景DB2看到,实际都是TRUE,条件满足,执行输出。
2.3方法三
使用“CallEnvironment”的功能,选择相应的背景DB块,在FB中监控,具体操作如下。
首先模式选择,打开相应的功能FB1,点击菜单中“Debug”,选择“Operation”,进行操作模式选择。
图6
进入“Operation”窗口,默认的是“Process”模式,进行监控需要选择“Test”模式。
图7
选择“Test”模式后,“Debug”菜单下的“CallEnvironment”不是灰色,可以选择,如下所示。
图8
选择“CallEnvironment”进入设置“CallEnvironmentoftheBlock”窗口。
图9
勾选调用路径,如例子中FB1在OB1中调用,勾选打开数据块,这里选择的是“InstanceDBNumber”,FB1的背景数据块,如下图,需要对阀2的执行监控,则将“InstanceDBNumber”为2(阀2对应的背景数据块号),然后点击OK,设置如下。
图10
点击“OK”后退回到FB1窗口,然后点击“
”在线,则可以监控阀2的执行情况。
图11
如果要监控其他块的调用情况,像上面的操作修改“InstanceDBNumber”号即可,注意修改前需要进入离线状态,否则无法操作。
如需要监控阀1的执行,将“InstanceDBNumber”为1(阀对应的背景数据块号),如下图。
图12
注意:
方法三的操作位置在功能内,如例子中的FB1中,操作模式需要改成“Test”。
2.4方法四
直接用“MonitorwithCall-UpPath”的快捷键进行监控,操作如下。
首先,进入功能FB的调用处,如例子FB1在OB1中调用,打开OB1,然后选择“Debug”菜单,进入“Operation”窗口,将操作模式改成“Test”。
图13
操作模式选择“Test”后,打开调用FB的程序块,点击菜单栏上的下载按钮,下载程序。
例如,在本例中FB1在OB1中被调用,需要打开OB1,点击下载按钮进行下载。
这样点中FB1,右键“CalledBlock”下就会有“MonitorwithCall-UpPath”快捷键,如图15,如果不重新下载,或在块外部下载,不会出现上述快捷键,如图14。
图15
点击快捷键就可以直接监控,如下监控阀2的情况。
图16
同样可以监控阀1的执行情况,如下操作。
图17
注意:
1.需要在调用功能的块内将操作模式改成“Test”2.操作模式修改后,需要重新下载一次调用功能的块,如OB1,”MonitorwithCall-Uppath”才有效;3.如果调用功能的块关闭后,还要再进行监控,需要重新设置操作模式为“Test”,还要在调用功能的块内重新下载调用块,如例中,如果OB1已经关闭,则需要再打开,并在OB1中重新设置操作模式,然后再次下载OB1。
综合上面的几种处理方式,可以根据实际选择使用。
关键词
FB,多次调用,模式
DetailPages.ToPageTop