Skip to main content

按照数据流排序

在基于文本和基于网络的编辑器中,POU 的执行顺序是唯一确定的。然而,在 CFC 编辑器中,您可以自由定位元素,因此执行顺序最初并不是唯一的。因此,CODESYS使用数据流来确定执行顺序,在多个网络的情况下,则通过元素的拓扑位置来确定。顶部元素和网络按从上到下、从左到右的顺序排序。通过这种方式,执行顺序是唯一的,并确保 POU 的处理按时间和周期进行优化。

您可以在图表中临时显示当前的执行顺序。当您编写带有反馈的网络程序时,您可以将某个元素定义为反馈回路的起点。

您还可以明确编辑 CFC 对象中的处理顺序。为此,请切换自动数据流模式 CFC 对象的属性显式执行顺序模式。在此模式下,您可以选择通过菜单命令编辑执行顺序。

CODESYS V3.5 SP15 中,必须为每个 POU 明确定义执行顺序。没有模式切换。

数据流

数据流按时间顺序描述哪些数据应该被写入或读取,如何以及何时执行,以及在哪些编程对象中执行。一个POU可以处理任意数量的数据流,这些数据流也可以彼此独立执行。

显示执行顺序

默认情况下,CFC 对象的执行顺序是自动确定的。自动数据流模式属性已选中。您可以在 CFC 编辑器中临时显示自动确定的执行顺序。

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

  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. 创建功能块ExecuteCFC氯氟烃实现语言如下。

    PROGRAM ExecuteCFC
    VAR
        fb_DoIt_0: FB_DoIt;
        fb_DoIt_1: FB_DoIt;
        iFinal_1: INT;
        iFinal_0: INT;
        xFinal: BOOL;
    END_VAR

    在 CFC 中,最近创建的编程对象已选择“自动数据流模式”。编程对象的执行顺序已在内部进行了优化定义。

    cfc_img_fb_executecfc.png
  4. 点击CFC → 执行顺序 → 显示执行顺序

    显示对象的执行顺序。框和输入框均按时间顺序编号,反映处理顺序。再次单击 CFC 编辑器时,编号将隐藏。

    cfc_img_displaying_execution_order.png

确定反馈网络中的执行顺序

  1. 创建带有反馈的 CFC 程序。

    人民行动组织PrgPositiveFeedback计数。

    PROGRAM PrgPositiveFeedback
    VAR
        iResult: INT;
    END_VAR
    cfc_img_prg_positive_feedback.png
  2. 选择反馈中的一个元素。

    选定的元素以红色突出显示。

  3. 点击CFC → 执行顺序 →设置反馈的开始

    cfc_img_prg_positive_feedback_with_start.png

    在运行时,首先处理此 POU。反馈的起始 POU 定义并修饰为cfc_icon_start_of_feedback.png符号。执行顺序重新排序,选定的元素获得编号 0。(这是反馈的最低编号。)

  4. 再次选择起始 POU。

  5. 点击CFC → 执行顺序 →设置反馈的开始

    该运算块未被选为起始运算块。

    cfc_img_prg_positive_feedback.png

    执行顺序是内部定义的。

  6. 点击CFC → 执行顺序 → 显示执行顺序

    cfc_img_positive_feedback_numbered.png

    显示按数据流的执行顺序。

明确定义执行顺序

执行顺序您选择显式执行顺序模式对象的选项。

  1. 设备或者程序单元视图,打开 CFC 对象的上下文菜单并单击特性 . 在特性对话框中,选择CFC执行令选项卡。

    执行顺序列表运算块显示当前选定的模式。

  2. 执行顺序列表运算块,选择显式执行顺序模式并点击好的确认对话框。

    选择“显式执行顺序模式”。CFC 编辑器中对网络进行了编号,并在CFC → 执行订单用于编辑执行顺序的菜单。

  3. 打开一个 CFC 对象。

  4. 选择一个编号元素并单击CFC → 执行命令 →置首

    执行顺序重新排序,选定的元素编号为 0。

提示

通过数据流自动定义的执行顺序,可以优化 POU 的时间和周期执行。在开发过程中,您无需任何有关内部管理的执行顺序的信息。

显式执行顺序模式,您有责任调整执行顺序并评估其后果和影响。这也是始终显示执行顺序的另一个原因。