回复:老问题欢迎讨论:怎样通过改变编程方法减小程序扫描周期?

凌波微步

  • 帖子

    2716
  • 精华

    72
  • 被关注

    208

论坛等级:奇侠

注册时间:2003-06-11

普通 普通 如何晋级?

发布于 2009-04-05 00:01:06

0楼

“3.从广义上讲,OB1也是间隔的,只不过间隔周期不固定,因此原先在OB1中执行的程序在中断(尤其是间隔较短的中断,如5MS)中处理,是有好处的,稳定,但这种中断不宜太多,最好是一层中断比较好处理,而且逻辑处理最好在同一个优先级的中断处理程序中,I/O的刷新最好与中断同步。”

1。如果只用一种中断OB(即所有程序都写在一个中断OB里)的话,是不是就意味着不但没有减少扫描周期,反而增加了?OB1的时间+程序量扫描时间(中断OB时间)??
2。OB1是主程序,使用不同的中断OB,由于其优先级不同,使得需要快速响应的信号,比如开关量放在OB优先级高,中断扫描时间短的OB里,模拟量放在优先级低,中断扫描时间较长的OB里,这样就会优先处理开关量,然后再处理相对响应较慢的模拟量。这是否就是中断OB的好处?
3。如果按照斑竹提供的思路,那么使用OB1里做程序肯定要比使用中断OB做程序的总的程序扫描时间最低,是这样吧。因为中断OB的扫描周期应该都是大于其内程序的执行时间的,否则就会因超时而报错。

因此综上所述:
1。降低OB1的扫描周期的前提应该是为了降低CPU负荷;但往往OB1与中断OB的使用对于扫描周期的影响应该是微小的。可能意义在于这方面的考虑并不大;
2。降低OB1的扫描周期的办法就是少使用中断OB;少使用循环跳转命令,因为这样会使得OB1中重复,循环的去判断,重复的执行相应扫描时间;
3。我想降低OB1扫描周期的底线应该是全部使用机器语言的编程方式,对于S7应该是使用STL的编程方式。这样会减少程序量;但这样的做法显然会降低程序的可读性和将来维护的方便性。
不以物喜,不以己悲; 达则兼济天下,穷则独善其身。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54768条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。