技术论坛

simotion中的task和时间片

作者 主题
游士

经验值: 261
发帖数: 205
精华帖: 2
simotion中的task和时间片


只看楼主 2009-02-18 23:44:04
PLC中程序的执行是靠一遍又一遍的扫描整个程序,而Simotion中情况要复杂很多。
首先Simotion中有task的概念,不同的task处于不同的优先级。撇开ipo、servo以及中断等task不说,backgroundtask和motiontask的执行时序就有点让人不清白,呵呵
ipo、servo task在每个DP CYCLE中都是要执行一次的,谁叫它们的优先级那么高呢。而时间中断硬件中断等是在中断被触发的时候执行,当然中断的执行肯定也是在Dp Cycle中的某个时候。那么每个DP Cycle中除了刚刚说的这些task 之外一般还会剩下不少时间,这些时间就是用来处理BackgroundTask 和Motiontask。
在某一个DP Cycle中剩下的时间里(注意这个条件哦),Simotion的规则是BackgroundTask 先执行,接着执行32个Motiontask(如果32个都被使用了的话)。
有的BackgroundTask中的程序很长很长,长得在一个DP Cycle中高级任务执行后剩下的时间里都没有办法执行完,这时候BackgroundTask的程序就会在第二个DP Cycle中剩下的时间里继续执行,如果第二个DpCycle中还没执行完就地三个。。。直到把BackgroundTask 中的程序都执行一遍,从而又开始新一轮的执行。当然,如果你的BackgroundTask 中的程序执行了100年还没有执行完,那么Simotion会疯掉的,所以Simotion中可以设置BackgroundTask的watchdog,狗狗在你设置的时间到了如果BackgroundTask还没有执行完那么系统就报警了。
还有另一个规则,就是针对MotionTask。 Simotion中规定MotionTask必须在每个DpCycle中执行最多两个时间片。
先解释一下时间片的概念。时间片是simotion中的嵌入式实时操作系统分配给各个进程执行的一小段时间。可能一个MotionTask需要很多个时间片才能执行完,又可能两个时间片完全够了,到底需要多少时间Who knows? Nobody Knows!Motiontask是不限时间的,它没有watchdog。时间片的长度是操作系统设置的,具体是多少不知道。操作系统在各个任务之前切换也需要时间,如果时间片设置得太短了,那么用于任务切换的时间反而比程序本身执行的时间还要多,这样效率就太低了; 如果时间片设置得太长了,那么一个程序的响应速度就太慢了。
Simiton不给太多的时间片给MotionTask,每个DpCycle中只有两个。BackgroundTask使用的时间片个数是可以设置的,例如设置为5个时间片,那么就是说5个时间片用于BackgroundTask后不管BackgroundTask有没有执行完,都会切换到执行MotionTask去了,而且每个MotionTask各2个时间片,依次执行,直到最后一个MotionTask执行了两个时间片之后又开始执行BackgroundTask。
所以从上面的分析来说,BackgroundTask和MotionTask从宏观上来看是并行的,但从微观上来看是依次执行的,只不过一次执行每个的一小部分,直到都执行完。

 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=525934&b_id=46&s_id=0&num=9

侠客

经验值: 706
发帖数: 305
精华帖: 3
回复:simotion中的task和时间片


只看楼主 2009-02-19 21:39:57
这样好的分析,支持支持,虽然没有真正的用过simotion.
o! why? thinking...
以下网友喜欢您的帖子:

  
游侠

经验值: 348
发帖数: 109
精华帖: 5
回复:simotion中的task和时间片


只看楼主 2009-02-20 16:41:37
讲的太好了,强烈支持。
天气真好啊!
以下网友喜欢您的帖子:

  
kif
新手

经验值: 3
发帖数: 1
精华帖: 0
回复:simotion中的task和时间片


只看楼主 2009-03-02 12:47:21
支持支持
 
以下网友喜欢您的帖子:

  
新手

经验值: 34
发帖数: 1
精华帖: 0
回复:simotion中的task和时间片


只看楼主 2009-04-09 15:13:54
ding
 
以下网友喜欢您的帖子:

  
游民

经验值: 76
发帖数: 3
精华帖: 0
回复:simotion中的task和时间片


只看楼主 2009-05-09 12:45:43
支持

 
以下网友喜欢您的帖子:

  
游民

经验值: 64
发帖数: 42
精华帖: 0
回复:simotion中的task和时间片


只看楼主 2009-05-21 10:58:25
高屋建瓴!
会 通 精 化
以下网友喜欢您的帖子:

  
至圣

经验值: 76203
发帖数: 19145
精华帖: 378
回复:simotion中的task和时间片


只看楼主 2009-05-26 20:46:25
所以,SIMOTION不合适替代PLC去做一些复杂的逻辑控制,它的这些功能都是为伺服驱动控制服务的
Zane 注册自动化系统工程师 Always save before download
以下网友喜欢您的帖子:

  
游民

经验值: 64
发帖数: 42
精华帖: 0
回复:simotion中的task和时间片


只看楼主 2009-05-27 08:24:38
当然,如果机器以逻辑运算为主,特别是输入点很多,或者要控制许多输出点时,PLC还是最好的选择,因为这是PLC的本行,并且PLC的价格也好。
而如果机器以运动控制为主,那么选择Simotion就比较合适了,因为运动控制功能是PLC做不来的。
在Simotion出现之前,这种需要运动控制的机器,我们采用PLC+Masterdrives MC的方法来做:逻辑控制在PLC里,MC只负责运动控制。现在有了Simotion,我们就可以将所有的工作都在Simotion中做了,从而省掉了PLC。
当然,一些大规模的机器,还是PLC与Simotion并存的,PLC位于Simotion的上层,作为整个生产线的控制部分。
会 通 精 化
以下网友喜欢您的帖子:

  
新手

经验值: 4
发帖数: 3
精华帖: 0
回复:simotion中的task和时间片


只看楼主 2009-06-02 14:17:46
金玉良言!
梦想是奇迹开始的地方 Dare To Dream
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
simotion中的task和时间片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。