考虑一个扫描周期内的状态:
首先M100是OFF的,C1被M100的常闭触点一直复位中;
M19置ON后第一个扫描周期
第一句指令:当M19第一次为ON时,C0计数到1,线圈变为ON;
第二句指令:C0将M100置位为ON;(注意此时程序还没有扫描到后面,C1仍然是在被复位的状态。而内存中的M100状态已经由OFF变为ON了)
第三句指令:M100将C0复位;
第四句指令:虽然M19和M100同时为ON,但是因为C1仍在被复位的状态,所以此时没有计数。虽然输出线圈显示为ON了,但计数值仍为0;
第五句指令:C1计数值为0,未达到设定值1,触点保持为OFF,未能复位M100;
第六句指令:M100保持为ON,未能继续复位C1;
第二个扫描周期:
第一句指令:当M19仍为ON时,但M100也为ON了,所以C0不计数,保持上一次被复位的状态OFF;
第二句指令:C0状态为OFF,对M100线圈无影响,M100仍为ON;
第三句指令:M100继续将C0复位;
第四句指令:虽然M19和M100同时为ON,但C1仍没有计数。因为计数器计数需要前边的条件状态有个OFF---->ON的状态变化,而此时M10和M100保持了上一个扫描周期的状态,一直是ON,没有变化,所以C1计数值保持为0,虽然输出线圈的状态是ON 的,但因实际计数值为0,未达到1,所以C1触点的状态仍为OFF;
第五句指令:C1保持为OFF,未能复位M100;
第六句指令:M100保持为ON,未能继续复位C1;
此后就继续保持这种状态,也就是楼主图片中的情况;直到M19再次出现OFF---->ON的状态,使C1得到一个计数值使其触点状态变为ON,将M100复位,再由M100的常闭触点将C1复位。这个过程中应该也能观察到C0前面M19和M100都为ON而C0计数值也为0的情况。