Skip to main content

通过代码检测进行分析

重要

为 Profiler 测量方法隐式添加的 IEC 代码以及监视列表中 POU 的断点会导致更改并减慢评估的程序。

当剖析或代码覆盖测量处于活动状态时,通常无法进行联机。而且,一些在线功能不可用,例如“流控”和“断点”。在这方面,观察名单没有任何限制。

启用或禁用 Profiler 测量方法,或更改 Profiler 编辑器中的任何设置都需要下载。然后不再可能进行在线更改。在这方面,观察名单没有任何限制。

提示

测量值的记录和处理在控制器上进行,因此也可以在不将开发系统连接到控制器的情况下执行(与其他测量方法相比)。

使用这种分析方法, CODESYS Profiler 将附加代码插入程序中每个函数的入口和出口。测量和存储整个任务周期的运行时间。

该方法对于检测任务运行时中的单个异常值很有用。为此,请选择 记录最大周期 录音模式。

当整个项目被检测时,这会对任务运行时和内存消耗产生相当大的影响。因此,尽可能只选择应用程序 POU 的一部分进行检测。一种推荐的方法是首先只选择那些由任务直接调用的 POU。确定这些 POU 的运行时“热点”,然后根据这些选择调用的 POU 进行测量。

重要

  • 未选择进行测量的 POU 不会显示在测量列表、调用树或回溯选项卡上。因此,可能会显示调用树“POU1 -> POU3”,尽管 POU1 没有直接调用 POU3。这是因为在 POU1 和 POU3 之间存在未选择测量的 POU 调用。

  • POU 测量中的“自身时间”输出还可以包含未被选择用于测量的被调用 POU 的时间。

通过检测分析激活和执行

要求:

  • 一种 CODESYS 具有多个 POU 的项目应用程序以离线模式打开。

  • 定义了一个任务来控制 POU 调用。

  • 该应用程序是活动应用程序,可以无错误地编译。

  • 在通信设置中配置了与标准控制器的连接,并且控制器正在运行。

  1. 要以编程方式激活和停用分析,您可以在应用程序中定义一个布尔变量。 (对于此处描述的示例,这是可选的。也可以通过菜单命令执行激活。)

  2. 点击 添加对象 添加一个 探查器 设备树中应用程序下方的对象。

  3. 双击对象。

    对象编辑器打开。这 _prf_icon_settings.png 设置 选项卡是焦点。

  4. 设置 方法仪器仪表.选择 任务 与要对其执行时间测量的 POU 调用。

  5. 在下面 记录,选择用于控制要检测的 POU 的任务。

    为了 健康)状况, 点击 _cds_icon_three_dots.png 按钮并从应用程序中选择要用于打开和关闭值记录的布尔变量。注意:使用这种变量是可选的。如果将该字段留空,则记录每个周期。

  6. 在下面 仪器参数,设置 录音模式记录下一个周期.留下所需的 缓冲区大小 (每个任务周期记录的最大 POU 调用数)作为默认值 10000.

    在下面 快照外观, 选择 时间格式 用于显示录音。

  7. POU 选择,选择应检测的 POU。请注意,您还可以选择“仪器整个应用程序”,这将包括项目的所有 POU 以及集成库的 POU。

  8. 点击 在线 → 登录 将应用程序下载到控制器。

    显示器 _prf_img_status.png 显示在状态栏中 CODESYS.

  9. 点击 在线 → 开始 启动应用程序。

    项目运行,您可以在通常的监控视图中看到当前变量值。

  10. 如果您已将布尔变量配置为开始分析的条件,那么现在将此变量设置为 TRUE.

    关于录制的背景信息:因为您选择了 记录下一个周期 在此示例中的选项中,仅记录应用程序启动和分析时的第一个周期。没有记录额外的循环。仅当从控制器上传记录时,才会执行附加测量。此上传是通过打开 在线的 选项卡第一次或通过单击 刷新快照 按钮。有关替代方案的信息 记录最大周期 选项,请参阅帮助的参考部分:“设置”选项卡。

    现在看看抽样结果。打开 Profiler 对象的编辑器及其 在线的 标签。

    _prf_icon_online.png 在线的 选项卡提供四个子选项卡,可以从左侧菜单中选择。此外,您会看到一个区域,其中包含当前正在运行的分析的按钮和设置。有关更多信息,请参阅: “在线”选项卡

过程. 有关 POU 调用的详细信息 特性 对话
  1. 在线的 选项卡,单击 调用树 类别。

    您会看到所有调用的层次结构,这些调用源自在 设置 对话。

  2. 选择其中一个呼叫并单击 特性 在上下文菜单中。

    特性 被调用 POU 的对话框打开,其中包含详细信息,例如 自己的时间标准差.