为什么一个伺服周期内,background运行了这么多次?

分享到:
454
下一篇 >


           菜鸟提问:

上图使用simotion task profiler 采集的图片

如果是background的实际运行时间很小的话,在一个伺服周期内,background会运行很多次吗?

background的时间分配也不起作用。我的background的时间分配如下图所示


为什么设置成1和20通过profiler看没什么变化呢?

大虾:

background是在自由时间循环执行的,所有才有这么多脉冲吧

菜鸟:

那在一个伺服周期内,background可能会运行很多遍?

大虾:

一个周期剩余的时间都是用户程序的自由时间,用来循环执行BACKGROUND和MOTION TASK,你给BACKGROUND分配1或者20个SERVO CYCLE对前面的**任务没影响,*多就是会影响和MOTION TASK任务之间的时间分配,结合你的图来看,应该是给任务执行系统分配的时候,把任务都给了BACKGROUND,个人理解,没做实验验证。

菜鸟:

谢谢。

这个如何通过实验进行验证呢?我手头有个一simotion我可以测试一下。

另外在《SIMOTION 的任务执行机制及系统时钟》提到的自由执行任务的分配

运行时间是指时间片,而不是伺服周期吧。

侠客:

我觉得是这样的,BACKGROUND等于PLC中的OB1,OB1在每个扫描周期都运行一次,BACKGUORND也是这样循环运行的,需要注意BACKGUOND是非周期循环运行的,是循环运行但是循环的时间在于你给BACKGROUND里面分配的PROGRAM决定的,所以你给BACKGROUND分配1个SERVO CYCLE或者20个SERVO CYCLE目前是看不出区别的,因为你的BACKGROUND中的程序指令太短,1个SERVO CYCLE都绰绰有余了。除非你的程序写的足够长,就能看出区别了。


你可能感兴趣: 工控菜鸟园 图片 驱动技术 SIMOTION 伺服
无觅相关文章插件,快速提升流量