第一次使用%ignore_a_1%指令,比如如截图所示,这时候PLC执行到步进A中,一直在步进A中执行,那么主程序跟步进A之间的指令还执行吗?比如程序段1跟程序段2,是不是只执行步进A的指令,别的都不执行了,请教各位前辈,能不能用通俗的话,步进流程,到底怎么回事,谢谢各位。。。
图片说明:
最佳答案
顺序功能图的设计方法中提到的步进概念,回到西门子S7-200(SMART)系统,就是顺序控制(SCR)指令。
顺序控制(SCR)指令包含三个元素:装载 SCR 指令 (LSCR) 、转换SCRT 指令,结束SCRE指令。三者缺一不可。你可以这么来理解:装载 SCR 指令,结束SCRE指令打包了一个程序段,相当于一个子程序,而装载 SCR 指令的S 位是这个子程序的调用条件。当这个位为1则调用这段程序,若为0,则不调用这段程序。而这段程序程序中的转换指令SCRT做了两件事情:1当条件满足时,把指令SCRT上的新的标志位置一,预示接下来将执行新的程序步;2,当条件满足时,把当前的标志位S清零,下一次不再执行当前的程序段。
理解上面这一点,你就应该清楚,PLC顺序扫描(从第一条指令,向下依次执行到最后一条语句)的方式未变。
回到你的问题:程序一直停留在步进A的情况是不存在的,梯形图没有跳转指令形成不了死循环,无论A做多少事情,代码总是有限的,执行完,还会扫描下面的语句,结束一个扫描周期,再次此回到主程序第一条指令,执行下一个扫描周期。你说的停留在A,只是说没有转换条件,不转换,每次扫描周期都执行步进A而已。换句话说:你假定的程序执行过程是:主(1)(2)A(3)(4)--->主(1)(2)A(3)(4)-->主(1)(2)A(3)(4)。。。。。
理解上面的内容,要提醒一点,尽管我前面说步进位S=1,相当调用这个程序段。但是,S=0不代表不调用这个程序段。尽管S=0,顺控程序段中的每一条语句,还是要扫描执行,只不过每一条语句前面串联一个逻辑结果0。当中间有一个线圈输出指令时这个线圈就会为0断开。
提问者对于答案的评价:
非常感谢,回答都非常好,谢谢两位,
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc281285.html