发布于 2011-07-22 23:50:00
12楼
楼主的疑惑我也模拟测试了一下,发现这个问题确实存在!真的很佩服楼主对定时器工作原理的深入研究。后来看到6楼youhm大侠对S7手册定时器工作的说明中提到:“2.利用时钟定时更新定时器字。在运行模式下,CPU的这个功能可按照由时间基准指定的间隔将给点的时间值递减一个单位,直到该时间值等于零为止。”根据S7手册上的说明,我也在思考:
1、定时器的启动是通过用户程序触发的。
2、定时器启动后,如果这个定时器的时基为10ms,很显然用户程序很难准确无误地在这个单位时基里面递减一个单位,因为绝大多数用户程序周期会大于10ms!所以我们不能站在OB1这个平台去评估定时器的工作原理了,应该站到其操作系统的层面!
3、CPU在运行模式时,用户程序和操作系统同时并列运行,各负其责,用户程序启动定时器,操作系统计时并更新定时器。
4、所以我认为,定时器一旦用户程序启动,计时和更新是由操作系统来完成的!楼主上面附件中,如果CPU处于运行模式,采用这种修改程序的方法,然后再下载到PLC确实存在着很大的风险,这个问题确实需要得到我们的警惕和重视!楼主的深入探究确实又使我学习良多!(以上只是个人观点,仅供参考)
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”