首页 理论教育 如何使用多个或一个周期性任务?

如何使用多个或一个周期性任务?

时间:2023-06-28 理论教育 版权反馈
【摘要】:在此部分中,将探索哪种编程方法更好:多个任务或带有多个程序的一个任务。名为Manager的周期性任务用于处理其他任务属性。此时间值应约等于周期性任务的执行周期。这是因为在5个周期性任务之间进行了任务切换,如图11-8所示。请记住周期性任务每隔1ms将进行一次任务切换。因此,按22ms来运行周期性任务并不是一个好主意。图11-14 周期任务属性24.单击“重置”(Re

如何使用多个或一个周期性任务?

在此部分中,将探索哪种编程方法更好:多个任务或带有多个程序的一个任务。

1.在控制器项目管理器中,可注意到有一个连续任务和七个周期性任务。可能需要最小化任务文件夹。名为Manager的周期性任务用于处理其他任务属性。当前,该连续任务和五个周期性任务都已禁用,因此它们不会执行,如图11-2所示。

2.在控制器项目管理器中,右键单击周期性任务Periodic并选择“属性”(Properties),如图11-3所示。

978-7-111-47798-3-Chapter01-198.jpg

图11-2 项目管理器列表

978-7-111-47798-3-Chapter01-199.jpg

图11-3 打开的任务菜单

3.出现“任务属性”(Task Properties)窗口后,单击“监视”(Monitor)选项卡,如图11-4所示。

参考信息

任务属性监视选项卡

1)扫描时间(消逝时间)(Scan Times(Elapsed Time)):这将显示相应任务的最大消逝时间和最后一次消逝时间。

2)间隔时间(触发之间的消逝时间)(Interval Times(Elapsed Time Between Trig-gers)):这将显示周期性任务触发之间的最大时间和最小时间。此时间值应约等于周期性任务的执行周期。

3)任务重叠计数(Task Overlap Count):这是任务触发执行的次数,当前未显示任何值是因为它正在执行。当发生该情况时,控制器将记录一次次要故障。

4)重置(Reset):此按钮可将所有字段都重置为零。

978-7-111-47798-3-Chapter01-200.jpg

图11-4 监视(Monitor)选项卡界面

4.单击“重置”(Reset)按钮。

5.可看到任务的扫描时间约为5ms,间隔约为75ms。任务的周期为75ms。

6.在控制器项目管理器中,双击“控制器标签”(Controller Tags)。这将打开标签监视器。在“标签监视器”(Tag Monitor)窗口中,能控制程序的执行方式。

7.验证已处于“监视标签”(Monitor Tags)选项卡中。

8.在标签监视器中,在Inhibit_Peri-odic的值列中输入1并按回车键。该值将恢复为零,如图11-5所示。

9.在标签监视器中,在Uninhibit_Periodic的值列中输入1,并按回车键。该值将恢复为零,如图11-6所示。

978-7-111-47798-3-Chapter01-201.jpg

图11-5 修改Inhibit_Periodic参数

978-7-111-47798-3-Chapter01-202.jpg

图11-6 修改Uninhibit_Periodic参数

这将导致其他已禁用的周期性任务开始执行。

10.在“窗口”(Window)菜单中选择“任务属性-周期性”(Task Properties-Periodic)。这会将“任务属性”(Task Properties)窗口置于顶层,如图11-7所示。

11.出现“任务属性”(Task Properties)窗口后,单击“重置”(Reset)按钮。

12.通过查看“任务属性”(Task Properties)窗口,将看到任务的扫描时间现在约为21ms。这是因为在5个周期性任务之间进行了任务切换,如图11-8所示。

如果将周期性任务的周期降低到22ms会怎样?

13.在“窗口”(Window)菜单中选择“控制器标签s-A1_program_task(控制器)”(Controller Tags-A1_program_task(controller)),如图11-9所示。

这会将标签监视器窗口置于顶层。

978-7-111-47798-3-Chapter01-203.jpg

图11-7 打开的窗口菜单

978-7-111-47798-3-Chapter01-204.jpg

图11-8 打开的任务属性窗口

978-7-111-47798-3-Chapter01-205.jpg

图11-9 打开的窗口菜单

14.在标签监视器中,在Periodic_to_22的值列中输入1,并按回车键。该值将恢复为零。这样会将所有周期性任务的周期更改为22ms,如图11-10所示。

15.将“任务属性-周期性”(Task Prop-erties-Periodic)窗口置于顶层。(www.xing528.com)

