这个程序是2分频电路,现按你的要求将扫描周期及分析程序讲一下:
一、扫描周期:
plc 运行是从编写的程序的第一条编程语句的第一个指令开始,按编程顺序从头到尾逐个逐条进行询问判断,每个程序语句如判断结果=1,则使输出为1或置位或复位等,否则输出不变。一直询问判断到程序的最后一个语句。这个从头到尾的询问判断过程,称之为一个扫描周期。接着PLC会第二次从程序的第一个语句进行从头到尾逐个逐条进行询问判断,即为第二扫明周期。。。PLC运行过程就是不断的一次又一次的从头到尾的询问判断每一个指令,即循环扫描。
现以你编写的程序为例:整个程序只有2个网络,运行时是从网络1的 I0.0的常开触点开始询问判断,接着是前沿┤P├....一直到网络2的Q0.0输出线圈为止,为一个扫描周期。接着又重复从网络1的 I0.0的常开触点开始询问判断,进行第二次扫描。。。
下面具体分析未按按钮与按下按钮时程序的运行状态:
1、未按按钮时,扫描从网络1的I0.0开始询问判断:由于此时未按按钮,即 I0.0=0,能流不能通过该支路,即不会产生I0.0=1的前沿,故判断结果其输出M0.0=0。网络1询问判断完后,进入网络2的询问判断:先判断AC支路,此时M0.0的常开触点断开、而Q0.0常闭触点闭合,二者相与的结果=0,能流不能通过该支路,接着再判断EG支路,M0.0的常闭触点闭合、而Q0.0常开触点断开,二者相与的结果也=0,能流也不能通过该支路,故输出线圈Q0.0=0。接着程序又从网络1的I0.0开始询问判断。。。其程序始终保持M0.0=0、Q0.0=0状态不变。
1、 当第一次按下钮:扫描又从网络1开始询问判断I0.0时,因I0.0此时由0
↑1 ,故产生上跳前沿(P),此支路通导,判断结果使输出线圈M0.0=1,进入网络2的询问判断:先判断AC支路,此时M0.0的常开触点闭合、而Q0.0常闭触点闭合,二者相与的结果=1,能流能通过该支路,接着再判断EG支路,M0.0的常闭触点断开、Q0.0常开触点断开,二者相与的结果=0,能流也不能通过该支路,这2个支路为并联,能流仍可流入输出线圈,故输出线圈Q0.0=1。接着程序又从网络1开始进行第二次扫描判断:此时I0.0=1,但其由0↑1的上调过程已结束,即此支路不同,判断结果M0.0=0。进入网络2的询问判断:先判断AC支路,此时M0.0的常开触点断开、而Q0.0常闭触点断开,二者相与的结果=0,再判断EG支路,M0.0的常闭触点闭合、Q0.0常开触点闭合,二者相与的结果=1,故判断结果,能流可以通过EG支路流入线圈,故输出线圈Q0.0 =1。。。以后的各次扫描,包括按钮抬起,只要没有再次按钮,判断结果与第二次扫描结果一样,即输出线圈Q0.0保持=1状态
3、当第二次按下钮:扫描又从网络1开始询问判断I0.0时,因I0.0此时由0↑1 ,故产生上跳前沿(P),此支路通导,判断结果使输出线圈M0.0=1,进入网络2的询问判断:先判断AC支路,此时M0.0的常开触点闭合、而Q0.0常闭触点断开,二者相与的结果=0,能流能通过该支路,接着再判断EG支路,M0.0的常闭触点断开、Q0.0常开触点闭合,二者相与的结果=0,即能流不能通过这2支路,流入线圈,故输出线圈Q0.0=0。接着程序又从网络1开始进行第二次扫描判断:此时I0.0=1,但其由0↑1的上调过程已结束,即此支路不同,判断结果M0.0=0。进入网络2的询问判断:先判断AC支路,此时M0.0的常开触点断开、而Q0.0常闭触点闭合,二者相与的结果=0,再判断EG支路,M0.0的常闭触点闭合、Q0.0常开触点断开,二者相与的结果=0,故判断结果能流不能通过线圈,即Q0.0=0。程序回复初始状态,
当第三次按按钮,其输出同第一次按钮输出。即Q0.0=1,当第四次按按钮,其输出同第二次按钮输出。即Q0.0=0。。即每按一次按钮,其输出Q0.0将改变一次输出状态。
从上述程序分析可见,它与分析电路一样:对一个串联支路必须每个串联触点皆闭合,
此支路通导。对于并联之路,必须先一路一路判断各并联支路是否通到,最后再判断输出。只要有一路通导,其输出就导通。这就是逐条分析程序的原则。
如想作二分频输出电路,还可用如下几种方法:
1、用SR触发器组成双稳态电路,即每按一次按钮,其输出状态将改变一次输出状态,见下图:
2、用I0.0=1的前沿对一字节存储器(MB10)进行加1计数,将M10.0送入Q0.0,其Q0.0的输出数,即为按钮(I0.0)按下次数的二分频。见下图: