通过代码检测进行分析
重要
为 Profiler 测量方法隐式添加的 IEC 代码以及监视列表中 POU 的断点会导致更改并减慢评估的程序。
当剖析或代码覆盖测量处于活动状态时,通常无法进行联机。而且,一些在线功能不可用,例如“流控”和“断点”。在这方面,观察名单没有任何限制。
启用或禁用 Profiler 测量方法,或更改 Profiler 编辑器中的任何设置都需要下载。然后不再可能进行在线更改。在这方面,观察名单没有任何限制。
提示
测量值的记录和处理在控制器上进行,因此也可以在不将开发系统连接到控制器的情况下执行(与其他测量方法相比)。
使用这种分析方法, CODESYS Profiler 将附加代码插入程序中每个函数的入口和出口。测量和存储整个任务周期的运行时间。
该方法对于检测任务运行时中的单个异常值很有用。为此,请选择 记录最大周期 录音模式。
当整个项目被检测时,这会对任务运行时和内存消耗产生相当大的影响。因此,尽可能只选择应用程序 POU 的一部分进行检测。一种推荐的方法是首先只选择那些由任务直接调用的 POU。确定这些 POU 的运行时“热点”,然后根据这些选择调用的 POU 进行测量。
重要
未选择进行测量的 POU 不会显示在测量列表、调用树或回溯选项卡上。因此,可能会显示调用树“POU1 -> POU3”,尽管 POU1 没有直接调用 POU3。这是因为在 POU1 和 POU3 之间存在未选择测量的 POU 调用。
POU 测量中的“自身时间”输出还可以包含未被选择用于测量的被调用 POU 的时间。
通过检测分析激活和执行
要求:
一种 CODESYS 具有多个 POU 的项目应用程序以离线模式打开。
定义了一个任务来控制 POU 调用。
该应用程序是活动应用程序,可以无错误地编译。
在通信设置中配置了与标准控制器的连接,并且控制器正在运行。
要以编程方式激活和停用分析,您可以在应用程序中定义一个布尔变量。 (对于此处描述的示例,这是可选的。也可以通过菜单命令执行激活。)
点击 添加对象 添加一个 探查器 设备树中应用程序下方的对象。
双击对象。
对象编辑器打开。这
设置 选项卡是焦点。
设置 方法 到 仪器仪表.选择 任务 与要对其执行时间测量的 POU 调用。
在下面 记录,选择用于控制要检测的 POU 的任务。
为了 健康)状况, 点击
按钮并从应用程序中选择要用于打开和关闭值记录的布尔变量。注意:使用这种变量是可选的。如果将该字段留空,则记录每个周期。
在下面 仪器参数,设置 录音模式 到 记录下一个周期.留下所需的 缓冲区大小 (每个任务周期记录的最大 POU 调用数)作为默认值 10000.
在下面 快照外观, 选择 时间格式 用于显示录音。
在 POU 选择,选择应检测的 POU。请注意,您还可以选择“仪器整个应用程序”,这将包括项目的所有 POU 以及集成库的 POU。
点击
将应用程序下载到控制器。显示器
显示在状态栏中 CODESYS.
点击
启动应用程序。项目运行,您可以在通常的监控视图中看到当前变量值。
如果您已将布尔变量配置为开始分析的条件,那么现在将此变量设置为
TRUE
.关于录制的背景信息:因为您选择了 记录下一个周期 在此示例中的选项中,仅记录应用程序启动和分析时的第一个周期。没有记录额外的循环。仅当从控制器上传记录时,才会执行附加测量。此上传是通过打开 在线的 选项卡第一次或通过单击 刷新快照 按钮。有关替代方案的信息 记录最大周期 选项,请参阅帮助的参考部分:“设置”选项卡。
现在看看抽样结果。打开 Profiler 对象的编辑器及其 在线的 标签。
这
在线的 选项卡提供四个子选项卡,可以从左侧菜单中选择。此外,您会看到一个区域,其中包含当前正在运行的分析的按钮和设置。有关更多信息,请参阅: “在线”选项卡