Skip to main content

在 CFC 编辑器中编程

注意

创建 POU 时,您需要遵循实现语言。之后,您将无法在连续功能图(CFC)连续功能图(CFC)- 面向页面实现语言。

插入元件并通过连接线进行布线

  1. 拖动运算块元素和一个输出元素放入编辑器中。

  2. 输出运算块元素。

    输出以红色运算块标记。

  3. 输出运算块元素的输入引脚输出元素。

    当光标到达输入引脚时,光标符号会发生变化。

  4. 松开鼠标左键。

    运算块的输出引脚连接到输出的输入引脚。

    _cds_img_prg_simple.png

您还可以按住Ctrl键,选择每个引脚,然后右键单击已连接选定引脚

实例调用

  1. 使用标准模板创建一个新项目并指定名称First例如。

    项目First.project已创建。

  2. 使用功能块扩展应用程序FB_DoItST具有输入和输出的实现语言。

    例子:

    FUNCTION_BLOCK FB_DoIt
    VAR_INPUT
        iAlfa : INT;
        iBravo: INT;
        sCharlie : STRING := 'Charlie';
        xItem : BOOL;
    END_VAR
    VAR_OUTPUT
        iResult : INT;
        sResult : STRING;
        xResult : BOOL;
    END_VAR
    VAR
    END_VAR
    iResult := iAlfa + iBravo;
    
    IF xItem = TRUE THEN
        xResult := TRUE;
    END_IF
  3. 选择应用程序并单击添加对象 → POU。选择连续功能图(CFC)实现语言和类型Program . 指定名称PrgFirst例如。

    点击好的确认对话框。

    PrgFirst程序已创建并在编辑器中打开。它仍然是空的。

  4. 实例化功能块并声明变量。

    PROGRAM PrgFirst
    VAR
        iCounter: INT;
        fbDoIt_1 : FB_DoIt;
        fbDoIt_2 : FB_DoIt;
        iOut : INT;
        sOut: STRING;
        xOut: BOOL;
    END_VAR
  5. 拖动运算块元素来自工具箱查看编辑器。

  6. 点击???字段并输入ADD作为运算块名称。

    运算块类型是ADD。该运算块充当加法器。

  7. 单击声明编辑器中的第 3 行。

    声明行iCounter被选中。

  8. 在选择中点击,并将选定的变量拖到实现中。输入于ADD运算块。

    已创建、声明输入并将其连接到运算块。

  9. 再次单击选择并将变量输出ADD运算块。

    已创建、声明并连接输出至运算块。

  10. 拖动输入元素来自工具箱查看实施情况。点击其???字段并输入1

  11. 连接1输入到输入ADD运算块。

    网络已编程。在运行时,网络计算总线周期,并将结果存储在iCounter

    cfc_img_first_network_add.png
  12. 单击声明编辑器中的第 5 行。

    该行被选中。

  13. 单击选择并将选定的实例拖到实现中。

    该实例在编辑器中显示为一个运算块。其类型、名称和运算块引脚均会相应显示。

    cfc_img_first_network_doit.png
  14. 拖动fbDoIt_2实例到编辑器。将实例相互连接,并与输入和输出连接。

    例子:

    cfc_img_first_network_add_doit1_doit2.png

    具有相同功能的ST程序可能如下所示:

    PROGRAM PrgFirstInSt
    VAR
        iCounter: INT;
    
        fbDoIt_1 : FB_DoIt;
        fbDoIt_2 : FB_DoIt;
    
        iOut : INT;
        sOut: STRING;
        xOut: BOOL;
    END_VAR
    iCounter := iCounter + 1;
    fbDoIt_1(iAlfa := 16, iBravo := 32, sCharlie := 'First', xItem := TRUE, iDelta := 2, iResult => fbDoIt_2.iAlfa, xResult => fbDoIt_2.xItem);
    fbDoIt_2(iBravo := fbDoIt_1.iResult, sCharlie := 'Second', iDelta := 2, iResult => iOut , sResult=> sOut, xResult => xOut);

创建连接标记

要求:CFC POU 具有连接元素。

  1. 选择两个元素之间的连接线。

    连接线显示为选中状态。连接线的端点标有cfc_icon_selected_input.png红色方框。

  2. 点击CFC →连接标记

    连接被分成连接标记– 来源和一个连接标记– 水槽 . 标记的名称是自动生成的。

    cfc_img_prg_simple_with_connection_mark.png
  3. 单击发送连接标记。

    您可以编辑名称。

  4. 指定名称SimpleMark为发送连接标记。

    发送连接标记和接收连接标记具有相同的名称。

    cfc_img_prg_simple_with_named_connection_mark.png

通过控制点解决碰撞并修复连接线

以下示例显示如何使用路由所有连接带有控制点的命令。

  1. 定位输入输出元素。连接元素。

    cfc_img_prg_simple2_control_point.png
  2. 位置二运算块线上的元素。

    由于发生碰撞,连接线和箱子被标记为红色。

    cfc_img_prg_simple2_red_linie.png
  3. 点击CFC →路由选择→路由所有连接

    碰撞已解决。

    cfc_img_prg_simple2_routed_line.png
  4. 逐渐改变连接线。

    cfc_img_prg_simple2_manual_routed_line.png

    连接线路已手动更改,现已锁定,无法进行自动路由。连接末端会显示一个锁定符号。

    _cds_img_prg_simple2_locked_routed_line.png
  5. 选择连接线并单击CFC →路由选择→创建控制点

    在连接线上创建一个控制点。连接线固定到控制点。

    cfc_img_prg_simple2_locked_routed_line_with_control.png

    您还可以将控制点从工具箱查看一条线。

  6. 按照以下示例所示更改连接线。

    cfc_img_prg_simple2_changed_line_with_control.png

    使用控制点根据需要更改连接线。您可以设置任意数量的控制点。

  7. 在上下文菜单中,单击CFC →路由选择→移除控制点删除控制点。

  8. 点击解锁连接或单击锁定符号以解锁连接。

  9. 选择连接线并单击路由所有连接

    连接线自动布线,如步骤 3 所示。

    _cds_img_prg_simple2_locked_routed_line.png

重要

组中的连接不会自动路由。

减少运算块的显示

要求:已打开一个 CFC POU。编辑器中,显示所有已声明引脚的接线盒。

  1. 选择一个引脚部分断开的运算块。

    例子:fb_DoIt_1

    cfc_img_box_with_unconnected_pins.png

    运算块需要空间来容纳所有的针脚。

  2. 点击CFC →引脚→移除未使用的引脚

    现在,该运算块需要更少的空间,并且仅显示功能相关的引脚。

    cfc_img_box_without_unconnected_pins.png