介绍:
应用场景:有一个控制电机启停的函数快 FB1,在主程序 OB1 中调用两次 FB1,并且分别对 FB1 赋值不同的实参从而控制两台电机。
在调试阶段,我们需要单独对每个电机进行调试,但当直接打开 FB1 进行监控时,仅仅是对函数块内部通用的程序的监控,并不能针对具体某一个背景数据块,此时的监控状态并不能反映特定的电机的实际状态。
基于这种应用,我们需要使用调用环境功能来监控特定电机的状态。
操作:
当函数快 FB1 已经打开并启用监视时,可以通过单击程序监视窗口右上角的“更改调用环境”按钮,或通过单击项目右侧的“测试”任务卡,在“调用环境”选项中单击“更改”按钮,进行调用环境的设置。
弹出“块的调用环境”对话框,包含以下内容。
1.“无”:未定义条件,显示扫描周期最后扫描的函数块程序状态;
2.“背景数据块”:通过下拉菜单选择背景数据块。当函数块和选定的背景数据块一起调用时,显示该选定的背景数据块下这个函数块的程序状态,仅限于单个实例,不适用多重实例;
3.“调用环境”:当函数块和特定的背景数据块一起调用或者从特定路径调用块时,显示特定路径下的特定背景数据块下这个函数块的程序状态,包含单个实例和多重实例,但不包含数组型多重实例;
4.“转换到‘手动调节’”:通过该按钮,转换“调用环境”中选定的数据到“手动调节调用环境”中进一步编辑。此后使用特定块调用某个块或从特定路径调用该块时,则仅显示该块的程序状态;
5.“手动调节调用环境”:激活转到“手动调整的调用路径”选项后,可以在这个区域中手动输入所需要的调用环境,但仅限于调用路径,不适用于单个实例或多重实例,故实际意义不大。
下图为选择块的调用环境“无”。
下图为选择块的调用环境“背景数据块”,只能选择单个实例。
下图为选择块的调用环境“调用环境”,包含调用路径、单个实例或多重实例,但不适用于数组型多重实例。
下图为选择块的调用环境“手动调节调用环境”,可以手动输入调用路径,格式允许为块名称或块编号,但不允许输入单个实例或多重实例。
当设置了断点调试时,调用环境不可用。
示例1:
主程序 OB1 中调用两个 FB1:
1.新建项目,并添加函数块 FB1。
2.在主程序 OB1 中,调用两个 FB1,连接不同的实参,并修改实参的值,使两个电机处于不同状态,1 号电机停止,2 号电机运行。
3.使用调用环境功能,对 FB1 中的变量进行定位监控。打开 FB1 块并启动监视,在右侧的“测试”选项卡中,单击“更改”按钮,弹出块的调用环境窗口。选择背景数据块“InstMotor1 [DB1]”。
4.监视到 1 号电机停止。
5.选择背景数据块“InstMotor2 [DB2]”。
6.监视到 2 号电机运行。
示例2:
主程序 OB1 中调用 FB2,FB2 中使用多重实例调用 FB1:
1.添加函数块 FB2,并在 FB2 中通过多重实例的方式调用 FB1。
2.在主程序 OB1 中调用 FB2,连接实参,并修改实参的值,使两个电机处于不同状态,3 号电机停止,4 号电机运行。
3.使用调用环境功能,对 FB1 中的变量进行定位监控。打开 FB1 块并启动监视,在右侧的“测试”选项卡中,单击“更改”按钮,弹出块的调用环境窗口。由于使用了多重实例的原因,此时选择背景数据块选项就不灵了。
这里需在调用环境选项中选择调用路径和多重实例“Motors1 (#instMotor2) - Main (InstMotors1)”,即 4 号电机。
4.监视到 4 号电机运行,且启动信号未复位。
5.如果在“块的调用环境”对话框中,点击“转换到‘手动调节’”,可以在“手动调节调用环境”中,手动输入调用路径,点击“确定”:
6.此时 FB1 中监控到的程序为手动输入调用路径中调用 FB1 的程序状态,手动调节调用环境并不能定位到特定的背景数据块。
问题:
1.除了调用环境功能以外,还有类似功能的监控程序的方法吗?有。
1.1双击程序段 1 中的 FB1 函数块,打开 FB1 函数块,点击启动监视按钮,监视到 1 号电机停止。
1.2.点中程序段 2 中的 FB1 函数块,单击右键,在弹出的快捷菜单中选择“打开并监视”,监视到 2 号电机运行。
以上方法适用于多重实例(非数组型),参见下面两张图。
2.数组型的多重实例能使用调用环境进行程序监控吗?不能。
应用场景如下,在函数块 FB3 中定义了 FB1 的数组型多重实例。
此时打开调用环境窗口,可以看到调用环境中的多重实例变成了一个泛型数组,并不能指定,实际操作中也确实不能进行特定的程序监控。
针对这样的应用,调试时,可以使用断点调试的方法来解决以上问题,我将在后面文章中详细介绍。
- 西门子 TIA Portal DTL 数据类型 2024-11-26
- 西门子 TIA Portal 如何比较两个浮点数相等 2024-11-26
- 西门子 S7-1500 数组型多重实例的监控与调试 2024-11-26
- 谁说国产没有大型PLC? 2024-11-26
- 西门子也有EtherCAT伺服驱动了,通讯功能更强大! 2024-11-26
- 西门子官网全新改版,赶紧来体验吧! 2024-11-26
- 看了德国人的源程序,还不如自己写! 2024-11-26
- S7-300(已停产)产品快速升级与更新 2024-11-26
- 西门子和施耐德等传统自动化业务遭遇寒冬 2024-11-26
- 西门子Zui新授权工具,支持Wincc V8.0和博途V19等 2024-11-26