quote:以下是引用Automann在2012-09-08 07:21:31的发言:quote:以下是引用Zane在2012-09-08 03:55:07的发言:quote:以下是引用Automann在2012-09-06 06:15:17的发言:quote:以下是引用emil128在2012-09-04 16:53:19的发言:
S7-300/400的所有T定时器应该都是独立的晶振,其启动和停止都依赖于CPU给出的指令。
而且T定时器是异步刷新的,其计时不受PLC的扫描周期影响,可能会出现在同一个扫描周期内,定时器状态改变的情况。也就是扫描开始时,定时器为0;扫描到一半,定时器变成1了。
以你的例子,你在FB1里启动了T0,其后FB1不被调用了,因此是T0并没有收到停止的指令,所以一直在计时。如果你取消跳转,继续调用FB1,那么RLO为0时,你就可以看到T0停止计时了。
因此涉及到T定时器的使用时,最好不要跳转,保证每个周期都执行定时器指令。
“ 独立的晶振”是什么意思?晶振是硬件范畴的东西,用来产生时钟脉冲。PLC的定时器绝对不是像芯片8253这样的硬件定时器,而是用软件实现的定时功能。
通过可编程逻辑阵列是有可能的,理解有困难就只好这样理解了。
几千个定时器不至于用硬件实现吧?分辨率要求很低(与硬件定时器相比),用软件完全可以实现。
这个成本不高,还可以大大降低CPU的负荷,只需扫描寄存器状态即可