发布于 2006-11-16 17:10:59
0楼
中断就象120急救车,它一拉响警报,那路上的车都得靠边站呀! 因为它急着救人呢! 同样的PLC内的中断也是为了一些特殊情况处理的. 举个很普通的例子:
你做一个简单的闭环系统,用PLC控制步进电机,不停的发脉冲, 然后在电机后面装一个编码器. 假设你的本意是想让编码器读到1000个脉冲后就马上停止电机(这就代表了精确定位), 又假设你的步进电机脉冲周期为100微秒(频率10K),还有假设你的PLC扫描周期为10毫秒, 再做一个假设:当PLC的扫描周期开始的时候刚好编码器已经计到1000个脉冲了. 接下来,如果你用到了高速计数的PV=SV中断,那么可以直接在这个中断子程序内停止脉冲,那么PLC仅仅会多发出一点脉冲(就是中断子程序执行的时间等)。 如果你没有用到中断,而是在程序的最后用触点比较:
LDD>= HC1,1000
R SM67.7
PLS 0
在这种情况下,PLC多发了10毫秒的脉冲(一个扫描周期), 你看看10毫秒能发多少脉冲? 10ms/100us=100 ! 你看,整整多发出了100个,占了你所期望值的10% !
还有,在调用子程序或者中断的时候系统会自动把一些系统数据入栈的,比如临时数据,寄存器数据.... 你只要管好自己的程序就行了。
I can do it