恭喜,你发布的帖子
发布于 2023-11-30 10:43:14
40楼
只说对了一部分
OB1与OB30都是有看门狗的,当然机制略有不同,详细看手册,不罗嗦了。
简单地说,中断程序的执行延长了OB1的执行时间,但OB1总执行时间,即OB1自身的程序执行时间与中断程序执行的时间,包括系统程序执行的时间,加起来这个总执行时间是不能超过看门狗时间的,明白吗?
所以你理解的例子,看上去对,本质上不对。
反过来,再问一句,OB1为啥不能固定周期呢?博途的的CPU属性里我设置最小扫描周期为20ms,而我确保实际的所有程序的执行最多只要10ms,这时候OB1的20ms等间隔周期与OB30的20ms定时中断在程序等间隔执行上有多大区别?这时PID放在OB1里执行不行吗?
PID放在OB1里的话,OB1固然可以设置20ms的扫描周期,且其里面的程序执行时间可以保证为10ms,但是这个10ms可能这次是从20ms的第1ms开始执行,下次可能是从20ms的第5ms开始执行,再下次可能是从20ms的第10秒开始执行,这样,一连串的10ms间隔并不相同,导致PID接收的数据不是等距的。
请填写推广理由:
分享
只看
楼主