考慮一個掃描周期內的狀態:
首先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的情況。