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

四书五经

  • 帖子

    762
  • 精华

    58
  • 被关注

    30

论坛等级:侠圣

注册时间:2005-12-23

普通 普通 如何晋级?

发布于 2009-04-02 22:15:00

0楼

扫描周期时间包括OB1的全部扫描时间,还包括对OB1进行中断的更高优先级的程序的扫描时间。
扫描时间也包括操作系统的运行时间,有如下内容:
1.过程映像的更新时间,取决于映像区的大小
2.定时器的更新时间,取决于要更新的定时器的数目
3.CPU的通讯功能占用的时间,取决于CPU的通讯功能的数量。
4.操作系统对于周期扫描的控制时间,这是一个固定值
对于优化OB1的扫描时间,可以采用各种编程技巧来实现,比如说减少浮点运算,少用间接寻址,多用STL编程等。至于采用类如把程序放入OB35等定时中断中的方式能减小扫描周期时间,我觉得还需要探讨!因为这时候,操作系统相当于先把OB1暂时挂起,再来执行定时中断的功能,等中断程序执行完之后,再继续执行OB1的程序。这样CPU总的运行时间是不变的,而且可能时间还会加长,因为CPU还要执行保护中断现场和恢复中断现场的功能。
至于减少操作系统的运行时间,结合上面的几条,无非是减少映像区的数量,减少使用的定时器的数量,减少CPU的通讯功能。个人感觉CPU的通讯功能会占用较多的处理时间,是优化的重点。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54765条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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