现象:自定义了功能块AddRack,内部用ST语言编写,在SFC中调用。运行到该功能块就卡住。将SFC底部的跳转到别的分支去掉就能运行。也就是功能块和后面的跳转不能同时存在。按理说执行到该功能块,不用该受到后面还未执行部分的影响。
解决:经过定位,发现整个SFC中有三处调用AddRack,其中一处是P控制符,上面运行的是N控制符。将P控制符改为N就好了。疑惑:还未运行到P控制符的代码,不应该影响前面的调用才对。上面的跳转应该是跳转到了可能运行P控制符的流程分支,结果就不行,去掉跳转就永远不可能运行到P分支,所以正常了。非常奇怪。