quote:以下是引用凌波微步在2012-11-15 20:53:17的发言:
1.CPU的扫描时间计算起来确实不容易;
2.使用OB1,那么扫描时间就是不固定的;
3.使用中断OB,虽说中断OB的扫描时间是固定的,但CPU执行每次扫描是否调用所有的中断OB是不确定的,所以具体时间也不好确定;
4.虽说程序的CODE MEMORY在编写完程序后是固定的;但在CPU执行扫描的时候,根据程序的编写,将需要执行的CODE MEMORY的部分传递到WORK MEMORY中执行;因此时间也不是固定的。
5.按照“Automann”奇侠所阐述的5个阶段:“启动看门狗+输出过程影响区+输入过程映像区+用户程序+其他任务执行”这个过程中有太多的不固定时间;
5.1启动看门狗:时间相对固定,根据CPU所支持使用的OB;
5.2输出过程影响区:确定使用过程映像区的数据量(这个应该实际使用的IO点数有关系),但时间不固定;因过程映像区的好处就在于不用每次都去扫描硬件实际接口,而是程序中使用的时候到过程映像区中去取;
5.3输入过程映像区:原理同5.2
5.4用户程序:这个时间更加的不固定;因程序而异;同样功能的程序,需要的时间也会因不同人编写而有区别;也因使用的编程语言的不同而有区别;
5.5其他任务:这个也要看此次扫描是否具有其他任务需要执行扫描;
6.综上所诉:CPU的扫描时间计算确实不容易,且不固定;往往会根据CPU在线,查看CPU的扫描时间最大,最小,当前三种状态大体估算一下扫描时间;