QUOTE
What is the difference between resseting a counter and moving a zero to the accumulated value?
the RES drives the Accumulator to zero ... and ... it also writes zeros to the status bits (CU, CD, DN) ...
this "resetting" of the status bits explains why you were getting the "false" count when using the RES ... specifically, the next time the processor scans the rung and finds the rung TRUE, it checks the CU bit to see "have I already counted this?" ... since the CU bit was OFF (by way of the RES action) then the processor assumes that the TRUE condition of the rung has not yet been counted ... and it adds one to the Accumulator ...
the "MOV of zero" solution for the counter's Accumulator does not "destroy" the "been-there-done-that" information that is stored in the counter's CU bit ... some programmers use a CLR (Clear) instruction rather than an MOV ... you'll get the same results with either method ...
I've also seen other programmers who stick with the RES instruction (possibly because the technicians understand it better) and then put an OSR (One Shot) after the "count this" input ... in most cases, this will also solve the "false count" problem caused by a "count this" input which stays on during a counter reset ... it looks kind of "fishy" to see an OSR in front of a counter ... but once you understand why it's there, it does make sense ...