978-7-111-47798-3-Chapter01-206.jpg

图11-10 修改Periodic_to_22的值

16.单击“重置”(Reset)按钮,如图11-11所示。可看到,该任务的扫描时间仍约为21ms,但现在间隔时间的最大值显示为约24ms。最好是第一次便采用此周期性任务速率,是这样吗?

978-7-111-47798-3-Chapter01-207.jpg

图11-11 打开的任务属性窗口

17.在控制器项目管理器中,右键单击周期性任务Periodic4,并选择“属性”(Properties),如图11-12所示。

18.出现“任务属性-Periodic4”(Task Proper-ties-Periodic4)窗口后,单击“监视”(Monitor)选项卡。

19.出现“监视”(Monitor)选项卡后,单击“重置”(Reset)按钮,如图11-13所示。在此处看到的情况会出乎大多数人的预料。

会发生任务重叠,而且扫描时间不是21ms。这都是因为进行了任务切换。

请记住周期性任务每隔1ms将进行一次任务切换。使用时间线可轻松地显示这一点。例如,在下面:

|P1 P2 P3 P4 P5|P1 P2 P3 P4 P5|P1 P2 P3 P4 P5|P1 P2 P3 P4 P5|P1 P2 P3 P4 P5|每次出现P1就表示周期任务1执行了1ms。

978-7-111-47798-3-Chapter01-208.jpg

图11-12 项目任务菜单

那么周期性任务P1将执行多长时间呢?数一下查到第五个P1时共有多少个PX。共有21个,即需要21ms,这就是看到的情况。那么,周期性任务P5需要多长的执行时间?通过计数将得到25ms,这就是Periodic5。这和之前看到的情况一致。

978-7-111-47798-3-Chapter01-209.jpg

图11-13 打开的任务属性窗口

20.返回到“标签监视器”(Tag Monitor)并在Periodic_to_75的值列中输入1。该值将恢复为零。这样会将所有周期性任务的周期更改回75ms。

因此,按22ms来运行周期性任务并不是一个好主意。可认为,“我将按26ms来运行它们,这样就有一定的裕量,也就没有问题了。”

21.将标签Task_22的值修改为26000,如图11-14所示。这样便会将该周期性任务的周期更改为26ms。

22.在Periodic_to_22的值列中输入1,并按回车键。该值将恢复为零。这样会将所有周期性任务的周期更改回26ms。

23.切换回“任务属性-周期性”(Task Properties-Periodic)窗口。

978-7-111-47798-3-Chapter01-210.jpg

图11-14 周期任务属性

24.单击“重置”(Reset)按钮。看起来一切都好,但Periodic4却需要关注一下。

25.切换到“任务属性-Periodic4”(Task Properties-Periodic4)窗口。

26.单击“重置”(Reset)按钮。发现没有任何任务重叠发生,扫描时间约为24ms。一切正常,任务在预期的时间内执行,而且未发生任何重叠。

27.单击“确定”(OK),关闭两个“任务属性”(Task Properties)窗口。

28.在“标签监视器”(Tag Monitor)窗口中,在Inhibit_Periodic的值列中输入1并按回车键。该值将恢复为零。刚刚禁用了所有周期性任务的执行。

29.在“标签监视器”(Tag Monitor)窗口中,在Combined_Periodic的值列中输入1并按回车键。该值将恢复为零。刚刚开始执行Combined_Periodic任务。

30.在控制器项目管理器中,右键单击周期性任务Combined_Periodic并选择“属性”(Prop-erties)。

31.出现“任务属性”(Task Properties)窗口后,单击“组态”(Configuration)选项卡。将注意到周期已设置为25ms。

32.单击“监视”(Monitor)选项卡并单击“重置”(Reset)按钮,如图11-15所示。

可看到执行时间短于25ms,而且未发生任何重叠,但是当具有5个单独的周期性任务时,便会发生重叠,这时便必须将周期时间设置为26ms。在此情况下,程序不会有额外的任务切换开销。

978-7-111-47798-3-Chapter01-211.jpg

图11-15 打开的任务属性窗口

可看到,与之前相比扫描的时间小于周期性任务Periodic4的时间。使用Combined_Periodic任务可获得更好的性能。

33.单击“确定”(OK),关闭“任务属性”(Task Proper-ties)窗口。

34.在“通信”(Communication)菜单中选择“脱机”(Go Offline),如图11-16所示。

35.在工具栏菜单中,选择“文件>退出”(File>Exit),退出并且不保存所做的更改。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