The counter part of the code is pretty simple:
-||---------(R)- <<< this line resets the counter when M1 is asserted.
------------(C)- <<< this line is the counter which should be counting whenever the program is running (plus-one increment per "scan" of the ladder logic).
I'm not using the "Preset" value for the counter; instead I'm using four comparators to observe the counter and actuate independent events based on various values of the counter. M1 will be asserted at various times to reset the counter. The Preset value of the counter (which asserts F0 when the count exceeds it) is just left at the default 1, which I know isn't a problem because I've also set it at very large values just to check.
Both on the PLC, and the simulator software, show the counter incrementing once when the program starts, then nothing else. If I press start and stop repeatedly in the simulator, the counter slowly increments.
So far I've only come up against a blank wall; any help would be much appreciated.