恭喜,你发布的帖子
发布于 2018-01-20 17:17:32
10楼
一个简单的例子:
多次调用(这里是两次)的子程序,上升沿的行为。
1、子程序
变量表:
2、主程序:
3、程序下载到SR20,观察到的现象:
当I0.0和I0.1的状态相同,即同为0或同为1,子程序内的P指令无输出,VW100不加1
当I0.0和I0.1的状态不同,即其中一个为0另一个为1,则子程序内的P有输出,每个扫描周期(限本例的两次调用)均+1。
4、分析:
当I0.0和I0.1状态相同时,子程序的P指令前的能流没有变化,所以P指令没有输出;
当I0.0和I0.1的状态不相同时,每次调用 BitP 参数传进不同的值,所以P指令有输出。
要说 P 取了谁的上升沿? P 取的是它前面能流的上升沿。它既不是I0.0的沿,也不是I0.1的沿。
要说这样的 P 有什么意义?这个不归 P 管,是程序整体的要求,要问写程序的人希望完成什么功能。
比如说,这一通折腾,达到的效果:类似 I0.0 XOR I0.1,但不完全等效,这个不等效的成份,也许就是设计目的。
5、程序
你把network2的i0.1常开改为I0.0的常闭,且I0.0不接通呢?我记得在S7-200中,会每个扫描周期都加1
请填写推广理由:
分享
只看
楼主