恭喜,你发布的帖子
发布于 2025-11-01 15:26:16
14楼
是吗?仔细分析下,关键点是两个 定时器同时输出,不是 MB11 的值;
初始化后,置位 MB11 = 3,流程开始,最初 两个定时器输出均为 false;
MB11 = 3 延时完成后的这个周期,t2.Q = true,置位 MB11 = 4,此时 t3 的 IN 由 false 变为 true,但因为延迟 30s,所以 t3.Q 为 false;
此时若截图,可以看到 MB11 = 3 和 4 会同时成立;但两个定时器的 Q 不会同时为 true;
下个扫描周期,MB11 = 4,原先 = 3 的 定时器 t2.IN 改为 false,则 t2.Q 为 false
直到 MB11 = 4 持续 30s 后, t3 的 Q 才为 true,但此时 t2 的 Q 仍应为 false
因此,仅看贴图的程序段,MB11 = 3 和 4 确实有概率同时成立,但 两个定时器的 Q 同时输出可以说几乎不可能;
基于此,可以确认该现象不是监控或者截图问题,大概率是程序逻辑问题,参考 10L 的建议,查下 = 3 的逻辑,应该是在贴图外的程序中 = 3 也成立了
若确实这样的话,再对程序分析,当 =3 延时完成后,mb11=4,t3 开始计时,但在其他程序段 mb11 恢复成 3,再次执行到 NET3 时 t2 .IN 状态依旧为 true,Q 继续输出,置位 Mb11= 4;到 NET4 时 t3 的 IN 也成立,继续计时,直到 t3.Q 输出后,mb11= 5,参照 3 和 4, =5 延时完成后,就能看到 =3 4 5 同时成立
实际上类似的问题无需过多讨论,直接直接仿真一下就知道了的、
请填写推广理由:
分享
只看
楼主