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