恭喜,你发布的帖子
发布于 2021-08-04 17:14:21
10楼
这个问题与时序没有关系。试判断一下,在【程序段5的#Step.Start 后面串联一个常开(比如M100.0)】你验正一下。第一次是M100.0=0,是否会出现。第2次强制M100.0=1,再看看结果。
问题就出现在#Step.Start,它被触发了。。主要原因是#Step.Start是FB1002的暂存区(也可以称位栈区),关键栈区是公用的,即出了这个程序段FB1002后,这个区会被其他程序段使用,这样是什么逻辑结果就不能确定,主调程序能置位(一直SET,使得#Operation_Man.Hom=1),但是子程序中第4句,#P_TRIGI[20]逻辑会被改变,导致上升沿脉冲有效。【#Step.Start,它被触发】
措施 1.一般TEPM 的栈区的临时变量不建议使用成脉冲语句【子程序第3/4句都有问题,如果一定要用脉冲语句,请改为静态变量Static】。2.临时变量自保的用法也不建议使用【考虑使用Static/IN/OUT型式的变量】。
请填写推广理由:
分享
只看
楼主