多工的需求(1)区分轻重缓急

在运动控制系统中,多工(Multi-Tasking)的开发环境有许多好处!其中一个优点就是能区分轻重缓急!


一个系统要执行的工作很多,而每件事的紧急程度并不一样.例如:

1. 紧急工作:执行 PID 控制程序,需 1 ms 执行一次计算,被延迟将造成系统失效!
2. 一般工作:控制汽缸或三色灯的闪烁,不需要很频繁的执行,属于非紧急性的工作!

 

在单工与多工环境中执行的效果分别如下:


1,单工系统:例如传统的 PLC 里,只提供一个 Ladder 程序供使用者撰写,所有工作都混杂在一起,一旦程序写太长,整体的扫描时间就变长,需要实时响应的程序就容易受到拖累!


单工系统的执行方式

 image.png

(图一)单工系统的作法

 

如图一所示:假设 紧急工作A执行一次需要花 0.5 ms,一般性工作 X,Y 需要花 4.5 ms,整体扫描时间就是 5 ms!如果 工作 A 需要更快的执行周期(例如 1 ms)!就只能换更快的CPU了!

 

2,多工系统:同样的情况,可以将紧急工作A 放在优先权较高的高速 Task 中,以较快的周期执行(例如 1 ms);一般性的工作则放在背景 Task 来执行!如此,背景工作不论扫描时间有多长,都不会影响 紧急工作A的执行.就可以保障整个系统的实时性!


 image.png

(图二)多工系统的作法

 

如图二所示:高速 Task 1 ms 执行一次紧急工作A,花了 0.5 ms,剩余的 0.5 ms 则用来执行 背景 Task,原本需要花 4.5 ms 执行的 一般性工作 X,Y,则需要 9 ms 扫描一次!因为这段时间内,紧急工作A已经执行了 9 次(花 4.5 ms,剩 4.5 ms)!若把 高速 Task 改成每 2 ms 执行一次,则 背景 Task 扫描一次约 6 ms,因为高速 Task 执行了 3 次(花 1.5 ms,剩 4.5 ms)!由此可知,多工提供了2大好处:

1, 保障紧急工作的实时性要求!
2, 提供使用者 分配系统效能 的自由!

这样的设计在运动控制器里屡见不鲜,例如 Siemens SIMOTIONOMRON NJ,安川 MP2XXX,施耐德 SoMachine,以及台达 ASD-M-R,因为 运动控制里有许多实时性的工作,象是:路经规划/插值,PID控制,运动网络的同步 等等,以往这些功能只能由韧体处理!如今透过实时性与多工的设计,这些功能也可由使用者的程序来介入,使得系统的灵活度 产生了极大的提升!


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年5月    »
12345
6789101112
13141516171819
20212223242526
2728293031
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864