恭喜,你发布的帖子
发布于 2017-10-31 12:29:48
6楼
我认为还是有差别的,与OB1用户程序并列的系统任务有映像区刷新,系统通讯任务,系统诊断,事件任务的处理机制。这些任务与OB1是并列的同步执行的,与OB35并非并列的且同步执行。
而OB35仅仅是事件任务处理机制中的一种情况。
编程并不禁止把所有用户程序都放在定时中断中处理,但OB1的处理时间是有较大的弹性的,而定时中断则没有,对于带变化次数的循环或有多次跳转的程序,其执行时间不好估计,一不小心其峰值运算时间超过定时间隔就麻烦了,不是吗?
这是由西门子的程序扫描机制决定的,S7-300与S7-400有不同,S7-1X00也有不同的;各家PLC也是有不同之处的。
另外,我的观点是扫描周期在短周期内(50ms以内吧)稳定甚至是固定间隔是有好处的,但过长的扫描周期以及变化较大的扫描周期给系统带来的就是不稳定了及不可靠了。
我在看410-5H的CPU一个实际项目的扫描时间的时候 OB1的扫描范围跳动比较大,平均扫描时间大概30ms,但是最短12ms,最大可以超过110ms。
如果坚持把程序都放在OB35,可以做些什么设置或者优化防止最大时间超出中断时间的情况呢 ?不过我感觉
能把程序写到20ms的程序都已经很大很大了。OB35设置为100ms.200ms是绝壁够用的
请填写推广理由:
分享
只看
楼主