插入运算块

概述

快捷方式:Ctrl+B

FBD/LD/IL > 插入运算块命令用于将运算块元素插到用于调用操作符、功能块、程序、函数或接口的网络中。

在 IL 编辑器中,将会插入支持的相应指令。

一旦选择了该命令,输入助手对话框就会打开,其中提供了相应的 POU 类别。请选择一个类别,并用确定进行确认以在网络中的当前选定位置插入运算块或创建相应的 IL 指令。

或者,可以执行命令 插入空运算块,这样就可以直接输入所需的运算块类型。

一种方便地添加运算块的方法是从工具箱或从编辑器内的其他位置直接拖动运算块元素。有关如何元素的拖放,请参见在 FBD 和 LD 编辑器中操作一章。

下面的内容列出了与编辑器特定相关的用于插入运算块元素的特性。

FBD/LD 编辑器

类型为程序或功能块的运算块将插入在行中。这样做的效果是,处理行将连接到所插入的 POU 最上面的输入和输出。

示例:在 LD 中插入功能块

1 选择的触点。

2 插入的程序运算块。

运算块内的文本显示运算块类型(例如,F_TRIG),并且是可编辑的。通过用另一个有效模块的类型名称替换此文本,可将该运算块替换为其他运算块。也可以通过在同一位置插入另一个运算块来替换现有运算块。请注意,如果已为之前使用的运算块定义了输入,则将保留这些输入,除非新运算块具有较小的最大输入数。在此情况下,将相应删除随后的输入。

如果提供有相应模块,并且激活了选项显示功能块图标,则将在运算块内显示图标。

在 LD 网络中的并行分支连接内,在从工具箱拖动运算块元素时,将不会提供插入位置。原因:POU 调用(运算块)需要直接连接到电源轨。

示例:LD 网络中运算块元素的插入位置

1 无插入位置。

  • 带有 EN/ENO 的运算块:有一个用于插入带有 EN 输入和 ENO 输出的运算块的额外命令,该命令在插入带有 EN/ENO 的运算块一章中进行了介绍。

    注: 请在对程序进行结构安排时考虑以下问题:您无法在 EN/ENO 运算块的输入处添加运算块元素。如果要将某个运算块的输出用作具有 EN/ENO 功能的运算块的输入,则必须先将该输出写入一个变量,然后将此变量输入到 EN/ENO 运算块的输入。
  • 插入的 POU 运算块的 VAR_IN_OUT 参数标有一个双向箭头。

  • 功能块运算块在运算块上方具有一个可编辑字段,必须在此字段中输入实例变量的名称。如果一个表示功能块实例的实例的运算块因插入另外一个功能块类型而被替换,则还必须重新定义该实例。功能块运算块在运算块上方具有一个可编辑字段,必须在此字段中输入实例变量的名称。如果一个表示功能块实例的实例的运算块因插入另外一个功能块类型而被替换,则还必须重新定义该实例。

  • 在函数和功能块中,将显示输入和输出的正式名称。但在显示函数的主输出(返回值)时将不带名称。

  • 如果运算块接口已更改,则可通过执行命令更新参数来更新运算块参数(例如,修改后的输出数)。

    这种更新不会自动执行。

  • 插入位置:最新插入的 POU 将插在当前选定的位置。

如果...

则...

当前选择了输入(光标位置 2

将在此输入的前面插入运算块。

该运算块的第一个输入以及(如果适用)它的第一个输出将在当前分支内进行链接。

当前选择了输出(光标位置 4

将在此输出的后面插入运算块。

该运算块的第一个输入以及(如果适用)它的第一个输出将在当前分支内进行链接。

当前选择了运算块(光标位置 3

旧元素将被新的 POU 替换。

连接将尽可能保持替换之前的状态。如果旧元素的输入数量比新元素多,则将会删除不能连接的分支。输出的情况也是这样。

选择了跳转或返回(光标位置 3

将在此跳转或返回的前面插入运算块。

该运算块的第一个输入以及(如果适用)它的第一个输出将在当前分支内进行链接。

选择完整的网络或子网络(光标位置 6 或 11)

运算块随后将插在该网络或子网络的最后一个元素的后面,并与它的第一个输入链接。

输出保持未连接状态。

  • 无法链接的所有运算块输入都将收到文本 ???。选择该文本并用所需常量或变量的名称将其替换。

  • 如果已有连接到所插入的运算块右侧的分支,则会将此分支分配给该运算块的第一个输出。否则,输出保持未分配状态。

注: 有关 FBD、LD 和 IL 网络组件的查看选项,请考虑 FBD、LD 和 IL 编辑器选项。

IL 编辑器

在 IL 中,也可以在任何所需的行上插入运算块。如果您使用输入助手并选中了选项插入变量,则将以 CAL 指令以及所选运算块元素的相应输入和输出参数的形式显示所选的 POU。

示例:在 IL 中插入的运算块

运算块 TON 是通过输入助手选择的。输入参数将自动插在下面的行中,并可进行定义。在此示例中,CAL 行中的文本 ??? 已由 TONinstTON 的本地实例)替换。

带有 EN/ENO 的运算块无法在 IL 编辑器中插入。