条件分支
使用此工具可定义在特定条件为 true 时要执行的工具,以及在特定条件不为 true 时要执行的工具。此工具类似于评估表达式工具,不同之处在于它可让您根据评估的条件指定进一步处理。
条件可以包含之前工具的数字和字符串结果或已手动指定的值。但应该定义条件,以便其结果可映射到布尔值。
与其他 MERLIC 工具不同,此工具在插入时不具备任何默认参数。如果想要在条件中使用参数,您需要手动将它们添加到工具。请参阅添加参数部分,了解更多信息。工具面板 底部默认列出两个分支触发器连接器:“条件”和“默认”。如需了解更多关于触发器连接器的信息,请参阅触发器连接器。
此工具不显示图形窗口,而是显示可在其中定义条件的输入字段。在条件输入字段中键入时,会弹出一个自动完成列表,其中包含与输入内容匹配的可能函数和运算符。该列表还包含手动添加的参数和以前定义的结果。
要直接从整个列表浏览,请使用快捷键 CTRL+Space 手动打开该弹出窗口。请查看 评估表达式 主题,了解有关可能的函数和运算符的更多信息。
图标表示已激活哪个分支触发器。总是有一个分支触发器被激活:如果条件为 true,“条件”连接器会处于活动状态并发送触发器。在其他每种情况下,“默认”分支触发器都会处于活动状态并发送触发器,即如果条件不为 true、尚未定义任何条件或工具处于错误状态。所有连接至活动连接器的工具都将执行。
您可以隐藏 工具工作区 底部的结果,例如,如果有未连接到任何其他工具并且只在 工具流程 后面使用的中间结果。右键单击要隐藏的结果,然后选择“隐藏”。要显示隐藏的结果,使用结果右侧的 按钮。

下图显示具有两个分支的“条件分支”工具的示意图。两个分支都包含两个工具。在左侧示例中,条件为 true。因此,“条件”连接器会发送触发器且包含工具 T11-T12 的分支会执行。在右侧示例中,条件不为 true。因此,“默认”连接器会发送触发器且包含工具 T21-T22 的分支会执行。
工具流程 选项
MERLIC 支持工具“条件分支”的其他可视化选项。启用“工具流程”选项后,在执行过程中会突出显示被跳过的工具。有关更多信息,请参阅主题 工具流程。
参数
此工具不具备任何默认参数。因此,在插入此工具时不会显示任何参数。如果想要在表达式中使用参数值,您可使用前一工具的结果值,或为工具定义新的参数。
受支持的语义类型
此工具支持以下语义类型的参数:
- 任意
- 双精度浮点数
- 长整数
- 字符串
尽管此工具并非支持所有语义类型,您仍可使用前一工具的任何数字或字符串结果,即使此结果的语义类型不受支持,例如,“工具状态”。但是,如果创建了到此类结果的连接,相应新参数的语义类型会设为“任意”。
由于“长整数”语义类型表示具有更大取值范围的整数,我们在以下说明中仍将其称为整数。
添加参数
使用前一工具的结果作为参数
要在表达式中使用前一工具的结果,您需要将结果连接至“条件分支”工具。
- 转到想要在“条件分支”工具中将其结果用作参数的前一工具。
- 将所需工具结果的连接箭头拖至连接的放置目标。此外,您还可打开上下文菜单并单击菜单条目“连接至”。
- 选择“条件分支”工具并单击菜单条目“< 添加连接 >”。
已连接的结果会立即作为“条件分支”工具的新参数添加。参数的名称和语义类型将自动从已连接结果获取。如果此工具不支持已连接结果值的语义类型,则会为新参数自动设为“任意”。
此外,您还可按如下所述在工具中定义新参数,然后将新参数连接至前一工具的结果。
定义新参数
要定义新参数,您必须添加新的连接器并定义参数设置。
- 单击工具面板左上方的
按钮。此时会打开用于定义参数设置的对话框窗口。
- 在对话框窗口中选择新参数的语义类型。
- 还可选择定义新参数的最小值和最大值。
- 单击“确定”以确认您的设置。新参数会立即使用默认名称添加。
- 可选择通过双击参数名称来重命名该参数。要了解关于工具参数和工具结果允许使用的命名约定的信息,请参阅重命名工具、参数和结果章节。
- 在连接器定义新参数的值。
保存参数的语义类型和取值范围后,不可以再次更改这些设置。如果您需要调整参数的语义类型或取值范围,您必须使用所需的设置添加另一个新参数。
条件
要评估的表达式必须在工具面板的输入字段内定义。只要尚未定义任何条件或如果定义了无效的条件,MERLIC 会在 工具面板 和 工具流程 面板中显示错误。但是,此错误仅因缺少条件或错误条件而引发。它不提示关键工作区错误。因此,“工具状态”结果在此情况下仍返回“[0; OK]”。
要将工具参数值用于评估,请在条件的输入字段中输入参数的名称。还可以定义没有任何参数的条件。条件可应用于数字值、字符串值以及混合元组。但是,您必须确保条件可映射到布尔值,即结果要么必须为 true,要么必须不为 true,以确保可靠地评估要触发哪个分支。如果返回元组 元组是一系列元素,例如数值和字符串。,元组的每个元素必须为 1,以生成为元组的条件。如果条件不为 true 或无法映射到布尔值,“默认”分支触发器会激活并会执行相应的分支。
另请参阅评估表达式工具的参考文档,了解关于各类条件的详细说明。
如果在条件中使用前一工具的结果,那么先前有效的条件在运行时可能变为无效。这是因为已连接参数的值可能会在运行时发生更改。 例如,如果条件定义为“Condition := Parameter”并且“Parameter”的值为 1,那么条件有效且为 true。因此,工具不会引发任何错误。但是,如果“Parameter”的值在运行时发生更改(例如,更改为元组 [1;2]),则定义的条件变为无效,因为该条件不能被解读为 true 或 false。无效的条件被工具假定为 false。在此情况下,更合适的条件可能为“Condition := Parameter[0] > 0”,这样可确保该条件不会变为无效。
分支触发器
条件:
此分支触发器会在条件为 ture 时发送触发器。
默认:
此分支触发器会在条件不为 ture 时发送触发器
结果
基本结果
结果:
此结果返回生成的条件的值。结果的语义类型设为“任意”。
工具状态:
“工具状态”返回有关工具状态的信息,因此可用于处理错误。请参阅主题工具状态结果,了解关于不同工具状态结果的更多信息。
其他结果
处理时间:
此结果返回最近一次执行工具的持续时间(以毫秒为单位)。该结果作为附加结果提供。因此,默认情况下它是隐藏的,但是可以通过工具结果旁边的 按钮显示。有关更多信息,处理时间请参工具参考中所阅部分。
应用程序示例
此工具用于以下 MERLIC Vision App 示例:
- adapt_brightness_for_measuring.mvapp
- check_correct_filling_on_3d_height_images.mvapp
- measure_distance_to_center_led.mvapp