quote:以下是引用笑熬糨糊在2012-11-26 10:39:46的发言:
根本没必要精确计算CPU的扫描时间,需要确定周期的任务当然用中断,只需要理解CPU的扫描周期就行了。一般我们都会知道CPU 的一个完整扫描有: 读输入映像区、扫描程序、处理通讯、自检、写输出映像区 这五部分。理解清楚每部分都做了什么更重要。譬如 中断 可以发生在这五部分的哪里?有没有哪一个部分是不响应中断的?中断可以发生在一个网络中间吗? 这些我也在求证,希望跟大家一起探讨。
当然可以,例如,你使用了LAD编程,一个功能块A的ENO的输出到另一个功能块B的EN,那么中断(例如诊断中断)可能发生在A和B之间。
如果A的功能块是MOV指令,例如Word1传送到Word2,那么中断不会发生在功能块A上。因为系统需要保证器数据一致性。
如果A的功能块是BSEND,因为它是非周期的功能块,那么中断会发生在所发送数据的间隔处,例如,如果发送500个字节,那么他会依次发送208个字节,216字节,76个字节(S7-300),那么中断会在各个数据之间出现,具体是发生在A上,还是在A外,取决于CPU的性能。