相信有不少人写过利用子程序对不同来源的信号取边沿,又不接受产生的结果。
于是就有结论:沿指令不能在多次调用的子程序中使用。
在沿指令我见之一中明确,沿指令只对指令前的能流取沿,能流之前的事不归沿指令管,由编程者自己负责。
所以,你给能流喂不同的料,结果非你所愿,不能归到沿指令上。
打一个不恰当的比喻:
前后两次送进去的都是马,出来一个小马,OK。
前后两次送进去的都是驴,出来一个小驴,OK。
一次送马、一次送驴,出来的既不是马,也不是驴,而是骡子!
你对骡子有意见么?是你搞的事啊。
一、准备一个子程序,供多次调用
子程序内,对投喂进来的信号检测上升沿,并输出。

二、投喂相同的料,多次调用的效果



VD0、VD4计数相同,说明子程序内的沿指令与主程序中的沿指令一样正确。
沿指令我见之四:沿指令在多次调用子程序中的行为(单一料).rar
三、投喂不同的料,多次调用的效果

混合料出来的是骡子:
Q0.0= M0.0 and (not M0.1)
Q0.1= (not M0.0) and M0.1
以上是等效功能。
沿指令我见之四:沿指令在多次调用子程序中的行为(不同料).rar