CODESYS 任务配置介绍
引言
在工业自动化领域,CODESYS 作为一种通用的开发环境,被广泛应用于 PLC(可编程逻辑控制器)和 PAC(可编程自动化控制器)编程中。任务配置是 CODESYS 中的一个重要功能。本文将详细介绍如何在在线模式下监视任务状态和相关统计信息,理解和设置任务属性,以及创建和配置任务,以确保系统高效运行和满足实时性要求。这些知识对于从事自动化控制和系统开发的工程师尤为重要。
1 任务配置简介
任务配置用于定义和显示任务的基本设置。注意每个应用程序中只能包含一个任务配置对象。
1.1 监视
在在线模式下,可以监视任务状态和统计信息(如平均周期时间、最大周期时间和抖动数据),这些信息对于检测任务执行超时很有帮助。若任务的平均周期时间超出其周期循环时间,则需要调整周期以避免错误。对于实时性任务,除了监控平均周期时间外,还应检查最大周期时间和抖动,确保它们满足实时性要求。一般来说,实时性任务的平均周期时间和最大周期时间应低于任务循环周期,抖动应尽可能小。如果平均周期时间超过任务周期的60%,建议增加周期时间。如下图:
1.2 属性
本页面展示了当前控制器支持的任务属性,包括任务的最大数量、循环任务的最大数量、自由任务的最大数量、事件任务的最大数量等。不同品牌的控制器可能会有所不同,具体显示内容会根据所用控制器而异。
2 任务特性
双击任务配置下的任务名称,可以打开对应的任务配置页面。在该页面中,可以设置任务的优先级、类型、间隔以及任务中调用的程序,如下图。
2.1 优先级(Priority)
优先级用于决定任务的执行顺序。高优先级任务优先执行,低优先级任务则在高优先级任务完成后继续执行。在低优先级任务运行时,如果有高优先级任务满足条件,会中断低优先级任务,先执行高优先级任务。官方文档中,优先级范围是0到31,其中0代表最高优先级,31代表最低优先级。但不同控制器的范围可能不同,例如0-10或0-15。
2.2 任务类型
循环(Cyclic):按指定周期循环执行的任务,任务的循环周期由“间隔”指定,单位可以设为 ms 或 us。这是最常用的任务类型。
状态(Status):由指定的 BOOL 变量触发运行的任务。
惯性滑行(Freewheeling):以连续循环的方式再次自动开始处理任务,无限循环。
事件(Event):在输入域 Event 中定义的全局变量出现上升沿时执行任务一次。
外部事件(External):输入字段 Event 中定义的事件出现时,系统立即开始执行任务。
2.3 程序调用
在某个任务配置完成后,可以指定在该任务中运行的程序。任务中有多个程序时,程序调用的先后顺序与程序在任务中排列的先后顺序相同。
3 创建一个任务
3.1 创建程序
首先,我们需要在 CODESYS 中创建一个程序。具体步骤如下:
选择您的应用程序对象。
右键点击应用程序对象,打开上下文菜单。
选择“添加对象”,在子菜单中选择“POU...”。
在弹出的对话框中,选择创建新的 POU 的类型为“程序”,并为该程序起一个名称。选择实现语言。如下图:
3.2 定义任务
接下来,我们在程序中定义变量,并编写简单的控制逻辑。
双击编辑模块,打开编辑器窗口。
在编辑器窗口的上半部分中定义我们的第一个变量,名称为“counter”,数据类型为 INT,并用值“0”初始化这个变量。
编写程序逻辑:每当调用程序时,对变量“counter”实现+1。
- VAR
- counter : INT := 0;
- END_VAR
- counter := counter + 1;
3.3 选择对象
为了调用程序,我们需要插入一个具有“任务配置”类型的对象。
插入“任务”对象,此对象会自动创建一个类型为任务的子对象。
双击任务对象进行配置。
选择“添加调用”,然后选择您已经创建的“程序”对象,点击确定。
3.4 设置任务时间间隔
任务时间间隔是指控制器调用并运行程序对象的频率。默认情况下,任务时间间隔设置为 25 ms,这意味着控制器将每 25 ms 调用并运行一次程序。
参考文章第二部分。
总结
通过本文的介绍,您应该已经掌握了在 CODESYS 中进行任务配置的基本方法。创建程序、定义任务、选择对象以及设置任务时间间隔是任务配置的关键步骤。通过掌握这些知识,工程师可以更好地管理自动化系统中的任务,确保系统的实时性和稳定性,从而提高系统的整体性能和可靠性。希望本文能够帮助您更好地理解和应用 CODESYS 中的任务配置功能。
往期回顾
CODESYS 的ST语言实战 - 主备切换及保养提示解决方案
2024年09月