1) simply filter the values (new_displayed_value = old_displayed_value * 0.9 + new_calculated_value * 0.1)
1.1) The wobble will drop by an order of magnitude; to do that with a longer time base you would have to count over 10s
2) There is, depending exactly
how "[you] read pulses for 1 second," possibly,
possibly, some wobble, or even inaccuracy, caused by the timing method; cf
this link. E.g. if you are using a TON, then there is could easily a 0.1% error built in. I'm not saying you did it wrong, but if you are asking the question here and don't see the (a) problem, or (b) pros and cons of various solutions, then my money is that you might learn and/or teach a lot in this thread, if you stay with it. Measurement, even of digital processes, is hard.
3) You should use the 10kHz free-running clock counter (S:4) for the time base, if you are not already. For example, S:4/12 has a rising edge every 819.2ms, S:3/13 has a rising edge every 1638.4ms, and S:4/14 has a rising edge every 3267.8 ms. Just like with metric vs. english units, the actual unit of time chosen does not matter to the calculation; we already know that you don't need to update more frequently than 1Hz.
4) A phase-locked loop would be another way to get more resolution without increasing sample time; it might lose accuracy during transients, but probably not by much.
5) Sample the time (S:4 10kHz clock) of every edge in an STI routine, it is a calculation-intensive but otherwise straightforward matter to do a least-squares fit of the pulses vs. time i.e. dCount/dTime; even simpler if you assume the Time-intercept is zero.
6) This question gets asked here. A lot. Do a search.
Except for possibly (1), (4) and (6), I am not saying anything different than earlier responses in this thread.
7) If someone is paying you to solve this, a hardware solution that determines the speed externally and passes a value to the MicroLogix 1400 is probably the most cost-effective solution. I'm not saying this cannot be done in software, rather there is some benefit to not developing a square wheel when someone else is already selling a triangular wheel that has one less bump
.