展开查看
以下是引用yanxiao在2014-07-04 20:44:57的发言 >1楼:沿指令的运行规则如下:
1、程序中的每条沿指令,都有唯一的一个编号,不同编号的沿指令,相互之间没有任何关联。也可以这么说,每条指令被绑定在出现的程序位置上,它的行为只和这个位置有关。
2、用户程序开始运行,第一次扫到某条沿指令,输出为0,程序后续再扫到这条指令,系统会根据前一次扫描时记下的状态和本次扫描时的状态作判断,作为本次扫描值输出。
这里我想说的是:
1、“第一次扫描”不要和第一个扫描周期混为一谈。第一扫描周期是用户程序运行必先经历的第一个扫描周期,而某一个特定的沿指令被扫描到的时刻,可以不在第一个扫描周期内。
2、后续扫描到沿指令,不一定发生在不同的扫描周期,或者一定发生在相邻的扫描周期。同一个扫描内完全可以多次扫过同一个沿指令,比如它在循环体内,或在子程序内且同一扫描周期内被多次调用。但也不一定每个扫描周期都会扫到,比如被跳转指令跳过,或子程序不被调用。
因此在一个周期内可能多次调用的子程序内,循环体内,等地方,一般不建议使用沿指令。PLC能清楚明白地执行这些沿指令,但你可能会被结果弄糊涂。不是指令运行出错,而是和你的预期不合了。
受教了,解释的很精辟