以下部分介绍可用于您的程序的各种任务类型,并介绍了任务类型的特性。
使用循环任务“配置”子选项卡的“类型”部分中的“间隔”设置向该任务分配固定循环时间。每个循环任务类型的执行方式如下:
1. 读取输入:将物理输入状态写入 %I 输入存储器变量,并执行其他系统操作。
2. 任务处理:处理任务中定义的用户代码(POU 等)。在此操作期间,%Q 输出存储器变量会根据应用程序指令进行更新,但尚未写入物理输出。
3. 写入输出:%Q 输出存储器变量使用已定义的任何输出强制进行修改;但是,物理输出的写入取决于输出类型和所用指令。
有关定义总线循环任务的有关详细信息,,请参阅 SoMachine 编程指南和 Magelis SCU HMI Controller 设置。
有关 I/O 行为的有关详细信息,,请参阅控制器状态的详细描述。
4. 剩余间隔时间:控制器固件执行系统处理和任何其他较低优先级的任务。
注意: 如果为某个循环任务定义的周期过短,则该任务会在写入输出后立即重复,而不会执行其他较低优先级的任务或任何系统处理。这将会影响所有任务的执行并导致控制器超过系统看门狗限制,从而导致系统看门狗例外。
注意: 任务循环时间设置为大于或等于 4 毫秒的值,并且任务间隔为 4 毫秒的倍数。
注意: 使用 GetCurrentTaskCycle 和 SetCurrentTaskCycle 功能通过应用程序获取和设置循环任务的间隔。(有关详细信息,请参阅《Toolbox Advance 库指南》。)
自由运行任务没有固定持续时间。在自由运行模式下,每个任务扫描都在前一个扫描完成时以及短时间系统处理后开始。每个自由运行任务类型的执行方式如下:
1. 读取输入:将物理输入状态写入 %I 输入存储器变量,并执行其他系统操作。
2. 任务处理:处理任务中定义的用户代码(POU 等)。在此操作期间,%Q 输出存储器变量会根据应用程序指令进行更新,但尚未写入物理输出。
3. 写入输出:%Q 输出存储器变量使用已定义的任何输出强制进行修改;但是,物理输出的写入取决于输出类型和所用指令。
有关定义总线循环任务的有关详细信息,,请参阅 SoMachine 编程指南和 Magelis SCU HMI Controller 设置。
有关 I/O 行为的有关详细信息,,请参阅控制器状态的详细描述。
4. 系统处理:控制器固件执行系统处理和任何其他较低优先级的任务(例如:HTTP 管理、以太网管理、参数管理)。
此类型的任务由事件驱动,并由程序变量启动。除非有更高优先级的任务先于事件任务执行,否则事件任务在与触发事件关联的布尔变量的上升沿启动。在此情况下,事件任务会根据任务优先级分配的指示启动。
步骤 |
动作 |
---|---|
1 |
双击应用程序树中的任务。 |
2 |
从配置选项卡的类型列表中选择事件。 |
3 |
单击事件字段右侧的输入助手按钮 结果:显示输入助手窗口。 |
4 |
在输入助手对话框的树中导航,查找并分配 my_Var 变量。 |
注意: 触发事件任务的事件的最大允许频率由其他任务和系统进程的优先级进行控制。因此,您必须对应用程序进行测试,以确保事件触发的可靠性。
此类型的任务由事件驱动,并通过检测到硬件或硬件相关的功能事件而启动。除非有更高优先级的任务先于外部事件任务执行,否则它会在事件发生时启动。在此情况下,外部事件任务会根据任务优先级分配的指示启动。
例如,External Event Task可与 HSC 阈值交叉事件关联。要将 HSC0_TH1 事件与某个外部事件任务关联,从配置子选项卡的外部事件下拉列表中选择事件任务。
对于 Magelis HMI SCU 控制器,有 2 个类型的事件可与External Event Task关联:
o快速输入(FI0 和 FI1)的上升沿、下降沿或两者皆可
o加计数、减计数或同时进行加计数和减计数时的 HSC 阈值
对于由 FI0、FI1、HSC0_TH0 或 HSC0_TH1 触发的 External Event Task,两次触发之间的最短稳定间隔是:
o对于不要求立即向快速输出(FQ0 或 FQ1)发出状态更改的任务来说是 1.5 毫秒
o对于要求立即向快速输出(FQ0 或 FQ1)发出状态更改的任务来说是 15 毫秒
如果满足触发条件,但是间隔要比上述列出的间隔短,那么 External Event Task 的执行将发生延迟,或者可能不会执行。对于比以上时间要求更多计算时间的复杂任务,也可能会导致 External Event Tasks 发生延迟或错过执行时间。
|
意外的设备操作 |
彻底测试自己的应用程序,以确保应用程序性能满足您的要求。 |
不遵循上述说明可能导致人员伤亡或设备损坏。 |